|   |   | 
| 
 | Ошибка D3h от ККМ при проверке Честный знак | ☑ | ||
|---|---|---|---|---|
| 0
    
        proglib 28.01.25✎ 18:54 | 
        При печати чека на ККМ при проверке в честном знаке касса возвращает ошибку "D3h. Код товара не распознан".
 Причем если марка на которую возвращается ошибка первая, то ошибки нет. Ошибка только когда марка не первая. В чем может быть дело? | |||
| 1
    
        pablo_escobar 28.01.25✎ 19:43 | 
        (0) xml чека при ошибке нужно посмотреть. скидка в чеке есть?     | |||
| 2
    
        proglib 29.01.25✎ 11:24 | 
        xml проверки:
 <?xml version="1.0" encoding="UTF-8"?> <RequestKM GUID="bd965267-621d-4728-9738-60f3d60ea2ab" WaitForResult="True" NotSendToServer="False" MarkingCode="MDEwNDYyMDIzMDExMDAyNTIxNXBQPTUuTUNGaDFtUh05MzgyQXc=" PlannedStatus="1"/> xml ответа: <?xml version="1.0"?> <ProcessingKMResult GUID="bd965267-621d-4728-9738-60f3d60ea2ab" Result="true" ResultCode="15" StatusInfo="1" HandleCode="0"/> Ошибку возвращает код: Результат = ОбъектДрайвера.ПодтвердитьКМ(ПараметрыПодключения.ИДУстройства, ИдентификаторЗапроса, ?(Выбытие, 0, 1) ); ИдентификаторЗапроса равен bd965267-621d-4728-9738-60f3d60ea2ab Описание ошибки: D3h, Код товара не распознан | |||
| 3
    
        MWWRuza гуру 29.01.25✎ 13:05 | 
        А вот это что такое вообще: MDEwNDYyMDIzMDExMDAyNTIxNXBQPTUuTUNGaDFtUh05MzgyQXc
 Это не код марки. По структуре видно. Сюда, должен передаваться код марки "как есть", как со сканера прилетает. Или сканируют "что-то не то", или сканер так настроен - возможно, это фрагмент кода марки из нее "вырезан". Приложите фотку марки, которая в этом чеке была, посмотрим что это такое, как ее нормальный сканер прочитает. (1) В данном случае, скидка тут вообще ни при чем. Тут явно "кривой" код марки. PS И ТС как большинство, путает, где ошибка возникла - в РР или кассе, при проверке через ОИСМ. Тот идентификатор запроса - это ЧЗ возвращает, при проверке по РР. Там скорее всего отрицательный результат (будет в нем так-же, что марка не найдена, если конечно, там такой-же код на проверку по РР передавался, а не полный, как со сканера прилетел, и позже он был "изуродован" где-то в недрах программы), но запрос отрабатывает, раз его ИД вернулся. А вот то, что касса ошибку выдает - это следствие попытки проверить "кривую марку" средствами ККТ в ОИСМ, ККТ не может распознать, что ему подсунули, и падает в ошибку... | |||
| 4
    
        arsik гуру 29.01.25✎ 12:54 | 
        +(3) Разбинарь строку     | |||
| 5
    
        MWWRuza гуру 29.01.25✎ 13:09 | 
        (4) Ну, да, возможно и в этом причина. Марка должна передаваться "как есть", а тут, очень похоже, что ее в base64 закодировали. В этом месте не нужно этого делать.     | |||
| 6
    
        MWWRuza гуру 29.01.25✎ 13:23 | 
        +(4) и (5) - Вот такая марка там: 0104620230110025215pP=5.MCFh1mR9382Aw
 Абсолютно нормальная:  Где-то Вы перестарались, лишнее преобразование в Base64 делаете. Это - "НАПИТОК ГАЗИРОВАННЫЙ COCA-COLA CLASSIC В СТЕКЛЯННОЙ БУТЫЛКЕ 0.33 " (последнее - не из ЧЗ, а из базы ОлегОН по ЕАН, выделенному из кода марки. Можно получить наименование и из ЧЗ по GTIN, другим запросом, но лень... :-) ) | |||
