Каждый бухгалтер, работающий с импортным товаром в программе «1С:Бухгалтерия 3.0» (БП3), знает, насколько важно корректно отражать номера грузовых таможенных деклараций (ГТД) и страну происхождения в первичных документах. Ошибка в этих данных или их отсутствие в печатных формах счетов-фактур и УПД (Универсальных передаточных документов) грозит отказом в вычете НДС со стороны контролирующих органов.
Довольно часто возникает крайне неприятная ситуация: в документе поступления ГТД заполнена, в карточке номенклатуры все настроено, в документе реализации (отгрузки) страна и номер декларации выбраны, проводки по регистрам и субконто сформировались без ошибок. Но как только мы открываем печатную форму счета-фактуры или УПД, поля «Страна происхождения» и «Номер таможенной декларации» оказываются абсолютно пустыми или там выводятся прочерки. Давайте подробно разберем, почему так происходит, изучим внутреннюю архитектуру программы 1С и найдем простые штатные способы решения этой проблемы.
Для того чтобы понять корень проблемы, нам необходимо обратиться к законодательству и особенностям его реализации в коде 1С. Согласно Постановлению Правительства РФ № 981, в счетах-фактурах, а также в книгах покупок и продаж должен указываться строго определенный реквизит — Регистрационный номер таможенной декларации.
В чем принципиальная разница между полным номером ГТД и регистрационным номером?
10129000/220923/0012345/001), где последняя цифра указывает на порядковый номер товара в спецификации к декларации.Для реализации этих требований разработчики фирмы 1С разделили хранение информации в справочнике НомераТаможенныхДеклараций на два разных поля:
РегистрационныйНомер). Это очищенный от суффиксов 23-значный номер, который система использует исключительно для вывода в печатные формы счетов-фактур, УПД и для формирования отчетности по НДС.Если скрытый реквизит РегистрационныйНомер по какой-то причине оказывается пустым, программа считает, что регистрационный номер отсутствует, и выводит в печатной форме пустые строки, несмотря на то, что в самом документе визуально номер ГТД выбран.
При стандартном ручном вводе нового номера ГТД пользователем в интерфейсе программы срабатывает встроенный обработчик, который автоматически очищает введенную строку от лишних символов и дублирует корректное значение в скрытое поле. Однако в реальной практике данные часто заносятся автоматизированными путями, при которых стандартные обработчики пропускаются. Рассмотрим основные причины:
Прежде чем приступать к исправлению, нам нужно точно определить, у каких именно элементов справочника не заполнен регистрационный номер. Для этого мы воспользуемся удобным встроенным инструментом.
Рассмотрим по шагам, как настроить отчет:
Ссылка, Код (это видимый пользователю номер) и скрытый реквизит Регистрационный номер.Регистрационный номер, вид сравнения — Не заполнено.Проанализировав сформированную таблицу, мы сразу увидим список всех «проблемных» номеров ГТД, которые ломают печать счетов-фактур.
В зависимости от объема поврежденных данных и ваших технических навыков, вы можете выбрать один из трех путей исправления ситуации.
Если в вашем отчете фигурирует всего несколько проблемных номеров, проще всего исправить их вручную. Дело в том, что в коде справочника НомераТаможенныхДеклараций на уровне платформы прописан алгоритм валидации, который запускается в событии ПередЗаписью.
Нам достаточно открыть карточку каждого ошибочного номера ГТД непосредственно из «Универсального отчета» двойным кликом мыши и просто нажать кнопку Записать и закрыть. Программа сама «подхватит» значение из поля «Код», отсечет суффикс, проверит формат на соответствие 23 символам и запишет результат в скрытый реквизит. После этого печать сразу заработает.
Когда проблемных номеров ГТД десятки или сотни, ручной метод становится неэффективным. Воспользуемся стандартным механизмом группового изменения, однако здесь есть важный нюанс — скрытые реквизиты по умолчанию недоступны для редактирования пользователю.
Разберем детально процесс настройки групповой обработки:
Регистрационный номер — Не заполнено, чтобы случайно не перезаписать корректные элементы.Внимание! Метод группового изменения напрямую записывает строковое значение «как есть», без запуска алгоритмов очистки и валидации. Этот способ отлично подойдет, если у вас все незаполненные ГТД имеют правильную структуру без лишних суффиксов товара на конце. Если же номера «грязные», лучше прибегнуть к программному методу.
Если у вас тысячи элементов с пустыми регистрационными номерами, а структура номеров разнородная, лучшим решением будет запуск программной перезаписи всех объектов справочника. При программном вызове метода Записать() система принудительно выполнит штатные процедуры очистки и валидации для каждого элемента.
Для этого можно запустить внешнюю обработку «Групповое изменение реквизитов» с включенным флажком «Выполнять в транзакции» и «Записывать объекты принудительно», либо выполнить в консоли кода (или через внешнюю обработку) простой скрипт на встроенном языке 1С:
Выборка = Справочники.НомераТаможенныхДеклараций.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектГТД = Выборка.ПолучитьОбъект();
// Проверяем, пуст ли скрытый регистрационный номер
Если НЕ ЗначениеЗаполнено(ОбъектГТД.РегистрационныйНомер) Тогда
Попытка
// Метод Записать() автоматически вызовет предопределенную процедуру ПередЗаписью
// и заполнит скрытое поле на основе наименования (кода) ГТД
ОбъектГТД.Записать();
Сообщить("Успешно восстановлен рег. номер для: " + ОбъектГТД.Код);
Исключение
Сообщить("Не удалось записать ГТД " + ОбъектГТД.Код + ". Ошибка: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Этот простой код бережно обойдет весь справочник, найдет пустые значения, исправит их силами самой платформы и выведет подробный лог работы в окно сообщений.
В завершение анализа проблемы важно упомянуть важный нюанс, связанный с торговлей внутри Евразийского экономического союза (ЕАЭС). Если вы импортируете товары из Беларуси, Казахстана, Армении или Киргизии, формат номеров деклараций (заявлений о ввозе товаров и уплате косвенных налогов) будет существенно отличаться от стандартного российского 23-значного шаблона.
Встроенная в 1С проверка при попытке стандартной записи может посчитать такой номер «некорректным» по структуре и очистить поле РегистрационныйНомер, оставив его пустым. Для таких товаров вам придется заполнять регистрационный номер вручную, используя именно групповое изменение реквизитов в режиме разработчика (Вариант Б), поскольку этот метод позволяет записать неформатное значение в обход жестких проверок валидатора системы.