Почему в 1С:Бухгалтерия 3.0 в счете-фактуре не печатаются ГТД и страна происхождения и как это исправить?

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

Каждый бухгалтер, работающий с импортным товаром в программе «1С:Бухгалтерия 3.0» (БП3), знает, насколько важно корректно отражать номера грузовых таможенных деклараций (ГТД) и страну происхождения в первичных документах. Ошибка в этих данных или их отсутствие в печатных формах счетов-фактур и УПД (Универсальных передаточных документов) грозит отказом в вычете НДС со стороны контролирующих органов.

Довольно часто возникает крайне неприятная ситуация: в документе поступления ГТД заполнена, в карточке номенклатуры все настроено, в документе реализации (отгрузки) страна и номер декларации выбраны, проводки по регистрам и субконто сформировались без ошибок. Но как только мы открываем печатную форму счета-фактуры или УПД, поля «Страна происхождения» и «Номер таможенной декларации» оказываются абсолютно пустыми или там выводятся прочерки. Давайте подробно разберем, почему так происходит, изучим внутреннюю архитектуру программы 1С и найдем простые штатные способы решения этой проблемы.

Законодательная основа и архитектура справочника в 1С

Для того чтобы понять корень проблемы, нам необходимо обратиться к законодательству и особенностям его реализации в коде 1С. Согласно Постановлению Правительства РФ № 981, в счетах-фактурах, а также в книгах покупок и продаж должен указываться строго определенный реквизит — Регистрационный номер таможенной декларации.

В чем принципиальная разница между полным номером ГТД и регистрационным номером?

Для реализации этих требований разработчики фирмы 1С разделили хранение информации в справочнике НомераТаможенныхДеклараций на два разных поля:

  1. Поле «Код» (наименование элемента). Именно это значение видит пользователь на экранах и в документах. Сюда заносится полный номер.
  2. Скрытый реквизит «Регистрационный номер» (имя в конфигураторе — РегистрационныйНомер). Это очищенный от суффиксов 23-значный номер, который система использует исключительно для вывода в печатные формы счетов-фактур, УПД и для формирования отчетности по НДС.

Если скрытый реквизит РегистрационныйНомер по какой-то причине оказывается пустым, программа считает, что регистрационный номер отсутствует, и выводит в печатной форме пустые строки, несмотря на то, что в самом документе визуально номер ГТД выбран.

Почему скрытый реквизит «Регистрационный номер» оказывается пустым?

При стандартном ручном вводе нового номера ГТД пользователем в интерфейсе программы срабатывает встроенный обработчик, который автоматически очищает введенную строку от лишних символов и дублирует корректное значение в скрытое поле. Однако в реальной практике данные часто заносятся автоматизированными путями, при которых стандартные обработчики пропускаются. Рассмотрим основные причины:

Шаг 1. Диагностика проблемы с помощью «Универсального отчета»

Прежде чем приступать к исправлению, нам нужно точно определить, у каких именно элементов справочника не заполнен регистрационный номер. Для этого мы воспользуемся удобным встроенным инструментом.

Рассмотрим по шагам, как настроить отчет:

  1. Перейдем в раздел Администрирование, далее выберем пункт Универсальный отчет.
  2. В шапке отчета настроим параметры выбора данных: тип объекта — Справочник, имя объекта — Номера таможенных деклараций, таблица — Основные данные.
  3. Нажмем кнопку Настройки... в верхней части панели.
  4. Перейдем на вкладку Поля и сортировки. Снимем флажки со всех стандартных полей и добавим только три необходимых нам реквизита: Ссылка, Код (это видимый пользователю номер) и скрытый реквизит Регистрационный номер.
  5. Перейдем на вкладку Отборы, добавим новый элемент отбора: поле — Регистрационный номер, вид сравнения — Не заполнено.
  6. Нажмем кнопку Закрыть и сформировать.

Проанализировав сформированную таблицу, мы сразу увидим список всех «проблемных» номеров ГТД, которые ломают печать счетов-фактур.

Шаг 2. Способы решения проблемы

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

Вариант А. Ручное пересохранение (для единичных случаев)

Если в вашем отчете фигурирует всего несколько проблемных номеров, проще всего исправить их вручную. Дело в том, что в коде справочника НомераТаможенныхДеклараций на уровне платформы прописан алгоритм валидации, который запускается в событии ПередЗаписью.

