Как добавить реквизиты «Договор» и «Соглашение» в шапку печатной формы счета в 1С:ERP

Пользователь 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет
← На главную

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

Разберем подробно несколько вариантов решения этой задачи — от настройки программы в пользовательском режиме без написания кода до доработки системы с помощью внешней печатной формы и расширения конфигурации.

Вариант 1. Использование поля «Информация для печати» и редактора макетов в пользовательском режиме

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

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

  1. Перейдем в раздел НСИ и администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
  2. В списке макетов найдем печатную форму Счет на оплату (или Счет на оплату (с печатью и подписью)).
  3. Нажмем кнопку Изменить для открытия встроенного редактора табличного документа.
  4. Найдем в нижней секции макета ячейку, содержащую параметр ИнформацияДляПечати.
  5. Перенесем эту ячейку или скопируем параметр в верхнюю область — секцию Шапка, расположив его рядом с датой и номером заказа.
  6. Сохраним изменения в макете.

После выполнения этих шагов любая информация, вводимая менеджером в поле «Информация для печати» в документе Заказ клиента, будет автоматически отображаться в верхней части печатной формы счета.

Вариант 2. Разработка внешней печатной формы (ВПФ)

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

Внешняя печатная форма разрабатывается с использованием механизмов Библиотеки Стандартных Подсистем (БСП). Разберем по шагам логику реализации модуля внешней обработки:

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

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Ссылка.Номер КАК Номер,
    |	Ссылка.Дата КАК Дата,
    |	Ссылка.Договор.НаименованиеДляПечати КАК ДоговорНаименование,
    |	Ссылка.Соглашение.Наименование КАК СоглашениеНаименование,
    |	Ссылка.Организация КАК Организация,
    |	Ссылка.Контрагент КАК Контрагент
    |ИЗ
    |	Документ.ЗаказКлиента КАК Ссылка
    |ГДЕ
    |	Ссылка В(&МассивОбъектов)";

Запрос.УстановитьПараметр("МассивОбъектов", МассивИсточников);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
  1. В табличном документе внешней обработки создаем параметры в секции Шапка, например Договор и Соглашение, и заполняем их из выборки запроса при выводе области:

Пока Выборка.Следующий() Цикл
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.Заполнить(Выборка);
    
    // При необходимости форматируем представление
    Если ЗначениеЗаполнено(Выборка.ДоговорНаименование) Тогда
        ОбластьШапка.Параметры.ТекстДоговора = "Договор: " + Выборка.ДоговорНаименование;
    Иначе
        ОбластьШапка.Параметры.ТекстДоговора = "";
    КонецЕсли;
    
    ТабДок.Вывести(ОбластьШапка);
КонецЦикли;
  1. Подключаем готовый файл .epf через меню НСИ и администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.

Вариант 3. Использование расширения конфигурации (.cfe)

Рассмотрим современный способ доработки — использование расширения конфигурации. В отличие от прямого изменения основной конфигурации, расширение не препятствует последующим обновлениям 1С:ERP.

Для реализации этой задачи выберем следующий алгоритм:

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

Важные особенности учета реквизитов в 1С:ERP

При работе с реквизитами Соглашение и Договор в 1С:ERP необходимо учитывать настройки системы:

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

← На главную