Как добавить новые реквизиты в макет печатной формы документа в 1С?

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

При доработке типовых конфигураций (например, 1С:Управление нашей фирмой) часто возникает задача: в документ добавлены новые реквизиты, и теперь их значения необходимо вывести в печатную форму. Однако простого добавления текста или названия реквизита в ячейку макета недостаточно. Разберем подробно, почему свойства ячеек могут быть недоступны, как устроен механизм вывода печатных форм и какими способами можно решить эту задачу.

Шаг 1. Настройка ячеек в табличном документе (макете)

Проанализируем частую проблему: при открытии макета в палитре свойств отсутствует раздел Макет или свойство Заполнение (где переключаются режимы Текст, Параметр, Шаблон).

Выясним причину такого поведения конфигуратора. Данное свойство отображается только тогда, когда выделена сама ячейка целиком (или диапазон ячеек), но курсор не находится внутри ячейки в режиме непосредственного ввода текста. Если дважды кликнуть по ячейке и начать писать, фокус переходит в режим редактирования строки, и свойства макета в палитре скрываются.

Рассмотрим порядок правильной настройки ячейки:

  1. Выделим нужную ячейку одним щелчком мыши (чтобы вокруг нее появилась черная рамка выделения).
  2. Откроем палитру свойств (нажатием клавиши F4 или через контекстное меню).
  3. В группе свойств Макет найдем параметр Заполнение.
  4. Выберем один из подходящих режимов:
    1. Параметр — если в ячейке должно выводиться только одно конкретное значение. В тексте ячейки указываем имя параметра без спецсимволов, например: НовыйРеквизит.
    2. Шаблон — если значение реквизита должно выводиться внутри статического текста. В этом случае имя параметра внутри текста ячейки обрамляется квадратными скобками, например: Дополнительные сведения: [НовыйРеквизит].

Шаг 2. Программное заполнение параметров в модуле менеджера

Посмотрим на внутреннее устройство подсистемы печати БСП, используемой в УНФ. Изменение только визуального макета не приведет к выводу данных, так как платформа должна знать, откуда брать значения для созданных параметров. Формирование печатных форм обычно выполняется в модуле менеджера документа в экспортных процедурах печати.

Разберем по шагам, какие изменения необходимо внести в код конфигурации:

  1. Перейдем в модуль менеджера нужного документа и найдем процедуру формирования печатной формы (обычно это процедура Печать или вспомогательная процедура формирования табличного документа).
  2. Найдем текст запроса, который выбирает данные документа для печати, и добавим выборку новых полей:
    
    // В секцию ВЫБРАТЬ добавляем новые реквизиты документа
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	Документ.Ссылка КАК Ссылка,
        |	Документ.Номер КАК Номер,
        |	Документ.Дата КАК Дата,
        |	Документ.НовыйРеквизит1 КАК НовыйРеквизит1,
        |	Документ.НовыйРеквизит2 КАК НовыйРеквизит2
        |ИЗ
        |	Документ.ПриемВРемонт КАК Документ
        |ГДЕ
        |	Документ.Ссылка В(&МассивОбъектов)";
    
  3. В блоке вывода секций макета обеспечим передачу значений в параметры области табличного документа. Если имена параметров в макете совпадают с именами полей в выборке запроса, применяется метод заполнения:
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.Заполнить(Выборка);
    ТабличныйДокумент.Вывести(ОбластьШапка);
    
    Или передадим значения явным присваиванием:
    
    ОбластьШапка.Параметры.НовыйРеквизит1 = Выборка.НовыйРеквизит1;
    ОбластьШапка.Параметры.НовыйРеквизит2 = Выборка.НовыйРеквизит2;
    

Альтернативные способы реализации

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

  1. Внешняя печатная форма (ВПФ): создается отдельная внешняя обработка с макетом и программным кодом формирования. Она регистрируется в режиме «1С:Предприятие» через справочник ДополнительныеОтчетыИОбработки. Это изолирует изменения от основной конфигурации.
  2. Расширение конфигурации: позволяет добавить новые реквизиты и переопределить макет, а также процедуру печати в модуле менеджера с помощью аннотаций &Вместо или &ИзменениеИКонтроля, сохраняя конфигурацию на полной поддержке поставщика.

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

← На главную