Как получить информацию о товаре и производителе в ЕГАИС по алкокоду или акцизной марке

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

При оприходовании алкогольной продукции или обработке входящих документов часто возникает необходимость узнать полные сведения о товаре и его производителе. Если в учетной системе отсутствует карточка продукции, получить всю необходимую информацию из ЕГАИС можно с помощью УТМ (Универсального транспортного модуля), имея на руках 19-значный код товара (алкокод) или двумерный штрихкод акцизной марки. Разберем по шагам, как сформировать соответствующие запросы и извлечь нужные данные средствами 1С.

Запрос сведений о продукции по алкокоду через УТМ

Для того чтобы получить из справочника ЕГАИС полные данные по конкретной позиции (включая наименование, объем тары, крепость, код вида продукции, а также ИНН, КПП и FSRAR_ID производителя или импортера), необходимо отправить в УТМ документ запроса типа QueryAP_v2 (или более актуальные версии QueryAP_v3 / QueryAP_v4).

Рассмотрим структуру XML-файла запроса:


<?xml version="1.0" encoding="UTF-8"?>
<ns:Documents Version="1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"
    xmlns:qp="http://fsrar.ru/WEGAIS/QueryParameters">
    <ns:Owner>
        <ns:FSRAR_ID>030000194005</ns:FSRAR_ID>
    </ns:Owner>
    <ns:Document>
        <ns:QueryAP_v2>
            <qp:Parameters>
                <qp:Parameter>
                    <qp:Name>КОД</qp:Name>
                    <qp:Value>0016754000001188592</qp:Value>
                </qp:Parameter>
            </qp:Parameters>
        </ns:QueryAP_v2>
    </ns:Document>
</ns:Documents>

В блоке ns:Owner указывается ваш FSRAR_ID, а в параметре КОД — 19-значный алкокод интересующего товара. Отправить этот XML-файл в локальный УТМ можно с помощью утилиты cURL или средствами программы 1С:

curl -F "xml_file=@QueryAP_v2.xml" http://localhost:8080/opt/in/QueryAP_v2

Запрос отправляется асинхронно. УТМ вернет идентификатор документа (ReplyId), после чего сформирует запрос к серверам ЕГАИС. Ответный документ вида ReplyAP поступит во входящую очередь УТМ (/opt/out/) и содержать будет подробный справочный блок по запрашиваемой алкогольной продукции.

Извлечение алкокода из акцизной марки PDF417 средствами 1С

Если под рукой нет 19-значного кода товара, но есть сканер штрихкодов и старая акцизная марка (PDF417, состоящая из 68 символов), то 19-значный алкокод можно высчитать математически. В этих марках код товара зашифрован с 8 по 19 символ в 36-ричной системе счисления.

Рассмотрим готовую функцию на языке 1С, которая переводит зашифрованную последовательность из 36-ричной системы в 10-ричный 19-значный алкокод ЕГАИС:


Функция ПеревестиРаскладку(Знач Параметр) 
    Параметр = ВРег(Параметр);
    СтрРус = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
    СтрЛат = "QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,.";
    Результат = "";
    Для СимволСтроки = 1 По СтрДлина(Параметр) Цикл
        Позиция = Найти(СтрРус, Сред(Параметр, СимволСтроки, 1));
        Если Позиция > 0 Тогда
            Результат = Результат + Сред(СтрЛат, Позиция, 1);
        Иначе
            Результат = Результат + Сред(Параметр, СимволСтроки, 1);
        КонецЕсли;
    КонецЦикла;
    Возврат Результат;
КонецФункции

Функция ПолучитьАлкКодИзПДФ417(Знач Марка = "")
    Марка = ВРег(ПеревестиРаскладку(Марка));
    Если СтрДлина(Марка) <> 68 Тогда
        Возврат Неопределено;
    Иначе
        Марка = Сред(Марка, 8, 12);
        ЧислоДесятичное = 0;
        Для Х = 1 По 12 Цикл
            Множитель = 1;
            Для У = 1 По 12 - Х Цикл
                Множитель = Множитель * 36;
            КонецЦикла;
            ЧислоДесятичное = ЧислоДесятичное + (Найти("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", Сред(Марка, Х, 1)) - 1) * Множитель;
        КонецЦикла;
        Возврат Формат(ЧислоДесятичное, "ЧЦ=19; ЧВН=; ЧГ=0"); 
    КонецЕсли;
КонецФункции

Полученный 19-значный код можно использовать для отправки вышеописанного запроса QueryAP_v2 через УТМ.

Особенности работы с новыми марками DataMatrix и кодами EAN13

Проанализируем ограничения, с которыми можно столкнуться при получении данных о товаре:

  1. Марки нового образца (DataMatrix 150 символов): В новых цифровых марках алкокод в явном виде не содержится, так как структура марки включает криптографическую подпись. Для получения информации по новым маркам в УТМ используются запросы проверки штрихкодов QueryBarcode или запросы данных по справке Б (QueryRestBCode).
  2. Штрихкоды EAN13: По EAN13 получить алкокод крепкого алкоголя нельзя. В ЕГАИС поле EAN13 является обязательным только для пива и слабоалкогольной продукции. Для крепких напитков штрихкод EAN13 не является уникальным идентификатором в системе ЕГАИС.

Запрос информации о контрагентах и обработка данных в 1С

Аналогичным образом через УТМ можно запрашивать справочник организаций и производителей ЕГАИС. Для этого используется запрос по FSRAR_ID организации или по её ИНН/КПП. Данный запрос вернет полную информацию об организации: юридический и фактический адрес, статус лицензии и регистрационные данные.

В типовых конфигурациях 1С (например, 1С:Управление торговлей, 1С:Розница, 1С:ERP) встроен механизм обмена с ЕГАИС. В этих программах предусмотрен документ Запрос алкогольной продукции ЕГАИС. При отправке запроса по алкокоду программа асинхронно получает ответ ReplyAP и автоматически создаёт или обновляет карточку в справочнике Классификатор алкогольной продукции ЕГАИС, что позволяет сразу сопоставить её с номенклатурой 1С и оформить приходные документы.

← На главную