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

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

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

Выясняем суть проблемы и потребности учета

Проанализируем, почему обновление бланка печатной формы в старом релизе (например, 3.0.36.16) вызывает сложности. Новые законодательные требования (например, Постановления Правительства № 625, № 952 и другие) добавляют в шапку и табличную часть бланка новые строки и параметры — в частности, Идентификатор государственного контракта, договора (соглашения).

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

  1. Если организация не работает с госконтрактами: реквизит государственного контракта заполнять не требуется. Достаточно обеспечить вывод обязательной строки «Идентификатор государственного контракта, договора (соглашения): прочерк (или пусто)» и актуального номера редакции постановления в шапке.
  2. Если организация использует госконтракты: необходимо предусмотреть место для хранения и ввода идентификатора.

Варианты реализации доработки печатной формы

Вариант 1. Использование внешней печатной формы (ВПФ)

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

  1. Создаем новую внешнюю обработку и подключаем стандартные функции регистрации БСП (процедуру СведенияОВнешнейОбработке).
  2. Скопируем макет и модуль формирования печатной формы из текущей базы или из более свежего релиза.
  3. Дорабатываем макет: обновляем шапку, ссылки на законодательные акты и добавляем нужные секции.
  4. Если данные по госконтракту не требуются, в коде модуля внешней обработки при заполнении параметров шапки жестко прописываем вывод прочерка "--" при дате документа позже определенного числа (например, Дата >= '20170701').

Вариант 2. Добавление реквизита без снятия базы с поддержки

Если заказчику действительно необходимо хранить идентификатор гос. контракта, но вы не хотите дорабатывать структуру метаданных документа, разберем механизм Дополнительных реквизитов и сведений:

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

Вариант 3. Создание реквизита в конфигурации и вынос печати в ВПФ

Если база уже снята с поддержки и допускаются точечные изменения:

  1. В конфигураторе добавляем новый реквизит ИдентификаторГосконтракта в документ СчетФактураВыданный и выносим его на форму.
  2. Печатную форму с новыми секциями макета и логикой обработки выносим во внешнюю обработку (ВПФ).
  3. В модуле ВПФ считываем значение нового реквизита непосредственно из документа и передаем его в макет.

Альтернатива: Расширения конфигурации (.cfe)

Если платформа «1С:Предприятие» обновлена до версии 8.3.10 и выше, проанализируем вариант создания Расширения конфигурации. Этот механизм позволяет:

Технические нюансы и ограничения

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

Пример кода регистрации ВПФ в БСП

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


Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.СчетФактураВыданный");

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Счет-фактура (актуальный бланк)");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Версия", "1.0");

    Команды = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(Команды,
        "Счет-фактура (новый)",
        "СчетФактураНовый",
        "ВызовСерверногоМетода",
        Ложь,
        "ПечатьТабличногоДокумента");

    ПараметрыРегистрации.Вставить("Команды", Команды);

    Возвращать ПараметрыРегистрации;

КонецФункции

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

← На главную