При обновлении регламентированных форм счетов-фактур у пользователей и разработчиков регулярно возникают вопросы, касающиеся заполнения новых граф и алгоритмов формирования печатных форм в учетных системах. В частности, изменения затрагивают графу 1а (код вида товара по ТН ВЭД ЕАЭС) и графу 11 (регистрационный номер таможенной декларации вместо прежнего номера таможенной декларации). Разберем детально, как формируются эти реквизиты, откуда брать данные для номенклатуры на складе и как правильно адаптировать макеты печати в 1С.
Рассмотрим структуру реквизитов и особенности их указания при отгрузках:
XXXXXXXX/XXXXXX/XXXXXXX (8 цифр кода таможенного поста, 6 цифр даты ДДММГГ и 7 цифр порядкового номера декларации). Ранее в счетах-фактурах часто указывался полный номер с четвертым блоком (порядковый номер товара из графы 32 декларации).Проанализируем техническую сторону доработки конфигурации. При изменении состава колонок печатного бланка у разработчиков возникает выбор: динамически собирать колонки табличного документа через вертикальные секции либо использовать раздельные макеты под разные редакции законодательства.
Попытка формировать счет-фактуру комбинированием методов Вывести() и Присоединить() с вертикальными секциями приводит к существенному усложнению программного кода. При динамическом добавлении колонок нарушается общая сетка табличного документа (ширина колонок в шапке документа, подписях и служебных областях). Поэтому наиболее стабильным и рекомендуемым подходом является разделение макетов с условием проверки даты формирования документа.
Разберем по шагам, как реализовать вывод нужного бланка в коде модуля печати:
Посмотрим на пример реализации алгоритма выбора макета:
// Определяем дату вступления новой формы в силу
ДатаИзмененияФормы = '20171001000000';
Если Шапка.Дата >= ДатаИзмененияФормы Тогда
Макет = ПолучитьМакет("ПФ_MXL_СчетФактура2017");
Иначе
Макет = ПолучитьМакет("ПФ_MXL_СчетФактураПредыдущая");
КонецЕсли;
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
// Выводим данные в табличный документ
ТабличныйДокумент.Вывести(ОбластьШапка);
Для Каждого Стр Из ТабличнаяЧасть Цикл
ОбластьСтрока.Параметры.Заполнить(Стр);
// Обработка кода ТН ВЭД для графы 1а
Если ПустаяСтрока(Стр.КодТНВЭД) Тогда
ОбластьСтрока.Параметры.КодТНВЭД = "-";
КонецЕсли;
// Номер декларации выводится строкой из справочника НомераГТД
ОбластьСтрока.Параметры.НомерГТД = Стр.НомерГТД;
ТабличныйДокумент.Вывести(ОбластьСтрока);
КонецЦикла;
ТабличныйДокумент.Вывести(ОбластьПодвал);
В типовых конфигурациях 1С для хранения таможенных деклараций используется справочник НомераГТД (или аналогичный регистр/справочник в зависимости от конфигурации). Реквизит Код или Номер данного справочника имеет строковый тип данных. Это означает, что:
Использование отдельных макетов и корректное заполнение прочерков в графе 1а гарантируют полное соответствие печатных форм нормативным требованиям и исключают проблемы с контролем вычетов НДС.