Logo

KkmServer.ru - WiKi: различные статьи и инструкции

Документация по "Разрешительному режиму" на кассах:

Для чего все это?:

С 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 года.
Далее токен должен получатся автоматически по сертификату УКЭП.
Это механизм пока в разработке, будет добавлен позже.
Но по нему у Вас все время работы к ПК должен быть подключен "Носитель ключа ЭП (токен)".
И по нему должен быть выполнен "Вход".
Положить Сертификат УКЭП в реестр или на диск скорее всего не получится - т.к. УКЭП выдаются исключительно с признаком "Запрет экспорта секретного ключа".
Все это видится несколько неудобно - но поживем - увидим как оно будет.

Для разработчиков систем:

1. Отправка команды осуществляется так-же как и ранее,
Ни каких переделок не нужно.
Только не забывайте про отправку доков маркировки.

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": "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" - "Продажа товара запрещена: Код маркировки не найден в ГИС МТ."