Нам достаточно открыть карточку каждого ошибочного номера ГТД непосредственно из «Универсального отчета» двойным кликом мыши и просто нажать кнопку Записать и закрыть. Программа сама «подхватит» значение из поля «Код», отсечет суффикс, проверит формат на соответствие 23 символам и запишет результат в скрытый реквизит. После этого печать сразу заработает.

Вариант Б. Использование обработки «Групповое изменение реквизитов»

Когда проблемных номеров ГТД десятки или сотни, ручной метод становится неэффективным. Воспользуемся стандартным механизмом группового изменения, однако здесь есть важный нюанс — скрытые реквизиты по умолчанию недоступны для редактирования пользователю.

Разберем детально процесс настройки групповой обработки:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных и откроем ссылку Групповое изменение реквизитов.
  2. В поле «Изменять» выберем объект: Номера таможенных деклараций.
  3. Нажмем на ссылку «Все элементы» рядом, чтобы настроить отбор. Укажем условие: Регистрационный номер — Не заполнено, чтобы случайно не перезаписать корректные элементы.
  4. Нажмем кнопку Дополнительные параметры (в правом верхнем углу формы или внизу, в зависимости от версии интерфейса).
  5. В открывшемся окне обязательно установим флажок Показывать служебные реквизиты и переключим режим на Режим разработчика. Без этого действия мы просто не увидим поле регистрационного номера. Нажмем «ОК».
  6. В списке доступных для изменения реквизитов найдем строку Регистрационный номер.
  7. В колонке «Новое значение» нам необходимо прописать те самые 23 знака номера декларации.

Внимание! Метод группового изменения напрямую записывает строковое значение «как есть», без запуска алгоритмов очистки и валидации. Этот способ отлично подойдет, если у вас все незаполненные ГТД имеют правильную структуру без лишних суффиксов товара на конце. Если же номера «грязные», лучше прибегнуть к программному методу.

Вариант В. Программный перезапуск валидации (для программистов и администраторов)

Если у вас тысячи элементов с пустыми регистрационными номерами, а структура номеров разнородная, лучшим решением будет запуск программной перезаписи всех объектов справочника. При программном вызове метода Записать() система принудительно выполнит штатные процедуры очистки и валидации для каждого элемента.

Для этого можно запустить внешнюю обработку «Групповое изменение реквизитов» с включенным флажком «Выполнять в транзакции» и «Записывать объекты принудительно», либо выполнить в консоли кода (или через внешнюю обработку) простой скрипт на встроенном языке 1С:


Выборка = Справочники.НомераТаможенныхДеклараций.Выбрать();
Пока Выборка.Следующий() Цикл
    ОбъектГТД = Выборка.ПолучитьОбъект();
    // Проверяем, пуст ли скрытый регистрационный номер
    Если НЕ ЗначениеЗаполнено(ОбъектГТД.РегистрационныйНомер) Тогда
        Попытка
            // Метод Записать() автоматически вызовет предопределенную процедуру ПередЗаписью
            // и заполнит скрытое поле на основе наименования (кода) ГТД
            ОбъектГТД.Записать();
            Сообщить("Успешно восстановлен рег. номер для: " + ОбъектГТД.Код);
        Исключение
            Сообщить("Не удалось записать ГТД " + ОбъектГТД.Код + ". Ошибка: " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

Этот простой код бережно обойдет весь справочник, найдет пустые значения, исправит их силами самой платформы и выведет подробный лог работы в окно сообщений.

Особый нюанс: Импорт из стран ЕАЭС

В завершение анализа проблемы важно упомянуть важный нюанс, связанный с торговлей внутри Евразийского экономического союза (ЕАЭС). Если вы импортируете товары из Беларуси, Казахстана, Армении или Киргизии, формат номеров деклараций (заявлений о ввозе товаров и уплате косвенных налогов) будет существенно отличаться от стандартного российского 23-значного шаблона.

Встроенная в 1С проверка при попытке стандартной записи может посчитать такой номер «некорректным» по структуре и очистить поле РегистрационныйНомер, оставив его пустым. Для таких товаров вам придется заполнять регистрационный номер вручную, используя именно групповое изменение реквизитов в режиме разработчика (Вариант Б), поскольку этот метод позволяет записать неформатное значение в обход жестких проверок валидатора системы.

← На главную