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