Документация по "Разрешительному режиму" на кассах:
Для чего все это?:
С 1 апреля 2024 года поэтапно вводится режим проверок на кассах для товаров, подлежащих маркировке.
Алгоритм работы:
• Кассовое программное обеспечение ОБЯЗАНО обращаться к системе маркировки «Честный̆ знак» по каждому коду маркировки.
• Если по данным из системы маркировки продажа товара запрещена, программное обеспечение ОБЯЗАНО уведомлять об этом продавца.
Что будет проверятся:
• Наличие в системе маркировки «Честный знак» информации о коде маркировки на товаре
• Наличие информации о нанесении кода маркировки на товар
• Наличие информации о вводе в оборот кода маркировки на товар (при продаже)
• Наличие информации, что товар с таким кодом маркировки ранее уже был выведен из оборота (при возврате)
• Что не истек срок годности товара
• Что товар не заблокирован по решению органа государственной власти
• Что товар продается по цене Выше минимальной и ниже максимальной розничной цены (пока только табак)
• Если товар из "Серой зоны" (как я понимаю ДНР и ЛНР) то проверка отключается
Если какой-то код маркировки (или несколько) не прошли проверку разрешительного режима -
То кассовое ПО ОБЯЗНО показать для данного товара - по какой причине проверка кода маркировки не прошло.
Алгоритм работы:
• Кассовое программное обеспечение ОБЯЗАНО обращаться к системе маркировки «Честный̆ знак» по каждому коду маркировки.
• Если по данным из системы маркировки продажа товара запрещена, программное обеспечение ОБЯЗАНО уведомлять об этом продавца.
Что будет проверятся:
• Наличие в системе маркировки «Честный знак» информации о коде маркировки на товаре
• Наличие информации о нанесении кода маркировки на товар
• Наличие информации о вводе в оборот кода маркировки на товар (при продаже)
• Наличие информации, что товар с таким кодом маркировки ранее уже был выведен из оборота (при возврате)
• Что не истек срок годности товара
• Что товар не заблокирован по решению органа государственной власти
• Что товар продается по цене Выше минимальной и ниже максимальной розничной цены (пока только табак)
• Если товар из "Серой зоны" (как я понимаю ДНР и ЛНР) то проверка отключается
Если какой-то код маркировки (или несколько) не прошли проверку разрешительного режима -
То кассовое ПО ОБЯЗНО показать для данного товара - по какой причине проверка кода маркировки не прошло.
Ссылки на документацию:
Настройка "Разрешительного режима" на KkmServer у пользователей:
1. Установите версию KkmServer:
• Внимание: Версия только x64!
• Версию x32/x86 больше нет возможности поддерживать из за отсутствия поддержки шифрования по GOST
• Так что к сожалению 32-х битные Windows больше не поддерживаются.
• + на Windnows 7/8 x32/x64 нет возможности установить ПО крипто-провайдера по GOST - так что с ними все - окончательно!
• Если у Вас ККТ Атол - установите ДТО Атола x64
2. Если первая настройка - добавьте Вашу ККТ в устройства.
Смотрите инструкции по добавлению ККТ.
3. Зайдите в меню настройки разрешительного режима:"
4. В личном кабинете ГИС МТ необходимо зайти под своей учеткой в раздел профиль:
И нажать кнопку «сгенерировать токен» у поля «Токен для контрольно-кассовой техники»:
Скопируйте токен.
В блоке с нужным ИНН вставьте токен в поле "Токен авторизации".
5. Нажмите "+" в поле "Проверяемые товарные группы".
И установите пометки на товарных группах, которые вы хотите проверять через "Разрешительный режим".
Если хотите включить для все группу товаров - пометьте поле "Все группы".
6. Нажмите кнопку "Сохранить настройки".
Ниже будут отображаться доступные сервера "Разрешительного режима".
И логи запросов к этим серверам.
Логи запросов не сохраняются, и будут сброшены после перезагрузки сервера.
Получение токена авторизации по такой системе будет доступен до 1 марта 2025 года.
Далее токен должен получатся автоматически по сертификату УКЭП.
Это механизм пока в разработке, будет добавлен позже.
Но по нему у Вас все время работы к ПК должен быть подключен "Носитель ключа ЭП (токен)".
И по нему должен быть выполнен "Вход".
Положить Сертификат УКЭП в реестр или на диск скорее всего не получится - т.к. УКЭП выдаются исключительно с признаком "Запрет экспорта секретного ключа".
Все это видится несколько неудобно - но поживем - увидим как оно будет.
• Внимание: Версия только x64!
• Версию x32/x86 больше нет возможности поддерживать из за отсутствия поддержки шифрования по GOST
• Так что к сожалению 32-х битные Windows больше не поддерживаются.
• + на Windnows 7/8 x32/x64 нет возможности установить ПО крипто-провайдера по GOST - так что с ними все - окончательно!
• Если у Вас ККТ Атол - установите ДТО Атола x64
2. Если первая настройка - добавьте Вашу ККТ в устройства.
Смотрите инструкции по добавлению ККТ.
3. Зайдите в меню настройки разрешительного режима:"
4. В личном кабинете ГИС МТ необходимо зайти под своей учеткой в раздел профиль:
И нажать кнопку «сгенерировать токен» у поля «Токен для контрольно-кассовой техники»:
Скопируйте токен.
В блоке с нужным ИНН вставьте токен в поле "Токен авторизации".
5. Нажмите "+" в поле "Проверяемые товарные группы".
И установите пометки на товарных группах, которые вы хотите проверять через "Разрешительный режим".
Если хотите включить для все группу товаров - пометьте поле "Все группы".
6. Нажмите кнопку "Сохранить настройки".
Ниже будут отображаться доступные сервера "Разрешительного режима".
И логи запросов к этим серверам.
Логи запросов не сохраняются, и будут сброшены после перезагрузки сервера.
Получение токена авторизации по такой системе будет доступен до 1 марта 2025 года.
Далее токен должен получатся автоматически по сертификату УКЭП.
Это механизм пока в разработке, будет добавлен позже.
Но по нему у Вас все время работы к ПК должен быть подключен "Носитель ключа ЭП (токен)".
И по нему должен быть выполнен "Вход".
Положить Сертификат УКЭП в реестр или на диск скорее всего не получится - т.к. УКЭП выдаются исключительно с признаком "Запрет экспорта секретного ключа".
Все это видится несколько неудобно - но поживем - увидим как оно будет.
Для разработчиков систем:
1. Отправка команды осуществляется так-же как и ранее,
Ни каких переделок не нужно.
Только не забывайте про отправку доков маркировки.
2. А вот обработку ответа от kkmserver придется изменить:
• При наличии в ответе от KkmServer "Status": 0 - Ок - все по старому.
• При наличии в ответе от KkmServer "Status": 2 - Error:
Пример JSON ответа на чек - не прошедший контроль "Разрешительного режима":
Нужно в цикле перебрать поле "MarkingCodeValidation" (это массив)
Для каждой строки проверить поля:
• MarkingCodeValidation[i].ValidationPR.ValidationResult
• MarkingCodeValidation[i].ValidationPR.ValidationDisabled
Если ValidationResult ИЛИ ValidationDisabled равны true - код маркировки прошел проверку.
Если ValidationResult И ValidationDisabled равны false - код маркировки НЕ прошел проверку - и нужно:
• По полю MarkingCodeValidation[i].BarCode найти в Вашем документе нужную строку с товаром с этим кодом маркировки.
• И для этой строки вывести информацию из поля MarkingCodeValidation[i].ValidationPR.DecryptionResult.
В поле MarkingCodeValidation[i].ValidationPR.Log содержится лог ответа сервера проверки "Разрешительного режима" на этот конкретный код маркировки
3. Если проверки "Разрешительного режима"" проводятся вне KkmServer то:
В команду на чек в структуру "GoodCodeData" добавить поле (пример):
• "IndustryProps": "UUID=2ce10bdb-6510-4d37-be04-dd473b98c728&Time=1692691702065"
• Формат поля "IndustryProps" соответствует формату тега 1265 ФФД.
Ни каких переделок не нужно.
Только не забывайте про отправку доков маркировки.
2. А вот обработку ответа от kkmserver придется изменить:
• При наличии в ответе от KkmServer "Status": 0 - Ок - все по старому.
• При наличии в ответе от KkmServer "Status": 2 - Error:
Пример JSON ответа на чек - не прошедший контроль "Разрешительного режима":
{ "Cash": 1001008.0, "ElectronicPayment": 0.0, "AdvancePayment": 0.0, "Credit": 0.0, "CashProvision": 0.0, "MarkingCodeValidation": [ { "Name": "Тестовый товар 3", "BarCode": "010462930887704421DzkcYt2\u001d8005177000\u001d93dGVz", "IndustryProps": "4247b4a7-a2e3-4b69-8172-e13ee4974001&Time=1705420843036", "ValidationPR": { "ValidationResult": false, "ValidationDisabled": true, "DecryptionResult": "'Серая зона' - проверка отключена", "Log": { "cis": "010462930887704421DzkcYt2\u001d800517700093dGVz", "found": true, "valid": true, "printView": "010462930887704421DzkcYt2", "gtin": "04629308877044", "groupIds": [ 3 ], "verified": true, "realizable": false, "utilised": true, "expireDate": "0001-01-01T00:00:00", "variableExpirations": null, "productionDate": "2023-03-06T11:02:38", "productWeight": 0.0, "prVetDocument": null, "isOwner": false, "isBlocked": false, "ogvs": [ ], "message": null, "errorCode": 0, "isTracking": false, "sold": false, "mrp": 177000.0, "smp": 11900.0, "grayZone": true, "innerUnitCount": 0, "soldUnitCount": 0, "packageType": "GROUP", "parent": null, "producerInn": "7726677860" } }, "ValidationKKT": { "ValidationResult": 3, "DecryptionResult": "[М] Проверка КП КМ выполнена с положительным результатом, статус товара ОИСМ не проверен; КМ данного типа не подлежит проверке в ФН" } }, { "Name": "Тестовый товар 4", "BarCode": "0104670540176099215NN*cM\u001d93dGVz", "IndustryProps": null, "ValidationPR": { "ValidationResult": false, "ValidationDisabled": false, "DecryptionResult": "Продажа товара запрещена: Код маркировки выведен из оборота (Товар продан).", "Log": { "cis": "0104670540176099215NN*cM\u001d93dGVz", "found": true, "valid": true, "printView": "0104670540176099215NN*cM", "gtin": "04670540176099", "groupIds": [ 8 ], "verified": true, "realizable": false, "utilised": true, "expireDate": "2024-05-31T00:00:00", "variableExpirations": null, "productionDate": "2023-04-11T00:00:00", "productWeight": 0.0, "prVetDocument": null, "isOwner": true, "isBlocked": false, "ogvs": [ ], "message": null, "errorCode": 0, "isTracking": false, "sold": true, "mrp": 0.0, "smp": 0.0, "grayZone": false, "innerUnitCount": 0, "soldUnitCount": 0, "packageType": "UNIT", "parent": null, "producerInn": "7725344604" } }, "ValidationKKT": { "ValidationResult": 3, "DecryptionResult": "[М] Проверка КП КМ выполнена с положительным результатом, статус товара ОИСМ не проверен; КМ данного типа не подлежит проверке в ФН" } } ], "Command": "RegisterCheck", "Error": "Продажа товара запрещена: Код маркировки выведен из оборота (Товар продан)", "Warning": "", "Message": "", "Status": 2, "IdCommand": "", "NumDevice": 1, "MessageFrom": "KkmServer" }
Нужно в цикле перебрать поле "MarkingCodeValidation" (это массив)
Для каждой строки проверить поля:
• MarkingCodeValidation[i].ValidationPR.ValidationResult
• MarkingCodeValidation[i].ValidationPR.ValidationDisabled
Если ValidationResult ИЛИ ValidationDisabled равны true - код маркировки прошел проверку.
Если ValidationResult И ValidationDisabled равны false - код маркировки НЕ прошел проверку - и нужно:
• По полю MarkingCodeValidation[i].BarCode найти в Вашем документе нужную строку с товаром с этим кодом маркировки.
• И для этой строки вывести информацию из поля MarkingCodeValidation[i].ValidationPR.DecryptionResult.
В поле MarkingCodeValidation[i].ValidationPR.Log содержится лог ответа сервера проверки "Разрешительного режима" на этот конкретный код маркировки
3. Если проверки "Разрешительного режима"" проводятся вне KkmServer то:
В команду на чек в структуру "GoodCodeData" добавить поле (пример):
• "IndustryProps": "UUID=2ce10bdb-6510-4d37-be04-dd473b98c728&Time=1692691702065"
• Формат поля "IndustryProps" соответствует формату тега 1265 ФФД.
Откладка "Разрешительного режима":
1. На странице настроек "Разрешительного режима"" пометьте поле "Использовать сервера отладки":
2. В команде на чек для проверки НУЖНО использовать следующие кода маркировки:
• "010462930887704421DzkcYt2\u001d8005177000\u001d93dGVz" - Валидный, "'Серая зона' - проверка отключена"
• "010462930887704421DzkcYt2\u001d800517700093dGVz" - Валидный, "'Серая зона' - проверка отключена"
• "0104670540176099215'W9Um\u001d93dGVz" - "Продажа товара запрещена: Код маркировки эмитирован, но нет информации о его нанесении на упаковку."
• "0104670540176099215LnOjv\u001d93dGVz" - "Продажа товара запрещена: Код маркировки выведен из оборота (Товар продан)."
• "0104670540176099215NN*cM\u001d93dGVz" - "Продажа товара запрещена: Код маркировки выведен из оборота (Товар продан)."
• "0104602220006549215opFcmK\u001d93dGVz" - "Продажа товара запрещена: Код маркировки заблокирован по решению ОГВ: Росалкогольрегулирование; "
• "0104670540176099215<pGKy\u001d93dGVz" - "Продажа товара запрещена: Истек срок годности товара."
• "010461013628057121/798DM%\u001d8005106000\u001d93dGVz" - "Продажа товара запрещена: Цена продажи ниже установленной минимальной цены, минимальная цена = 119"
• "04601653035829H;dV)bFACVUdGVz" - "Продажа товара запрещена: Превышена максимальная цена продажи, максимальная цена = 145"
• "04601653035829H;vE)bFACVUdGVz" - "Продажа товара запрещена: Код маркировки не найден в ГИС МТ."
2. В команде на чек для проверки НУЖНО использовать следующие кода маркировки:
• "010462930887704421DzkcYt2\u001d8005177000\u001d93dGVz" - Валидный, "'Серая зона' - проверка отключена"
• "010462930887704421DzkcYt2\u001d800517700093dGVz" - Валидный, "'Серая зона' - проверка отключена"
• "0104670540176099215'W9Um\u001d93dGVz" - "Продажа товара запрещена: Код маркировки эмитирован, но нет информации о его нанесении на упаковку."
• "0104670540176099215LnOjv\u001d93dGVz" - "Продажа товара запрещена: Код маркировки выведен из оборота (Товар продан)."
• "0104670540176099215NN*cM\u001d93dGVz" - "Продажа товара запрещена: Код маркировки выведен из оборота (Товар продан)."
• "0104602220006549215opFcmK\u001d93dGVz" - "Продажа товара запрещена: Код маркировки заблокирован по решению ОГВ: Росалкогольрегулирование; "
• "0104670540176099215<pGKy\u001d93dGVz" - "Продажа товара запрещена: Истек срок годности товара."
• "010461013628057121/798DM%\u001d8005106000\u001d93dGVz" - "Продажа товара запрещена: Цена продажи ниже установленной минимальной цены, минимальная цена = 119"
• "04601653035829H;dV)bFACVUdGVz" - "Продажа товара запрещена: Превышена максимальная цена продажи, максимальная цена = 145"
• "04601653035829H;vE)bFACVUdGVz" - "Продажа товара запрещена: Код маркировки не найден в ГИС МТ."