При оприходовании алкогольной продукции или обработке входящих документов часто возникает необходимость узнать полные сведения о товаре и его производителе. Если в учетной системе отсутствует карточка продукции, получить всю необходимую информацию из ЕГАИС можно с помощью УТМ (Универсального транспортного модуля), имея на руках 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/) и содержать будет подробный справочный блок по запрашиваемой алкогольной продукции.
Если под рукой нет 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 через УТМ.
Проанализируем ограничения, с которыми можно столкнуться при получении данных о товаре:
QueryBarcode или запросы данных по справке Б (QueryRestBCode).Аналогичным образом через УТМ можно запрашивать справочник организаций и производителей ЕГАИС. Для этого используется запрос по FSRAR_ID организации или по её ИНН/КПП. Данный запрос вернет полную информацию об организации: юридический и фактический адрес, статус лицензии и регистрационные данные.
В типовых конфигурациях 1С (например, 1С:Управление торговлей, 1С:Розница, 1С:ERP) встроен механизм обмена с ЕГАИС. В этих программах предусмотрен документ Запрос алкогольной продукции ЕГАИС. При отправке запроса по алкокоду программа асинхронно получает ответ ReplyAP и автоматически создаёт или обновляет карточку в справочнике Классификатор алкогольной продукции ЕГАИС, что позволяет сразу сопоставить её с номенклатурой 1С и оформить приходные документы.