ТабличныйДокумент 1с нет кнопки развернуть на весь экран

1с табличный документ исчезающая кнопка развернуть на весь экран и свернуть

Вчера ко мне обратился коллега с интересным вопросом, у него есть печатная форма и её нельзя развернуть на весь экран или свернуть, а желание сделать это есть.

Разбираемся как вернуть кнопку.

Будем разбираться с проблемой с конца.

У нас есть печатная форма, которую пользователи хотят развернуть на весь экран, но такой кнопки нет.

ТабличныйДокумент 1с нет кнопки развернуть на весь экран
1с табличный документ нет кнопки развернуть на весь экран

Разобрав код и бизнес логику стало понятно в чем дело, сейчас повторим воссоздав тестовый пример. Сразу скажу что такое поведение платформы проявляется в обычных формах и воспроизводилось на платформе 8.3.18.

Создадим в пустой конфигурации метаданные для теста

Обычные формы

Создаем тестовый документ.

Добавим пару реквизитов, форму документа, произвольную форму и макет.

На форму добавим кнопку открытия произвольной формы модально, а на произвольную форму добавим кнопку открытия макета.

Кнопка открытия произвольной формы модально, на форме документа.

Форма = ПолучитьФорму("Форма");
Форма.ОткрытьМодально();

Кнопка открытия печатной формы, на произвольной форме.

Процедура ОсновныеДействияФормытест2(Кнопка)
	ТабДок = ПолучитьМакетНаСервере();
	ТабДок.показать();
КонецПроцедуры

Функция ПолучитьМакетНаСервере()
	ТабДок = Новый ТабличныйДокумент;
	Макет = Документы.Документ1.ПолучитьМакет("Макет");
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
	
	ТабДок.Очистить();
	ТабДок.Вывести(ОбластьЗаголовок);
	ТабДок.Вывести(ОбластьШапкаТаблицы);
	ТабДок.Вывести(ОбластьДетальныхЗаписей);
	ТабДок.Вывести(ОбластьПодвалТаблицы);
	ТабДок.Вывести(ОбластьПодвал);
	
	ТабДок.ОтображатьСетку = Ложь;
	
	Возврат ТабДок;
КонецФункции
Воспроизведение действий

Меняем строчку открытия модально на простое открытие в форме документа и повторяем эксперимент.

Процедура ОсновныеДействияФормыТест(Кнопка)
	Форма = ПолучитьФорму("Форма");
	//Форма.ОткрытьМодально();
	Форма.Открыть();
КонецПроцедуры
Открытие табличного документа 1с

Открыв форму в обычном режиме и видим, что кнопки свернуть и развернуть появляются.

Поведение с кнопкой свернуть понятно, если свернуть форму в модальном режиме, то мы не сможем её потом развернуть, а кнопка развернуть видимо пропадает за компанию.

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

Управляемые формы

Проделываем все то же самое только на управляемых формах.

Кнопка тест на форме документа

&НаКлиенте
Процедура Тест(Команда)
	ОткрытьФорму("Документ.Документ1.Форма.Форма",,,,,,,РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
КонецПроцедуры

Кнопка тест2 для показа печатной формы в произвольном документе.

&НаКлиенте
Процедура тест2(Команда)
	
	ТабДок = ПолучитьМакетНаСервере();
	ТабДок.показать();

КонецПроцедуры

&НаСервере
Функция ПолучитьМакетНаСервере()
	ТабДок = Новый ТабличныйДокумент;
	Макет = Документы.Документ1.ПолучитьМакет("Макет");
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
	
	ТабДок.Очистить();
	ТабДок.Вывести(ОбластьЗаголовок);
	ТабДок.Вывести(ОбластьШапкаТаблицы);
	ТабДок.НачатьАвтогруппировкуСтрок();
	
	ТабДок.Вывести(ОбластьДетальныхЗаписей);
	
	ТабДок.ЗакончитьАвтогруппировкуСтрок();
	ТабДок.Вывести(ОбластьПодвалТаблицы);
	ТабДок.Вывести(ОбластьПодвал);
	
	Возврат ТабДок;
КонецФункции

Повторяем весь путь в управляемом приложении

В результате эксперимента видим что все кнопки свернуть\развернуть на месте, а печатная форма открывается в отдельном независимом окне не привязанное к интерфейсу, т.е. интерфейс заблокирован на произвольной форме, а печатная форма живет своей жизнью.

Желаю всем работать с актуальными технологиями и современным стеком.


от

Комментарии

Добавить комментарий