Как добавить и вывести дополнительное поле в ВПФ УПД в 1С

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

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

Выясним причину: почему изменения в макете ВПФ не отображаются

Если в макет внешней печатной формы были внесены изменения (добавлена ячейка, задан параметр), но при формировании документа печатная форма остаётся прежней и ошибки не возникают, проанализируем следующие частые причины:

  1. Ошибка в функции получения макета в модуле обработки. Если во внешней печатной форме вместо вызова метода ПолучитьМакет() используется ПолучитьОбщийМакет(), система будет брать типовой макет из конфигурации, а не доработанный макет из внешнего файла ВПФ. В этом случае все изменения в макете ВПФ просто игнорируются.
  2. Неправильно заданное свойство ячейки «Заполнение». В свойствах ячейки макета табличного документа важно проверить режим заполнения:
    • Параметр: наименование параметра задаётся без кавычек и скобок, а в коде значение передаётся через Область.Параметры.ИмяПараметра = Значение;.
    • Шаблон: текст ячейки может содержать произвольный текст и параметры в квадратных скобках, например Код: [КодТовара].
    • Текст: строковое значение выводится как есть, без обработки параметров.

Исправление ошибки получения макета в модуле обработки ВПФ

Разберём пример кода модуля внешней печатной формы, где выбирается макет в зависимости от даты документа. Для корректной работы внешнего объекта необходимо обращаться к внутреннему макету обработки через ПолучитьМакет():


Если ДанныеДляПечати.ДатаСчетФактуры < '20171001' Тогда
    Макет = ПолучитьМакет("УниверсальныйПередаточныйДокумент");
Иначе
    Макет = ПолучитьМакет("УниверсальныйПередаточныйДокумент981");
КонецЕсли;

Обратите внимание: использование метода ПолучитьОбщийМакет() заставляет платформу искать макет в метаданных самой конфигурации, игнорируя макеты, встроенные в файл внешней обработки .epf.

Вывод реквизитов документа «Реализация товаров и услуг» в макет УПД

Посмотрим на ситуацию, когда УПД печатается из документа СчетФактураВыданный, но в печатную форму требуется вывести реквизиты из связанного документа РеализацияТоваровУслуг (например, дополнительный код, артикул или подразделение).

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

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

Таким образом, правильное обращение к макету обработки через ПолучитьМакет() и корректное соединение с документом-основанием РеализацияТоваровУслуг позволяют вывести любые нужные данные в печатную форму УПД без ошибок.

← На главную