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

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

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

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

Окна-закрыть всё

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

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

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

Окна-закрыть всё часть 1

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

Окна-закрыть всё часть 2

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

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

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

Окна-закрыть всё часть 3

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

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

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

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

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

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

Резюме:

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

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

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

 

 

 

 

 

Реклама похоронного бюро: “Если наши клиенты воскреснут, то вновь обратятся к нам!

— Аркадий Давидович