Как по номеру ГТД узнать страну происхождения товара в 1С

Программист Бухгалтерский учет Торговля и дистрибуция
← На главную

В процессе автоматизации импортных операций и интеграции систем учета (например, при загрузке накладных от поставщиков) перед разработчиками и аналитиками часто возникает задача: автоматически заполнять справочник ГТД в 1С. При этом одной из подзадач является автоматическое определение страны происхождения импортного товара на основе номера грузовой таможенной декларации (ГТД).

В этой статье мы подробно разберем, почему попытка программно «вычислить» страну происхождения из самого номера декларации является методологической ошибкой, детально проанализируем структуру таможенного номера и выясним, как правильно реализовать данный механизм в решениях на платформе 1С:Предприятие.

Терминология: ГТД или ДТ?

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

Почему по номеру декларации невозможно узнать страну происхождения?

Давайте проанализируем структуру регистрационного номера декларации на товары. Согласно действующим правилам таможенного оформления, номер ДТ строго регламентирован и состоит из трех разделов, разделенных косой чертой (слэшем):

ХХХХХХХХ / ДДММГГ / ННННННН

Рассмотрим детально каждую из этих частей:

  1. Первая часть (8 цифр): Это код таможенного органа (поста), который принял и зарегистрировал декларацию. По первым двум цифрам этого блока можно косвенно определить лишь страну, в которой происходило таможенное оформление (например, коды российских таможенных постов начинаются на «10», белорусских — на «112», казахстанских — на «104» и так далее). Однако это говорит лишь о месте растаможки, но никак не о стране происхождения самого груза.
  2. Вторая часть (6 цифр): Дата регистрации декларации в формате «день, месяц, две последние цифры года» (ДДММГГ).
  3. Третья часть (7 цифр): Порядковый номер декларации, присваиваемый таможенным постом в хронологическом порядке с начала текущего календарного года.

Как мы видим, в самом регистрационном номере декларации страна происхождения товара никак не зашифрована. Там содержатся только служебные данные таможенных органов.

Где в декларации указывается страна происхождения?

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

Информация о происхождении распределяется по следующим графам ДТ:

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

Ограничения официальных сервисов ФТС

Федеральная таможенная служба (ФТС РФ) предоставляет открытый сервис для проверки деклараций на своем официальном портале. Однако данный инструмент предназначен исключительно для подтверждения факта легального ввоза:

Правильный подход к автоматизации задачи в 1С

Согласно Налоговому кодексу РФ (ст. 169), при перепродаже импортного товара на территории РФ налогоплательщик обязан переносить номер декларации и страну происхождения из полученных от своего непосредственного поставщика документов (счетов-фактур или УПД). Получатель товара не должен самостоятельно угадывать, вычислять или искать страну происхождения по базам данных.

В типовых конфигурациях 1С (таких как «1С:Бухгалтерия», «1С:Управление торговлей», «1С:ERP») справочник НомераГТД (или НомераДеклараций) устроен по принципу связки двух ключевых полей: текстового номера декларации и ссылки на классификатор стран мира СтраныМира.

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

Реализация программного создания элементов справочника

При написании обработок загрузки документов (например, из файлов Excel, XML или через ЭДО) программный код должен считывать оба значения — и номер ГТД, и страну происхождения — непосредственно из входящего файла данных поставщика. Попытка записать элемент только по номеру без указания страны приведет к нарушению ведения налогового учета.

Рассмотрим пример правильного создания элемента справочника НомераГТД с предварительным поиском дублей по связке «Номер + Страна происхождения»:


Функция ПолучитьИлиСоздатьНомерГТД(Знач СтрокаНомера, Знач СсылкаСтрана) Экспорт
    
    // Проверяем заполнение входных параметров
    Если ПустаяСтрока(СтрокаНомера) Или Не ЗначениеЗаполнено(СсылкаСтрана) Тогда
        Возврат Справочники.НомераГТД.ПустаяСсылка();
    КонецЕсли;
    
    // Очищаем номер от возможных лишних пробелов
    СтрокаНомера = СокрЛП(СтрокаНомера);
    
    // Выполняем поиск существующей связки "Номер + Страна" с помощью запроса
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	НомераГТД.Ссылка КАК Ссылка
        |ИЗ
        |	Справочник.НомераГТД КАК НомераГТД
        |ГДЕ
        |	НомераГТД.Код = &НомерГТД
        |	И НомераГТД.СтранаПроисхождения = &СтранаПроисхождения";
        
    Запрос.УстановитьПараметр("НомерГТД", СтрокаНомера);
    Запрос.УстановитьПараметр("СтранаПроисхождения", СсылкаСтрана);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Если Не РезультатЗапроса.Пустой() Тогда
        // Элемент с такой комбинацией уже существует, возвращаем его
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.Ссылка;
    Иначе
        // Комбинация уникальна - создаем новый элемент справочника
        НовыйЭлемент = Справочники.НомераГТД.СоздатьЭлемент();
        НовыйЭлемент.Код = СтрокаНомера;
        НовыйЭлемент.СтранаПроисхождения = СсылкаСтрана;
        
        Попытка
            НовыйЭлемент.Записать();
            Возврат НовыйЭлемент.Ссылка;
        Исключение
            ЗаписьЖурналаРегистрации("ОшибкиЗагрузкиДанных",
                УровеньЖурналаРегистрации.Ошибка,
                НовыйЭлемент.Метаданные(),,
                ОписаниеОшибки());
            Возврат Справочники.НомераГТД.ПустаяСсылка();
        КонецПопытки;
    КонецЕсли;
    
КонецФункции

Проверка корректности формата номера декларации

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

Ниже приведен пример функции валидации формата номера декларации в среде 1С:


Функция НомерГТДСоответствуетРегламенту(Знач ТестируемыйНомер) Экспорт
    
    // Очищаем от концевых пробелов
    ТестируемыйНомер = СокрЛП(ТестируемыйНомер);
    
    // Создаем объект для работы с регулярными выражениями
    РегВыражение = Новый COMОбъект("VBScript.RegExp");
    РегВыражение.IgnoreCase = Истина;
    РегВыражение.Global = Ложь;
    
    // Шаблон проверяет формат: 8 цифр / 6 цифр / 7 цифр
    // Допускаются дополнительные символы "/" для РНПТ (прослеживаемость), 
    // но классический номер ДТ состоит строго из трех сегментов.
    РегВыражение.Pattern = "^\d{8}/\d{6}/\d{7}$";
    
    Возврат РегВыражение.Test(ТестируемыйНомер);
    
КонецФункции

Подводя итог, отметим: если перед вами стоит задача автоматического сопоставления номеров ГТД со странами происхождения, единственным верным решением будет корректная настройка каналов получения данных (через системы электронного документооборота ЭДО или структурированные файлы обмена XML/JSON), в которых страна и номер передаются как два независимых, жестко связанных реквизита товарной позиции.

← На главную