Капитально об программе 1С 8.0-8.3-8.4, 7.7

Как в управляемых формах закрыть все окна (хождение по мукам)

В управляемых формах 1С v8.3 не всё так просто,  как было в обычных формах и, зачастую, требуются более сложные действия, чтобы выполнить «простейшее» для «старого» интерфейса действие.

Как это было в  обычных формах:

Меню «Окна\Закрыть всё» …. и всё — все окна моментально закрыты! (кроме случаев когда есть модифицированность формы, либо есть обработчик запрещающий закрытие либо закрытие без подтверждения)

Теперь же у нас передовая технология «Такси» — «потому что быстрая»).

Цепочка действий

Выходим в меню/Окна/Все окна (уже 3 нажатия, но это еще не всё)

Часть вторая «Сдвинуть мышь вправо, найти кнопку «Закрыть окна» и нажать, …… и нет не всЁ. Потому что закроется только одно  выделенное — текущее окно.

Нажимаем «Выделить все»  — это если горячими клавишами «Ctrl+A», либо встать на верхний и через Shift и движением стрелкой вниз выделить все (все строки должны стать желтыми), а любителям мышкой, никак…. только по одному

Затем уже нажимаем «Закрыть  окна» и ….. интерфейс поворочался 2-3 секунды, но закрыл окна.

Остались в списке два окна и окно диалога не закрылось — еще одно лишнее действие по его закрытию.

Программное закрытие всех форм

Окна = ПолучитьОкна();
Для Каждого Окно Из Окна Цикл
     Если Не Окно.Основное Тогда
         Для каждого Форма из Окно.Содержимое Цикл
            Форма.Закрыть();

        КонецЦикла;
     КонецЕсли;
КонецЦикла;

Этот код закроет все окна кроме файлов созданных средствами 1С: текстовых,табличных документов, открытых через Показать() .

С версии 8.3.8 при закрытии нельзя вызывать серверные процедуры, данный вариант закрытия всех ПередЗавершениемРаботыСистемы в приложении не позволяет обойти ошибку.

Система понимает, что ты уже в стадии закрытия и сообщение выходит, в момент Форма.Закрыть(); хотя верилось что можно обойти  без доработки всех форм.

Резюме:

Посчитайте сами: сколько лишних действий по банальному закрытию всех окон.

В некоторых случаях будет достаточно несколько раз нажать «Esc» и окна последовательно закроются, но это тоже не 3 клика.

Я не удивлюсь, что есть «волшебная» команда, которая позволяет, это сделать быстрее, но даже если она и существует, то не «интуитивно» понятна — и не на поверхности, как должна быть в «совершенном» интерфейсе.