При изменении законодательных требований к бланкам счетов-фактур (в частности, при введении обязательного реквизита «Идентификатор государственного контракта, договора (соглашения)») предприятия часто сталкиваются с ситуацией, когда типовое обновление конфигурации еще не установлено, а выставлять документы контрагентам необходимо уже с текущей даты. В таких случаях оперативным решением становится создание или адаптация внешней печатной формы. Разберем детально, как внести изменения в макет и модуль внешней обработки, а также выясним особенности заполнения новых реквизитов в «1С:Управление производственным предприятием 1.3».
Посмотрим, из каких основных этапов состоит доработка печатной формы. Для корректного формирования печатного документа требуется решить две ключевые задачи:
Рассмотрим порядок модификации макета печатной формы счета-фактуры:
Шапка, предусмотрев строку: «Идентификатор государственного контракта, договора (соглашения):» (строка 8 счета-фактуры).ИдентификаторГосКонтракта.Разберем, как реализовать логику вывода в модуле внешней обработки. В типовых конфигурациях свежих релизов для проверки даты используется функция общего модуля УчетНДС.ВедетсяУчетНДСПоФЗ56(). Если конфигурация еще не обновлена до нужного релиза, данная функция будет отсутствовать, поэтому проверку даты документа можно выполнить явным сравнением.
Посмотрим на пример формирования и вывода области идентификатора госконтракта:
// Проверяем дату документа
Если СсылкаНаОбъект.Дата >= '20170701' Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИдентификаторГосКонтракта");
// При наличии значения заполняем параметр, иначе оставляем пустым или ставим прочерк
Если ЗначениеЗаполнено(СтруктураРеквизитов.ИдентификаторГосКонтракта) Тогда
ОбластьМакета.Параметры.ИдентификаторГосКонтракта = СтруктураРеквизитов.ИдентификаторГосКонтракта;
Иначе
ОбластьМакета.Параметры.ИдентификаторГосКонтракта = "";
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
Если в обработке также требуется вывод сведений по комиссионной торговле, проанализируем пример процедуры заполнения реквизитов комиссионера:
Процедура ВывестиРеквизитыКомиссионера(Продавец, Поставщик, Дата, Макет, ТабДокумент)
Если ЗначениеЗаполнено(Продавец)
И ЗначениеЗаполнено(Поставщик)
И Продавец <> Поставщик Тогда
ОбластьМакета = Макет.ПолучитьОбласть("РеквизитыКомиссионера");
СведенияОКомиссионере = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Поставщик, Дата);
НаименованиеКомиссионера = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОКомиссионере, "ПолноеНаименование,");
ЮридическийАдресКомиссионера = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОКомиссионере, "ЮридическийАдрес,");
ИННКомиссионера = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОКомиссионере, "ИНН,", Ложь);
КППКомиссионера = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОКомиссионере, "КПП,", Ложь);
ОбластьМакета.Параметры.ПредставлениеКомиссионера = "Составлен комиссионером (агентом): " + НаименованиеКомиссионера
+ ", " + ЮридическийАдресКомиссионера
+ ", ИНН/КПП: " + ИННКомиссионера
+ ?(ЗначениеЗаполнено(КППКомиссионера), "/" + КППКомиссионера, "");
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
КонецПроцедуры
Выясним правила заполнения реквизита «Идентификатор государственного контракта»:
Объект.Код = Прав(Строка(Объект.ГодЗаключения), 2) +
Прав(Строка(Объект.ГодОкончанияСрокаДействия), 2) +
Объект.КодГосударственногоЗаказчика +
КодСпособаОпределенияПоставщика +
Объект.ПорядковыйНомер +
Объект.ВидЦены +
Объект.ДополнительныеРазряды;
ДоговорыКонтрагентов через механизм дополнительных реквизитов (план видов характеристик СвойстваОбъектов) и считывать его значение запросом внутри внешней печатной формы.Важно помнить о технических ограничениях применения внешней печатной формы как временного решения:
СчетФактураВыданный не обновляет автоматически макеты корректировочных счетов-фактур, а также печатные формы УПД и УКД. Их потребуется дорабатывать отдельно.РеализацияТоваровУслуг), внешняя обработка, прикрепленная только к счету-фактуре, не будет вызываться из формы документа-основания без дополнительной регистрации.