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

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

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

Особенности кодирования AlcCode и типичная ошибка при запросе

Проанализируем ситуацию: код алкогольной продукции извлекается из штрихкода марки (например, из старой марки формата PDF417 длиной 68 символов). В коде PDF417 идентификатор продукции закодирован в первых позициях в 36-ричной системе счисления (Base36). При его переводе в десятичное число формируется последовательность цифр.

Частая ошибка заключается в том, что разработчики дополняют полученный код ведущими нулями до фиксированной длины (например, до 19 символов). В классификаторе ЕГАИС значение AlcCode хранится как числовая строка без лидирующих нулей. Если отправить запрос с нулями слева, сервер ЕГАИС вернет пустой ответ без данных о номенклатуре.

Для успешного получения классификатора обязательно удаляйте ведущие нули перед подстановкой значения в параметр КОД.

Формирование XML-запроса через схему QueryAP

Рассмотрим структуру стандартного запроса к классификатору алкогольной продукции (QueryAP). Для поиска номенклатуры по коду ЕГАИС в секции параметров указывается блок qp:Parameter с именем КОД:


<ns:Documents xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" 
              xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" 
              xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" 
              xmlns:qp="http://fsrar.ru/WEGAIS/QueryParameters" 
              xmlns:xs="http://www.w3.org/2001/XMLSchema" 
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns:Owner>
        <ns:FSRAR_ID>ВАШ_FSRAR_ID</ns:FSRAR_ID>
    </ns:Owner>
    <ns:Document>
        <ns:QueryAP>
            <qp:Parameters>
                <qp:Parameter>
                    <qp:Name>КОД</qp:Name>
                    <qp:Value>82601492477521007</qp:Value>
                </qp:Parameter>
            </qp:Parameters>
        </ns:QueryAP>
    </ns:Document>
</ns:Documents>

Обратите внимание: в поле ns:FSRAR_ID необходимо указать идентификатор вашей организации в ЕГАИС, прописанный в ключе доступа УТМ.

Использование схемы QueryAP_v2

В более актуальных версиях форматов обмена применяется схема QueryAP_v2. Она возвращает расширенную структуру сведений об алкогольной продукции. Посмотрим на пример оформления такого запроса:


<?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>ВАШ_FSRAR_ID</ns:FSRAR_ID>
    </ns:Owner>
    <ns:Document>
        <ns:QueryAP_v2>
            <qp:Parameters>
                <qp:Parameter>
                    <qp:Name>КОД</qp:Name>
                    <qp:Value>16754000001188592</qp:Value>
                </qp:Parameter>
            </qp:Parameters>
        </ns:QueryAP_v2>
    </ns:Document>
</ns:Documents>

Регламент взаимодействия с ЕГАИС через УТМ

Разберем по шагам порядок работы с запросами из 1С:

  1. Отправка запроса: сформированный XML-документ отправляется POST-запросом на локальный адрес УТМ (обычно http://localhost:8080/opt/in/QueryAP или /opt/in/QueryAP_v2). Для этого в платформе 1С используются встроенные объекты HTTPСоединение и HTTPЗапрос.
  2. Асинхронная обработка: сервер ЕГАИС обрабатывает документ в очереди. Ответ формируется в течение некоторого времени (от пары секунд до нескольких минут).
  3. Получение ответа: периодическим GET-запросом опрашивается входящая очередь УТМ (http://localhost:8080/opt/out). Полученный ответ ReplyAP парсится и загружается в информационную базу.
  4. Очистка очереди: после успешной обработки входящего XML-документа из УТМ его необходимо удалить, отправив HTTP-запрос методом DELETE.

Важные ограничения и рекомендации

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

1. Прямые запросы без УТМ: Официального открытого API для прямого получения данных о продукции без УТМ не существует. Веб-интерфейсы личного кабинета и сервисы проверки марок защищены графической капчей и авторизацией по сертификатам. Попытки программного парсинга веб-форм нестабильны и могут приводить к блокировке по IP.

2. Ограничения частоты запросов: В ЕГАИС действуют таймауты на повторный запрос одной и той же номенклатуры (как правило, не чаще одного раза в 10–15 минут). При слишком частых обращениях по одному и тому же AlcCode модуль вернет квитанцию с ошибкой превышения частоты.

3. Использование встроенных объектов 1С: Для выполнения HTTP-запросов к УТМ рекомендуется применять стандартные средства платформы HTTPСоединение вместо устаревших COM-объектов Windows (таких как WinHttp.WinHttpRequest.5.1). Это гарантирует кроссплатформенность и стабильную работу кластера серверов 1С как под управлением Windows, так и на Linux.

← На главную