Автоматизація алкогольного обліку: інтеграція 1С-Бітрікс з ЄДАІС

Інтеграція 1С-Бітрікс з ЄДАІС: налаштування, кейси та терміни Помилка списання алкоголю в ЄДАІС — одна з частих причин блокування ліцензії інтернет-магазину. Кожен не зафіксований продаж загрожує штрафом до $2.7k–3.9k. Ми спеціалізуємося на інтеграції 1С-Бітрікс з ЄДАІС під ключ: автоматизуємо п
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Автоматизація алкогольного обліку: інтеграція 1С-Бітрікс з ЄДАІС
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    752
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    873
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    794
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1154

Інтеграція 1С-Бітрікс з ЄДАІС: налаштування, кейси та терміни

Помилка списання алкоголю в ЄДАІС — одна з частих причин блокування ліцензії інтернет-магазину. Кожен не зафіксований продаж загрожує штрафом до $2.7k–3.9k. Ми спеціалізуємося на інтеграції 1С-Бітрікс з ЄДАІС під ключ: автоматизуємо передачу даних про продажі, повернення та залишки. Гарантуємо фіксацію кожної операції — виключаємо штрафи. За час роботи виконали понад 50 проєктів для алкогольних інтернет-магазинів. Ми — команда інженерів із 5-річним досвідом інтеграції ЄДАІС.

ЄДАІС — федеральна система обліку алкоголю. Інтернет-магазин, що продає алкоголь дистанційно, зобов'язаний фіксувати кожен продаж. 1С-Бітрікс має взаємодіяти з ЄДАІС через УТМ (універсальний транспортний модуль) — локальне ПЗ, яке шифрує та підписує звернення до ЄДАІС.

Ручне списання алкоголю займає до 2 годин на день і загрожує помилками. Автоматизація окупається за 1-2 місяці за рахунок виключення штрафів та економії часу. Вартість інтеграції починається від $1.4k–1.9k. та окупається за 1-2 місяці.

Що таке УТМ і навіщо він потрібен?

УТМ — універсальний транспортний модуль, розроблений Росалкогольрегулюванням. Це локальний Windows- або Linux-додаток, який приймає XML-запити від сайту, шифрує їх за допомогою криптоключа JaCarta та відправляє в ЄДАІС. Відповіді УТМ отримує асинхронно та поміщає в чергу для завантаження. Без УТМ пряма інтеграція з ЄДАІС неможлива.

Архітектура інтеграції

ЄДАІС не надає хмарний REST API. Взаємодія тільки через УТМ, встановлений на локальному сервері. УТМ приймає XML-запити на порту 8080 та віддає відповіді через чергу.

1С-Бітрікс → XML-запит → УТМ (localhost:8080) ↓ ЄДАІС (Росалкогольрегулювання) ↓ УТМ формує відповідь → Бітрікс polling черги відповідей 

Схема асинхронна: запит відправлено — відповідь з'являється через секунди або хвилини.

Структура XML для запиту списання

Приклад XML-документа списання
<!-- TTNQuery — запит на списання при реалізації --> <?xml version="1.0" encoding="utf-8"?> <ns:Documents xmlns:ns="urn:TNInformF2Reg:Documents" xmlns:oref="urn:TNInformF2:OrgInfo" version="2"> <ns:Document> <ns:TTNInformF2Reg> <ns:Header> <ns:IsSSMark>0</ns:IsSSMark> </ns:Header> <ns:Content> <ns:Position> <ns:Identity>1</ns:Identity> <ns:ProductCode>0366700000002375890</ns:ProductCode> <ns:Quantity>1.000</ns:Quantity> <ns:InformF1RegId>TEST-TTN123456</ns:InformF1RegId> <ns:InformF2RegId>TEST-F2-123456</ns:InformF2RegId> </ns:Position> </ns:Content> </ns:TTNInformF2Reg> </ns:Document> </ns:Documents> 

PHP-клієнт для взаємодії з УТМ

Код клієнта
class EgaisUtmClient { private string $utmUrl; private string $orgRarId; // ідентифікатор організації в ЄДАІС public function __construct(string $utmUrl, string $orgRarId) { $this->utmUrl = $utmUrl; $this->orgRarId = $orgRarId; } public function sendDocument(string $xmlDocument): string { $response = file_get_contents( $this->utmUrl . '/opt/in/TTNInformF2Reg', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-Type: application/xml', 'content' => $xmlDocument, ] ]) ); $replyXml = simplexml_load_string($response); return (string)$replyXml->ReplyId; } public function getReplyQueue(): array { $response = file_get_contents($this->utmUrl . '/opt/out'); return $this->parseQueue($response); } public function getReply(string $replyId): ?array { $response = file_get_contents( $this->utmUrl . "/opt/out/TTNInformF2Reg/{$replyId}" ); if (!$response) return null; $xml = simplexml_load_string($response); return [ 'result' => (string)$xml->Result->Conclusion, 'comment' => (string)$xml->Result->ConclusionDate, 'egais_id' => (string)$xml->Result->AccisesHeader->EGAISQuntId, ]; } } 

Обробка замовлень у Бітрікс

Обробник події зміни статусу
// Обробник події зміни статусу замовлення \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleStatusOrderChange', function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $statusId = $event->getParameter('VALUE'); if ($statusId !== 'shipped') return; // відправка тільки при статусі «Відвантажено» $egaisItems = $this->getAlcoholItemsFromOrder($order); if (empty($egaisItems)) return; $client = new EgaisUtmClient(EGAIS_UTM_URL, EGAIS_ORG_RAR_ID); $xml = $this->buildActWriteOff($order, $egaisItems); $replyId = $client->sendDocument($xml); // Зберігаємо replyId для відстеження EgaisDocumentTable::add([ 'ORDER_ID' => $order->getId(), 'REPLY_ID' => $replyId, 'STATUS' => 'pending', 'SENT_AT' => new \Bitrix\Main\Type\DateTime(), ]); } ); 

Як уникнути помилок при обміні з ЄДАІС? Кейс з нашої практики

З нашої практики: один із наших клієнтів — онлайн-магазин вино-горілчаних виробів, ~300 замовлень на день. Щоденне завдання — списання кожної реалізованої одиниці алкоголю до ЄДАІС. При помилці списання замовлення не можна вважати закритим з точки зору закону.

Проблеми проєкту:

  1. УТМ встановлено на офісному Windows-комп'ютері, сайт — на хостингу. Прямого мережевого доступу немає.

  2. Іноді УТМ не відповідав (перезавантаження, оновлення), документи губилися.

  3. ЄДАІС повертає AlcoCode — унікальний код кожної пляшки (для маркованого алкоголю), потрібно зберігати відповідність AlcoCode ↔ позиція замовлення.

Рішення:

  1. VPN-тунель між хостингом та офісним сервером + Middleware на офісному сервері, який приймає запити з Бітрікс та передає їх в УТМ. Middleware на Node.js, працює як Windows-служба.

  2. Черга завдань на стороні Бітрікс: непідтверджені документи повторно відправляються через 10 хвилин (до 5 спроб). При вичерпанні — повідомлення адміністратору.

  3. При отриманні підтвердження від ЄДАІС — зберігаємо EGAISQuntId в таблиці local_egais_alcocodes, зв'язок з позицією замовлення Бітрікс.

Показник До інтеграції Після
Ручні операції в ЄДАІС ~2 год/день 0 (тільки моніторинг)
Затримка списання від факту відвантаження 1–3 год < 15 хв
Пропущені списання 3–5%/міс < 0.1%

Автоматична інтеграція в 10 разів швидша за ручне введення даних та виключає штрафи за кожне не зафіксоване списання. Вона також у 3 рази надійніша за альтернативні напівручні рішення.

Повернення в ЄДАІС

При поверненні алкоголю — зворотна операція: поставка на баланс через документ WayBillAct. Тригер — подія повернення в Бітрікс (OnSaleRefund).

Залишки ЄДАІС в Бітрікс

Для синхронізації залишків на складі з даними ЄДАІС — періодичний запит до УТМ (RestBal) та порівняння з залишками в каталозі Бітрікс. Розбіжності — в лог для ревізії.

Що входить в роботу

  • Налаштування УТМ, отримання ключів ЄДАІС (через Росалкогольрегулювання)
  • Мережева зв'язка: VPN або Middleware-сервіс
  • PHP-клієнт для УТМ: відправка документів, polling відповідей
  • Генерація XML для актів списання, повернень
  • Обробники подій Бітрікс: відвантаження, повернення
  • Черга з ретраями, моніторинг помилок
  • Таблиця історії ЄДАІС-документів в Бітрікс
  • Навчання адміністратора, 3 місяці підтримки

Порівняння ручного та автоматичного підходу:

Критерій Ручне введення Автоматична інтеграція
Час на одну операцію 10–15 хвилин < 1 секунди
Ризик помилки високий ≈ 0%
Витрати часу на день до 2 годин 5 хвилин (контроль)

Типові помилки при налаштуванні:

  • Відсутність постійного мережевого каналу до УТМ — документи не доходять.
  • Неправильні сертифікати — ЄДАІС відхиляє запити.
  • Пропуск статусів замовлення — списання не тригериться.
  • Немає обробки черги відповідей — підтвердження губляться.

Чому варто довірити інтеграцію нашим інженерам?

Сертифіковані спеціалісти з багаторічним досвідом. Ми — команда інженерів із 5-річним досвідом інтеграції ЄДАІС, виконали понад 50 проєктів для алкогольних інтернет-магазинів. Надаємо гарантію на всі роботи та навчання вашої команди. Замовте аудит вашої інфраструктури — оцінимо проєкт і назвемо терміни.

Терміни: за наявності налаштованого УТМ та мережевого доступу — 4–6 тижнів. При необхідності налаштування інфраструктури — 8–12 тижнів. Вартість інтеграції починається від $1.4k–1.9k. Отримайте консультацію інженера вже сьогодні.