| 7
    
        MWWRuza гуру 29.01.25✎ 13:31 | 
        Ну, хотя... Чего лень - нужно было то, всего залезть под стол и токен поменять, там другой стоял. Первый запрос по РР, для него не нужен "физический" токен-ключ, там токен из ЛК ЧЗ.
 А вот этот запрос уже по API из ЧЗ:  Это как карточка продукта в ЧЗ заведена производителем. К этим запросам доступ только по ЭЦП... | |||
| 8
    
        MWWRuza гуру 29.01.25✎ 13:39 | 
        Хорошо "сунулся", заметил у себя косяк...
 Вот это надо "починить":  У меня там функция "перевода месаг ЧЗ на человеко-читаемый язык". Добавить туда эти значения. Блин, и внизу еще одно: "tnVedEaesGroup"... Просто, когда делал, соковой продукции еще не было и такое не попадалось. | |||
| 9
    
        MWWRuza гуру 29.01.25✎ 14:02 | 
        Вот так правильно: 
  | |||
| 10
    
        proglib 29.01.25✎ 15:45 | 
        (3) Конфа Ут11.5 код стандартный.
 Если бы проблема была в коде марки тогда бы все было легко. Проблема в том, что иногда проверка этой марки (0104620230110025215pP=5.MCFh1mR) проходит, а иногда нет. Точнее если позиция первая - проходит, когда пятая нет. Такое ощущение, что дело в ККМ. | |||
| 11
    
        proglib 29.01.25✎ 16:26 | 
        Попробовал в запрос подсунуть код марки незашифрованный (0104620230110025215pP=5.MCFh1mR):
 <?xml version="1.0" encoding="UTF-8"?> <RequestKM GUID="66d47fce-2076-4924-88b9-44da8357c728" WaitForResult="True" NotSendToServer="False" MarkingCode="0104620230110025215pP=5.MCFh1mR" PlannedStatus="1"/> Выдает ошибку: D3h, Код товара не распознан. Все правильно у 1с сделано, код правильный передает. | |||
| 12
    
        arsik гуру 29.01.25✎ 16:32 | 
        (11) Так ты наверно символ который невидимы не передал.
 ASCII 232 (FNC1) и ASCII 29 (GS) | |||
| 13
    
        pablo_escobar 29.01.25✎ 16:35 | 
        (5) Все там правильно передается. Это требования компоненты от 1С. https://its.1c.ru/db/metod8dev#content:4829:hdoc:requestkm     | |||
| 14
    
        pablo_escobar 29.01.25✎ 17:07 | 
        (10) так что насчет скидки? У меня такое было когда скидка, и форматно логический контроль, чтобы привести ценасоскидкой*количество = суммапостроке (допускается отклонение не более 1 копейки), делил строку на две, соответственно на ККТ отправлялись 2 одинаковые марки на проверку в рамках одной сессии(чека).     | |||
| 15
    
        proglib 29.01.25✎ 18:11 | 
        Скидок нет.
 До скидок и не доходит, ошибка на этапе проверки КМ. (14) | |||
| 16
    
        MWWRuza гуру 30.01.25✎ 00:37 | 
        (13) А, ну, получается да:
 "MarkingCode Да string Код контрольной марки Кодируется текстом в кодировке Base64." Это извращение в драйвере (компоненте) по технологии 1С-совместимо... В нативных драйверах передается строкой "как есть". Тогда, х.з... Может драйвер обновить надо? Кстати, а что за ККТ -? На уровне драйвера 1С, не понять - они все едины со стороны 1С... Вот это: <RequestKM GUID="66d47fce-2076-4924-88b9-44da8357c728" Похоже, ИД запроса по РР... Кстати, а что он возвращает? Не его ИД, а результат, если его в отладчике поймать? Ну, хотя, в первом сообщении - "ResultCode="15"" Это похоже на ответ ОИСМ, что с маркой все ОК... Трудно понять без контекста. | |||
| 17
    
        pablo_escobar 30.01.25✎ 08:47 | 
        (16) тут речь про проверку средствами ККТ-ОФД-ОИСМ. РР здесь совсем нет. <RequestKM GUID="66d47fce-2076-4924-88b9-44da8357c728" - https://its.1c.ru/db/metod8dev#content:4829:hdoc:chapter270
 через компоненту 1С, проверка делается 3-мя методами последовательно: ЗапросКМ(RequestKM), ПолучитьРезультатыЗапросаКМ(GetProcessingKMResult), ПодтвердитьКМ (ConfirmKM). | |||
