Как правильно вывести новый параметр в печатную форму 1С:ЗУП?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

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

Основные причины отсутствия данных

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

Пошаговый алгоритм добавления нового параметра

Для того чтобы вывести новый реквизит, например, ЗарплатныйПроект, выполним следующие действия:

  1. Редактирование макета: Откройте нужный Макет в конфигураторе. В области, где вы хотите отобразить данные, создайте параметр и назовите его ЗарплатныйПроект. Убедитесь, что в свойствах ячейки тип заполнения установлен как «Параметр».
  2. Подготовка данных: Убедитесь, что в процедуре формирования печатной формы (обычно это модуль менеджера объекта) выбранные данные содержат необходимый реквизит.
  3. Передача значения в коде: В модуле, где формируется табличный документ, необходимо присвоить значение параметру макета.

Реализация передачи данных в коде

Рассмотрим, как выглядит процесс связки данных и макета программно. Предположим, у нас есть область Шапка, и мы хотим заполнить в ней наш параметр:


// Получаем область из макета
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

// Передаем значение из объекта в параметр макета
ОбластьМакета.Параметры.ЗарплатныйПроект = ДанныеДокумента.ЗарплатныйПроект;

// Выводим заполненную область в табличный документ
ТабДок.Вывести(ОбластьМакета);

Обратите внимание: если ДанныеДокумента не содержат свойства ЗарплатныйПроект, необходимо предварительно расширить запрос, который выбирает данные из базы данных. Если данные выбираются через Запрос, добавьте поле в секцию ВЫБРАТЬ и выполните Запрос.Выполнить().Выгрузить() или используйте выборку Выборка = Запрос.Выполнить().Выбрать();.

Советы по отладке

Чтобы быстро находить ошибки при доработке печатных форм, используйте следующие инструменты:

Помните, что использование Дополнительных отчетов и обработок или внешних печатных форм часто является более предпочтительным методом, так как это исключает необходимость изменения типовых объектов конфигурации и облегчает последующее обновление программы.

← На главную