Как программно добавить новый макет счета-фактуры в 1С:Бухгалтерия 2.0

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

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

Вариант 1. Программное добавление макета через конфигуратор

Если принято решение вносить изменения непосредственно в структуру конфигурации, разберем по шагам алгоритм доработки печатных форм для документа «Счет-фактура выданный».

  1. Добавление макета в общие макеты:

    В дереве конфигурации перейдем в ветку Общие > Общие макеты, скопируем стандартный макет счета-фактуры и присвоим ему уникальное имя (например, СчетФактураНовый). Внесем необходимые изменения в ячейки и строки печатной формы.

  2. Добавление пункта в выпадающее меню кнопки «Печать»:

    В конфигурации 2.0 меню кнопки «Печать» формируется программно при открытии формы документа или формы списка. Нам потребуется найти процедуру инициализации печатных форм (например, ЗаполнитьКнопкуПечать()) в модуле формы документа и добавить новую команду:

    
    КнопкаПечать = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать;
    КнопкаПечать.Кнопки.Добавить("СчетФактураНовый", ТипКнопкиКоманднойПанели.Действие, "Счет-фактура (по-новому)", Новый Действие("НажатиеКнопкиПечать"));
    
  3. Обработка команды печати в модуле документа:

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

    
    Если ИмяМакета = "СчетФактураНовый" Тогда
        ТабличныйДокумент = ПечатьНовогоСчетаФактуры(КомандаПечати);
    ИначеЕсли ...
        // Типовой код вызова печати
    КонецЕсли;
    
  4. Формирование табличного документа:

    Для вызова общего макета воспользуемся функцией ПолучитьОбщийМакет("СчетФактураНовый"). Чтобы не переписывать сложную логику расчета сумм, НДС и выборки данных, вызовем типовые функции общего модуля УчетНДС, передав им созданный макет и ссылку на документ.

Вариант 2. Использование внешней печатной формы (рекомендуемый способ)

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

Посмотрим на преимущества использования внешних печатных форм (ВПФ):

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

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

Ограничения и особенности работы с макетами НДС

Рассмотрев оба способа, отметим важные технические особенности:

  1. Привязка к дате документа: Законодательные формы счетов-фактур регулярно меняются с выходом постановлений Правительства РФ. Типовой механизм 1С подбирает макет в зависимости от даты документа. При разработке собственного макета важно следить, чтобы алгоритм подставлял нужную форму и не нарушал печать документов прошлых периодов.
  2. Особенности платформы и конфигураций: В отличие от управляемых форм и более свежих редакций (например, БП 3.0), где доступны расширения конфигурации (.cfe) или встроенные пользовательские макеты в режиме предприятия, в редакции 2.0 обычного приложения наилучшим альтернативным вариантом правке кода конфигурации является использование внешних печатных форм.
← На главную