При изменении законодательства бухгалтерии требуется актуальная печатная форма документа Счет-фактура выданный. Однако на практике часто возникает ситуация, когда конфигурация 1С:Бухгалтерия 3.0 сильно доработана и не может быть оперативно обновлена до текущего релиза. Рассмотрим варианты решения этой задачи, их плюсы и минусы, а также оптимальный алгоритм реализации.
Проанализируем, почему обновление бланка печатной формы в старом релизе (например, 3.0.36.16) вызывает сложности. Новые законодательные требования (например, Постановления Правительства № 625, № 952 и другие) добавляют в шапку и табличную часть бланка новые строки и параметры — в частности, Идентификатор государственного контракта, договора (соглашения).
В свежих релизах конфигурации под эти задачи уже созданы нужные реквизиты объектов метаданных и элементы формы. Если база не обновляется, у нас есть несколько способов вывести корректный документ:
Рассмотрим наименее травматичный для основной базы способ — создание внешней печатной формы (ВПФ) на базе Библиотеки Стандартных Подсистем (БСП):
СведенияОВнешнейОбработке)."--" при дате документа позже определенного числа (например, Дата >= '20170701').Если заказчику действительно необходимо хранить идентификатор гос. контракта, но вы не хотите дорабатывать структуру метаданных документа, разберем механизм Дополнительных реквизитов и сведений:
СчетФактураВыданный добавляем дополнительное поле «Идентификатор госконтракта». Пользователь сможет заполнять его прямо на форме документа в стандартной панели.ДополнительныеРеквизиты.Если база уже снята с поддержки и допускаются точечные изменения:
ИдентификаторГосконтракта в документ СчетФактураВыданный и выносим его на форму.Если платформа «1С:Предприятие» обновлена до версии 8.3.10 и выше, проанализируем вариант создания Расширения конфигурации. Этот механизм позволяет:
&Вместо или &После.Разберем важные моменты, которые необходимо учитывать при переносе кода из новых релизов в старые:
1С:Бухгалтерии во внешнюю обработку старой базы могут возникнуть ошибки отсутствия методов общих модулей (например, подсистемы УправлениеПечатью). Весь вызов функций необходимо адаптировать под БСП текущей базы либо вызывать локальные процедуры внутри ВПФ.Рассмотрим базовый пример функции регистрации внешней печатной формы для конфигурации на БСП:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.СчетФактураВыданный");
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Счет-фактура (актуальный бланк)");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Версия", "1.0");
Команды = ПолучитьТаблицуКоманд();
ДобавитьКоманду(Команды,
"Счет-фактура (новый)",
"СчетФактураНовый",
"ВызовСерверногоМетода",
Ложь,
"ПечатьТабличногоДокумента");
ПараметрыРегистрации.Вставить("Команды", Команды);
Возвращать ПараметрыРегистрации;
КонецФункции
Таким образом, сочетание добавления реквизита (через доп. реквизиты или точечную доработку) и выноса логики формирования бланка во внешнюю печатную форму позволяет оперативно решить задачу клиента без проведения трудоемкого полного обновления доработанной конфигурации.