Каждый розничный продавец алкогольной продукции рано или поздно сталкивается с загадочным поведением ЕГАИС. Представим ситуацию: вы продали две бутылки шампанского через кассу 1С:Розница. Проверка по чеку на официальном портале подтверждает, что обе бутылки успешно ушли и зафиксированы системой. Однако при очередном запросе остатков во втором регистре ЕГАИС вы видите, что списалась только одна бутылка. Спустя пару дней остатки внезапно приходят в норму сами собой без каких-либо дополнительных корректировок.
Давайте подробно разберем, почему возникает этот сбой, как работает механизм фиксации продаж ЕГАИС и что нужно делать в подобных ситуациях, чтобы не допустить ошибок ведения учета.
Главная причина, по которой чеки уже отображаются на портале проверки чеков, но остатки при запросе возвращаются некорректными (например, 15 вместо реальных 14 штук), кроется в архитектуре серверов ЕГАИС. Процесс обработки транзакции делится на два независимых этапа:
УТМ (Универсальный транспортный модуль) на сервера ЕГАИС. Система проверяет марку на легальность, подписывает чек и возвращает слип с QR-кодом. Чек мгновенно регистрируется в системе и становится доступен для проверки покупателем.В этот переходный период возникает временное расхождение данных: чек проведен, но остаток по алкокоду на балансе предприятия еще не уменьшился.
Если вы обнаружили расхождение, в первую очередь необходимо исключить банальный человеческий фактор и пересорт товара. Часто похожая продукция имеет разные алкокоды (коды алкогольной продукции — АП). Рассмотрим, как провести детальную проверку:
Если в вашей базе числится минус по аналогичной продукции, но с другим кодом АП, значит, кассир продал товар с другой партии. В таком случае требуется провести внутреннюю инвентаризацию и выровнять остатки документом пересортицы.
Еще один важный сценарий — работа УТМ в автономном режиме. Если на торговой точке временно пропадает интернет, касса продолжает функционировать. УТМ локально подписывает чеки, выдает QR-коды для покупателей, но физически не может отправить их на сервера ФС РАР. Накопленные документы уходят пакетом сразу после восстановления связи. Пока чеки находятся в очереди отправки локального УТМ, остатки в облаке ЕГАИС будут оставаться прежними.
Иногда проблема кроется не в серверах ФС РАР, а в логике работы конфигурации 1С:Розница (особенно в старых релизах ветки 2.2). Программа может кэшировать ответы на запросы остатков.
Когда вы отправляете запрос остатков, ЕГАИС возвращает xml-файл ответа ReplyRests_v2. Если в программе произошел сбой сопоставления идентификатора входящего запроса с исходным исходящим документом, 1С может проигнорировать новый ответ и продолжить показывать старые, за кэшированные данные в интерфейсе пользователя.
Ниже приведен пример программного кода, описывающий логику отправки запроса остатков в ЕГАИС через 1С:
// Пример формирования исходящего запроса остатков по Регистру №2
Процедура ЗапроситьОстаткиРегистра2(ТранспортныйМодуль, ОрганизацияЕГАИС) Экспорт
ЗапросОстатков = Документы.ЗапросОстатковЕГАИС.СоздатьДокумент();
ЗапросОстатков.Дата = ТекущаяДата();
ЗапросОстатков.ОрганизацияЕГАИС = ОрганизацияЕГАИС;
ЗапросОстатков.ТранспортныйМодуль = ТранспортныйМодуль;
ЗапросОстатков.Регистр = Перечисления.РегистрыЕГАИС.Регистр2;
Попытка
ЗапросОстатков.Записать(РежимЗаписиДокумента.Проведение);
// Вызов функции отправки xml-пакета в УТМ
ИнтеграцияЕГАИСУТМ.ОтправитьЗапросВУТМ(ЗапросОстатков);
Сообщить("Запрос остатков успешно отправлен в УТМ.");
Исключение
ВызватьИсключение "Ошибка отправки запроса остатков: " + ОписаниеОшибки();
КонецПопытки;
КонецПроцедуры
Если вы обнаружили нестыковку остатков в вашей учетной системе и ЕГАИС, выполните следующие шаги:
http://localhost:8080). Убедитесь, что в очереди нет неотправленных чеков и сообщений.Важное правило: Никогда не делайте поспешных актов списания "вслепую", если остатки не сходятся сразу после продаж. Это может привести к задваиванию списаний, когда сервер ЕГАИС наконец обработает накопившуюся очередь чеков, и ваши остатки уйдут в необоснованный минус.