1с табличный документ исчезающая кнопка развернуть на весь экран и свернуть
Вчера ко мне обратился коллега с интересным вопросом, у него есть печатная форма и её нельзя развернуть на весь экран или свернуть, а желание сделать это есть.
Разбираемся как вернуть кнопку.
Будем разбираться с проблемой с конца.
У нас есть печатная форма, которую пользователи хотят развернуть на весь экран, но такой кнопки нет.
Разобрав код и бизнес логику стало понятно в чем дело, сейчас повторим воссоздав тестовый пример. Сразу скажу что такое поведение платформы проявляется в обычных формах и воспроизводилось на платформе 8.3.18.
Создадим в пустой конфигурации метаданные для теста
Обычные формы

- Создаем тестовый документ.
- Добавим пару реквизитов, форму документа, произвольную форму и макет.
- На форму добавим кнопку открытия произвольной формы модально, а на произвольную форму добавим кнопку открытия макета.
Кнопка открытия произвольной формы модально, на форме документа.
Форма = ПолучитьФорму("Форма");
Форма.ОткрытьМодально();
Кнопка открытия печатной формы, на произвольной форме.
Процедура ОсновныеДействияФормытест2(Кнопка)
ТабДок = ПолучитьМакетНаСервере();
ТабДок.показать();
КонецПроцедуры
Функция ПолучитьМакетНаСервере()
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.Документ1.ПолучитьМакет("Макет");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.Вывести(ОбластьДетальныхЗаписей);
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
ТабДок.ОтображатьСетку = Ложь;
Возврат ТабДок;
КонецФункции
Меняем строчку открытия модально на простое открытие в форме документа и повторяем эксперимент.
Процедура ОсновныеДействияФормыТест(Кнопка)
Форма = ПолучитьФорму("Форма");
//Форма.ОткрытьМодально();
Форма.Открыть();
КонецПроцедуры
Открыв форму в обычном режиме и видим, что кнопки свернуть и развернуть появляются.
Поведение с кнопкой свернуть понятно, если свернуть форму в модальном режиме, то мы не сможем её потом развернуть, а кнопка развернуть видимо пропадает за компанию.
Вывод: Проектируйте решения без печати из модального окна.
Управляемые формы
Проделываем все то же самое только на управляемых формах.
Кнопка тест на форме документа
&НаКлиенте
Процедура Тест(Команда)
ОткрытьФорму("Документ.Документ1.Форма.Форма",,,,,,,РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
КонецПроцедуры
Кнопка тест2 для показа печатной формы в произвольном документе.
&НаКлиенте
Процедура тест2(Команда)
ТабДок = ПолучитьМакетНаСервере();
ТабДок.показать();
КонецПроцедуры
&НаСервере
Функция ПолучитьМакетНаСервере()
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.Документ1.ПолучитьМакет("Макет");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьДетальныхЗаписей);
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;
КонецФункции
В результате эксперимента видим что все кнопки свернуть\развернуть на месте, а печатная форма открывается в отдельном независимом окне не привязанное к интерфейсу, т.е. интерфейс заблокирован на произвольной форме, а печатная форма живет своей жизнью.
Желаю всем работать с актуальными технологиями и современным стеком.
