В процессе разработки печатных форм или отчетов на обычных формах разработчики 1С часто использовали команду «ПолучитьМакет» на стороне клиента. В управляемых же формах платформы 1С 8.3 эта команда доступна только на сервере или толстом клиенте. Так как подавляющее большинство пользователей работают в режиме тонкого, программистам придется изменить процесс, чтобы получить макет внешней обработки 1С.
Как получить макет на клиенте?
В этом нам поможет отдельная функция, работающая на стороне сервера. С помощью функции «РеквизитФормыВЗначение()» мы передадим объект в виде нашей внешней обработки в серверную функцию и там получим макет. В качестве реквизита формы выступает основной реквизит, выделенный на самой форме жирным шрифтом. Подробный код функции содержит следующие строки:
Объявление функции;
&НаСервере
Функция ПолучитьМакетНаСервере()
Передача объекта с клиентской формы на сервер;
ОбъектВнешнейОбработки = РеквизитФормыВЗначение("Объект");
Получение макета по наименованию. Наименование задается при добавлении макета во внешнюю обработку;
НовыйМакет = ОбработкаОбъект.ПолучитьМакет("НовыйМакет");
Возвращаем полученный макет на клиент;
Возврат НовыйМакет;
КонецФункции
Это изменение призвано оптимизировать работу тонкого клиента и перенести «тяжелые» операции на сервер. Подобные разграничения пропагандирует компания 1С, стараясь оставить на стороне клиента лишь работы по прорисовке интерфейса. Чуть больше строк кода даст нам прирост производительности и более стандартизированный код. Если придерживаться единых стандартов 1С при разработке, то будет намного удобнее и понятнее поддерживать сложные конфигурации.
консультация эксперта
самые свежие новости 1 раз в месяц