| 18
    
        proglib 30.01.25✎ 10:33 | 
        (16) Результат = ОбъектДрайвера.ПодтвердитьКМ(ПараметрыПодключения.ИДУстройства, ИдентификаторЗапроса, ?(Выбытие, 0, 1) );
 В результате ошибка. Отладкой не посмотреть это процедура драйвера - внешней компоненты. | |||
| 19
    
        MWWRuza гуру 30.01.25✎ 11:32 | 
        (17) через компоненту 1С
 Тогда все, я молчу... Я сам делал только через нативные драйвера, без компоненты 1С. Для Штрихов, АТОЛов, Спарка-130. А там все немного не так. А через компоненту в паре мест у меня работают типовые "Розницы", лазить туда не приходилось, оно и так заработало, "из коробки" :-) . | |||
| 20
    
        MWWRuza гуру 30.01.25✎ 17:23 | 
        С телеги "Злой ЦТОшник":
 Виктор, [30.01.2025 15:18] Всем привет. Есть атол 11 и ПО Мой склад. Прошивка на Атоле самая последняя. Проблема такая, при сканировании маркированного товара, проверка в ЧЗ и ККТ проходит отлично, но если отсканировать быстро 2 или 3 маркий, первая проходит проверку в ККТ, остальные выходят с ошибкой. Но в ЧЗ все так же все хорошо и проверено. Может кто сталкивался? Виктор, [30.01.2025 15:18] Тайминги уже пробовал менять, не помогает Виктор, [30.01.2025 15:19] Хотя может есть какие то волшебные Alfa Dog, [30.01.2025 15:20] Не сканировать быстро :) Виктор, [30.01.2025 15:21] Ну быстро, тоже относительно, разница во времени должна быть сек 10-20 Не ваша ситуация, часом? | |||
| 21
    
        proglib 30.01.25✎ 17:50 | 
        (20) Тоже такое подозрение возникло. Но почему на одном и том же коде?
 Написали в штрих, посмотрим что ответят. | |||
| 22
    
        pablo_escobar 31.01.25✎ 09:22 | 
        (20) (21) Похожее поведение было у меня на Розница 3. При сканировании нескольких марок первая нормально проверялась, какая то из последующих выдавала ошибку. Дело было в том, что в типовой Рознице (в остальных типовых так же) проверка осуществлялась описаниями оповещения и обработчиком ожидания. Выше я уже писал, что проверка состоит из 3-х методов и если подтверждение предыдущей марки не успело завершиться и отсканировали новую, то новая могла перетереть контекст операции предыдущей марки. Причем в отладке это поймать не удавалось, так как время в отладчике позволяло успешно провериться маркам. После того как сделал вызов ПолучитьРезультатыЗапросаКМ() последовательным, а не через ПодключитьОбработчикОжидания() проблема ушла.     | |||
| 23
    
        arsik гуру 31.01.25✎ 09:38 | 
        (22) А нельзя было марки перед пробитием проверять все скопом? А не при сканировании?     | |||
| 24
    
        pablo_escobar 31.01.25✎ 10:07 | 
        (23) можно, то же самое происходило     | |||
| 25
    
        proglib 31.01.25✎ 10:15 | 
        (23) В моей ситуации нельзя. Проверка идет средствами ККТ, там проверка по одной. 
 (21) Мож кто знает как увеличить таймаут проверки кодов на кассовом аппарате? | |||
| 26
    
        arsik гуру 31.01.25✎ 10:24 | 
        (25) В атоле вот такое есть. Но у нас редкие продажи маркированного товара
 https://atol-kassa.ru/kkt-atol-nastrojka-parametrov-raboty-s-ism-informaczionnaya-sistema-markirovki/ 
 | |||
| 27
    
        pablo_escobar 31.01.25✎ 10:27 | 
        (25) так перед пробитием тоже по одной проверяется и из за асинхронности иногда эти проверки пересекаются. Даже еще с большей вероятностью, так как при сканировании есть хоть какая то пауза.     | |||
| 28
    
        proglib 31.01.25✎ 11:37 | 
        (26) Спасибо!
 Такое описание бы для штриха. Если что драйвер 5.18.0.1068 | |||
| 29
    
        proglib 04.02.25✎ 18:54 | 
        В штрихе сказали что вот эта проблема:
 https://teletype.in/@shtrih-support/fnbug | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |