С введением новых требований системы «Честный ЗНАК» к розничной продаже разливного пива у многих разработчиков и владельцев бизнеса возникли серьезные вопросы. Требования обязывают передавать данные не только о факте вскрытия (подключения) кеги, но и фиксировать объем наливаемого пива с привязкой к конкретному коду маркировки (КМ) в каждом кассовом чеке. Проанализируем ситуацию и разберем по шагам, как выстроить логику работы в программах 1С, как обходить подводные камни с «переливом» и как взаимодействовать с API Честного ЗНАКа.
Первое, с чем мы сталкиваемся — это необходимость сообщить системе маркировки о том, что кега была вскрыта и поставлена на кран. По правилам, уведомление об этом событии должно быть отправлено не позднее следующего рабочего дня.
Рассмотрим, как это выглядит технически. Если в типовой конфигурации 1С это действие еще не автоматизировано под ваши нужды, мы можем реализовать прямую отправку данных в Честный ЗНАК через API. API принимает данные исключительно в формате JSON. Посмотрим на пример структуры запроса, который необходимо сформировать и отправить:
{
"participantInn": "ИНН_Организации",
"participantKpp": "КПП_Организации",
"codes": [
{
"cis": "0104605622009347215T8lFch",
"connectDate": "2023-11-09",
"expirationDate": "2023-11-23"
}
]
}
Важное замечание: Если учет ведется для Индивидуального Предпринимателя (ИП), то вместо параметра participantKpp необходимо передавать fiasId торговой точки.
Организовать бизнес-процесс в магазине можно следующим образом: при замене кеги в холодильной комнате сотрудник сканирует Data Matrix код с новой кеги (например, с помощью беспроводного сканера). В 1С формируется внутренний документ, который фиксирует дату подключения и срок годности после вскрытия. Далее ответственный администратор, у которого есть доступ к электронной подписи (УКЭП), подписывает пул таких документов и отправляет их в ЧЗ.
Для отправки данных через API нам потребуется авторизация. Выясним специфику работы с ключами и токенами Честного ЗНАКа:
Рассмотрим самую болезненную проблему розницы: что делать, если кега заканчивается прямо в момент налива? Например, покупатель берет 3 литра пива, но в подключенной кеге остался только 1 литр. Оставшиеся 2 литра бармен доливает из новой кеги.
Правила системы жестко требуют указывать объем проданного пива в привязке к конкретной марке. Следовательно, мы не можем пробить одну позицию «Пиво разливное — 3 литра» с одним кодом маркировки. Кассовое ПО должно уметь разбивать продажу на две строки. В кассовом чеке это будет выглядеть так:
Как это реализовать программно: При добавлении разливного пива в чек, программа должна контролировать остаток объема по привязанному к крану коду маркировки. Если требуемый объем превышает остаток, 1С должна предложить пользователю «добить» строку остатком старой кеги и создать новую строку товаров, запросив сканирование кода (или выбор с крана) от новой подключенной кеги.
На практике объем пива в кеге часто не совпадает с заявленным. В 30-литровой кеге может оказаться 31 литр (так называемый «перелив», заложенный заводом на компенсацию пены). Как система относится к попытке продать 31 литр из 30-литровой тары?
Проанализируем механику работы Честного ЗНАКа. В коде маркировки кеги (в самом Data Matrix) объем обычно не зашит (параметр 335x является необязательным и редко используется производителями). Однако объем жестко зафиксирован в самой системе Честный ЗНАК. Как только суммарный объем переданных кассовых чеков достигает заявленного объема кеги (ровно 30 литров), код маркировки автоматически выводится из оборота.
Продать оставшийся физический излишек легально через кассу будет невозможно. Кассовая программа выдаст ошибку проверки марки. Излишки пива на дне кеги, если они остаются, бизнесу придется списывать. Программистам 1С при разработке РМК следует добавить жесткий запрет на пробитие чека, если накопленный объем по выбранной марке превышает номинальный.
С внедрением обязательного разрешительного режима, кассовое ПО обязано при сканировании марки связываться с серверами Честного ЗНАКа в режиме онлайн (используя для этого тот самый статический токен проверки). Система автоматически проверяет:
Если кега не была предварительно «поставлена на кран» электронным документом, или ее объем полностью исчерпан, касса технически заблокирует добавление товара в чек.
Если вы автоматизируете работу бара или ресторана (сегмент HoReCa), обратите внимание на послабления в законодательстве. Если заведение реализует пиво для употребления на месте (в бокалах), указывать код маркировки в каждом кассовом чеке не требуется. Заведение имеет право списывать пиво без привязки к чекам через личный кабинет Честного ЗНАКа (или через документ списания в 1С по API) в течение 3 дней после того, как кега опустеет.
Однако, если пиво продается навынос в закрытой таре (ПЭТ-бутылки), на эту продажу распространяются классические строгие правила розницы: сканирование марки и передача объема в кассовом чеке.