1с программно получить макет

Практически для каждого отчета или печатной формы 1С не обойтись без метода «ПолучитьМакет()». Метод ПолучитьМакет() нельзя вызвать на сервере в модуле формы управляемого приложения. Как верно использовать его, я рассмотрю ниже.

В управляемой форме 1C для этого этого необходимо использовать следующую конструкцию в процедуре «&НаСервере»:

Связано это с тем, что на управляемой форме форме не доступны методы объекта. Получая объект и обращаясь методом «ПолучитьМакет()», система позволит нам получить нужные данные.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

В процессе разработки печатных форм или отчетов на обычных формах разработчики 1С часто использовали команду «ПолучитьМакет» на стороне клиента. В управляемых же формах платформы 1С 8.3 эта команда доступна только на сервере или толстом клиенте. Так как подавляющее большинство пользователей работают в режиме тонкого, программистам придется изменить процесс, чтобы получить макет внешней обработки 1С.

Как получить макет на клиенте?

В этом нам поможет отдельная функция, работающая на стороне сервера. С помощью функции «РеквизитФормыВЗначение()» мы передадим объект в виде нашей внешней обработки в серверную функцию и там получим макет. В качестве реквизита формы выступает основной реквизит, выделенный на самой форме жирным шрифтом. Подробный код функции содержит следующие строки:

Передача объекта с клиентской формы на сервер;

Получение макета по наименованию. Наименование задается при добавлении макета во внешнюю обработку;

Возвращаем полученный макет на клиент;

Это изменение призвано оптимизировать работу тонкого клиента и перенести «тяжелые» операции на сервер. Подобные разграничения пропагандирует компания 1С, стараясь оставить на стороне клиента лишь работы по прорисовке интерфейса. Чуть больше строк кода даст нам прирост производительности и более стандартизированный код. Если придерживаться единых стандартов 1С при разработке, то будет намного удобнее и понятнее поддерживать сложные конфигурации.

После массового перехода на управляемые формы в 1С 8.3 у многих программистов возникла трудность при получении макета внешней обработки или отчета. Ранее для этого использовалась функция «ПолучитьМакет()», но в режиме управляемого приложения данная конструкция перестала работать на клиенте. Что же делать?

Ответ прост — необходимо использовать следующую функцию:

Или более лаконично:

Примечание: если необходимо получить макет обработки — используйте вместо «Обработка» значение «Отчет».

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий