Проверка КП КМ не выполнена
Вопрос № 524 (гость № 10)
24.09.2022 10:26 (гость № 10)
Добрый день, может кто знает, 1С Розница обновили до версии 2.3.13.13 и начала при пробитии чека выдает такую ошибку, хотя код маркировки в веден в оборот. 
Редактировать
Удалить
24.09.2022 22:31 (Админ)
1825
Такая ошибка может возникнуть:
1. Нет возможности подключиться в системе честного знака и проверить марку
2. Марка зарегистрирована на другую организацию
3. Товар еще не принят в честном знаке, а продать его уже пытаются.
4. Марка считывается с ошибкой, поэтому не проходит проверку.
В принципе при такой ошибке у вас просто в чеке будет напечатано «М-«.
Покупатель может отказаться приобретать такой товар, мотивируя тем, что раз проверку в честном знаке марка не прошла, то реализуется контрафакт.
Ваши действия.
1. Если такая ошибка возникла единожды на какой то продукт, то проверить марку в честном знаке.
2. Если периодически на разный товар, проверить был ли принят УПД, и если да, то правильно ли все сделано.
3. Если ошибка постоянная, то нужно проверять кассовое оборудование или сканер.
Редактировать
Удалить
Добавление маркированных товаров
Внимание! Для добавления в чековый буфер маркированных товаров ККТ должна быть зарегистрирована для работы с маркированными товарами
ОИСМ — это оператор информационных систем маркировки, который осуществляет мониторинг всех продаваемых товаров, подлежащих обязательной маркировке.
После сканирования КМ (код маркировки) он будет передан ФН для локальной проверки (при наличии технической возможности ФН). В случае отрицательного результата (если ККТ зарегистрирована в автономном режиме) на дисплее кассы появится сообщение:
ОТВЕТ ФН ОТРИЦ ПРОДОЛЖ? [3]-Да
Для добавления товара нажмите — «3», для отказа — «C» или «РЕЖ».
В случае отрицательного результата локальной проверки (если ККТ зарегистрирована в режиме передачи данных) на дисплее кассы появится сообщение:
ОТВЕТ ФН ОТРИЦ ЗАПР ОИСМ [3]-Да
Для проверки КМ на стороне ОИСМ (Оператор информационных систем маркировки) нажмите — «3», для отказа от добавления покупки в чековый буфер — «C» или «РЕЖ».
В случае отсутствия технической возможности произвести локальную проверку КМ, ККТ зарегистрированная в режиме передачи данных самостоятельно сформирует запрос в ОИСМ. В момент проверки КМ в ОИСМ на дисплее кассы будет отображено сообщение:
ПРОВЕРКА КМ В ОИСМ…
В случае отрицательного результата проверки в ОИСМ на дисплее кассы появится сообщение:
ОТВЕТ ОИСМ ОТРИЦ ПРОДОЛЖ? [3]-Да
Для добавления данного товара в чековый буфер нажмите — «3», для отмены — «C» или «РЕЖ».
В случае недоступности сервера ОИСМ на дисплее кассы появится сообщение:
НЕТ ОТВЕТА ОИСМ ПРОДОЛЖ? [3]-Да
Для добавления покупки в чековый буфер без проверки КМ нажмите — «3», для отмены — «C» или «РЕЖ».
В зависимости от результата локальной и на сервере ОИСМ проверки кода маркировки в чеке будет присутствовать следующая информация о реализуемой маркированной продукции:
- «[М+]» – проверка КМ выполнена с положительным результатом;
- «[М]» – проверка КМ не выполнена;
- «[М-]» – проверка КМ выполнена с отрицательным результатом.
Как проверить отправку уведомлений ОИСМ на кассе меркурий
Проконтролировать состояние ККТ можно, нажав кнопку «.» в основном меню. В результате будут отпечатаны основные параметры ККТ:

Если уведомлений 0, то все настроено правильно. Если есть уведомления, то необходимо проверить связь с интренетом и проверить все настройки.
Ключи проверки адреса ОКП для ФФД 1.2
Адрес сервера: prod01.okp-fn.ru
IP адрес: 31.44.83.184
Порт: 26101
Почему на чеке печатается [М-]
- Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен
- Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
- Проверка КП КМ выполнена с отрицательным результатом, статус товара у ОИСМ некорректен
- Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ некорректен
Иными словами, статус [М-] в чеке печатается в том случае, если одна или все проверки были выполнены с отрицательным результатом
Почему на чеке печатается просто [М]
- Проверка КП КМ не выполнена в ФН, статус товара ОИСМ не проверен
- Проверка КП КМ выполнена в ФН с положительным результатом , статус товара ОИСМ не проверен
- Проверка КП КМ не выполнена в ФН, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
- Проверка КП КМ выполнена в ФН с положительным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
Иными словами, статус [М] в чеке печатается в том случае, если одна или все проверки не были выполнены. То есть они были пропущены. Например, запрос на проверку был передан в ОИСМ, но не был получен ответ по причине отсутствия интернет соединения.
Почему на чеке печатается [М+]
- Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ корректен
Иными словами, статус [М+] в чеке печатается в том случае, если код маркировки прошёл все существующие проверки
05.10.21 — 11:32
Доброго дня, кто то делал для ШТРИХа передачу маркировки по молочке?
Для табака у меня сделано вот так
FR.Password=ПарольККМ(Кассир);
//Тип маркировки товара.
FR.MarkingType=17485;
//Код маркировки товара.
FR.GTIN=Лев(ИДМаркировка,14);
FR.SerialNumber=Сред(СокрЛП(ИДМаркировка),15,7);
FR.FNSendItemCodeData();
А для молочки как делать? Передавать все символы которые до символа с кодом 29, начиная с 17 символа?, так как первые 16 это GTIN и есть?
1 — 05.10.21 — 12:20
гтин не 16. гтин 12/13/14
2 — 05.10.21 — 12:33
0104607004892936215yQnIO #29 93FXLQ #13
т.е. вот от этого ШК отделяю первые 2 символа — 01 и остальное как раз и получается 14 символьный GTIN?
3 — 05.10.21 — 12:34
типа да
4 — 05.10.21 — 12:38
ну и получается тогда что после откидываем 21 и перед #29 первые символы (6 штук) это и есть серийник?
5 — 05.10.21 — 17:22
(0) Я делал. Для какой версии ФФД нужно?
6 — 05.10.21 — 17:24
ГТИН всегда 14 символов (для всех товарных групп), а Серийник у молочки всегда 6 символов:
«01 + GTIN (14 chars) + 21 + СерийныйНомер (6 chars) + 93 + КодПроверки (4 chars)»
7 — 05.10.21 — 17:26
Пример 1:
Считанная бинарная последовательность: 010460043993125621JgXJ5.Tu001d8005112000u001d930001u001d923zbrLA==u001d24014276281.
Символ FNC1 по стандарту GS1 в примере обозначается как «u001d».
Выделенная последовательность для передачи в значение реквизита «код товара» (тег 1162): 04600439931256 & JgXJ5.T & 112000.
04600439931256 — представляется в виде 6-байтного hex: 04h 2Fh lFh 96h 81h 78h.
JgXJ5.T — кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 4Ah 67h 58h 4Ah 35h 2Eh 54h.
112000 — кодируется в набор байт hex, интерпретируя символы согласно ASCII таблицы: 31h 31h 32h 30h 30h 30h.
Значение реквизита «код товара» (тег 1162): 44h 4Dh 04h 2Fh 1Fh 96h 81h 78h 4Ah 67h 58h 4Ah 35h 2Eh 54h 31h 31h 32h 30h 30h 30h.
8 — 06.10.21 — 10:16
(5) сейчас все кассы 1.05 или 1.1, в течении дня сегодня будут менять на одной из касс на 1.2, так что на данный момент актально для двух вариантов.
9 — 06.10.21 — 10:22
(2) 0104607004892936215yQnIO #29 93FXLQ #13
дело в том, что если у вас AI фиксированного размера (а 01, если я верно помню, всегда 14, т.е. фиксированная), то FNC1 необязателен.
Так что в данном случае у вас
(01)04607004892936
(21)5yQnIO #29 93FXLQ #13
10 — 06.10.21 — 10:23
в молочке, наверно, еще дата изготовления как минимум должна быть. Тут только EAN13 и серийник от честного знака…
11 — 07.10.21 — 06:33
(10) Нет, не будет даты изготовления в КМ. Отказались от нее в ЧЗ.
12 — 07.10.21 — 07:07
(9) Не совсем так:
Если ФФД 1.05/1.1 то в ОФД должно уйти: 4607004892936 5yQnIO
Если ФФД 1.2, то в ОФД уходит: 01 04607004892936 215yQnIO #29 93FXLQ
Буквально в конце сентября я прошел проверочные испытания по молочке своего ПО в Честном ЗНАКе именно по этому сценарию (по другим сценариям мое ПО не аккредитовали бы).
13 — 08.10.21 — 10:05
(12) каким же образом мне используя 1.2 передать тэги? Сейчас сделано вот так
FR.Password=ПарольККМ(Кассир);
//Тип маркировки товара.
FR.MarkingType=17485;
//Код маркировки товара.
FR.GTIN=Лев(ИДМаркировка,14);
FR.SerialNumber=Сред(СокрЛП(ИДМаркировка),15,7);
FR.FNSendItemCodeData();
Но почему то теперь это не проходит, ругается драйвер
Код ошибки 51 Некорректные параметры в команде
14 — 08.10.21 — 11:40
(13) Эти методы для ФФД 1.05/1.1.
Для 1.2 всё по другому.
15 — 08.10.21 — 11:45
Чтобы понять насколько всё сложно и заморочено в плане маркировки на ФФД 1.2, почитайте схемы интеграции:
http://fs.atol.ru/_layouts/15/atol.templates/Handlers/FileHandler.ashx?guid=59712437-d622-458c-a0e5-98e4e5e2cdfb&webUrl=
Это для Атола, но у Штрих-м аналогично (т.к ФН-М тот же самый).
16 — 08.10.21 — 11:48
Правильно ли я понимаю, что перед тем как продать маркированный товар необходимо его сначала проверить через драйвер. И после получения ответа только совершать передачу тэга?
17 — 08.10.21 — 11:48
У меня несколько дней ушло только на переписку с техподдержкой Штрих-М, чтобы понять как всё это увязать в коде для их драйвера. Некоторые вещи не документированы в их документации.
Например, кто знает как пользоваться методом FNUserAttribute? Манулов по этому методу ноль.
18 — 08.10.21 — 11:48
(16) Правильно.
19 — 08.10.21 — 11:50
(18) т.е. без проверки вообще никак не обойтись?
20 — 08.10.21 — 11:54
(19) Никак, т.к. железно зашито на уровне ФН-М. Я пробовал.
21 — 08.10.21 — 12:27
ну вот допустим считанный код вот такой
0104601216012779215XIPBe<0x1D>931eil
FNCheckItemBarcode
Что передавать в BarCode ? Весь целиком или только GTIN?
22 — 08.10.21 — 12:31
я что не пробую проверять у меня на все один ответ
Статус локальной проверки : 0
«код маркировки не может быть проверен фискальным накопителем с использованием ключа проверки КП»
Результат локальной проверки : 1, КМ данного типа не подлежит проверке в ФН
Распознанный тип КМ : 255, неизвестное значение
23 — 08.10.21 — 12:33
Статус локальной проверки : 0
«код маркировки не может быть проверен фискальным накопителем с использованием ключа проверки КП»
Результат локальной проверки : 1, КМ данного типа не подлежит проверке в ФН
Распознанный тип КМ : 5, КМ со значением кода проверки длиной 4 символа, не подлежащим проверке в ФН
Код ответа ФН на команду онлайн-проверки: 0, Ошибок нет
Результат проверки КМ : 15
«код маркировки проверен»
«результат проверки КП КМ положительный»
«проверка статуса ОИСМ выполнена»
«от ОИСМ получены сведения, что планируемый статус товара корректен»
«результат проверки КП КМ и статуса товара сформирован ККТ, работающей в режиме передачи данных»
Реквизиты ответа сервера : 42 08 04 00 4C 10 60 61 39 08 01 00 00 D5 07 01 00 0F 3D 08 01 00 01 34 08 01 00 05
Вот что удалось получить
24 — 08.10.21 — 14:09
(21) Весь целиком, а последовательность <0x1D> нужно перед этим заменить на символ с кодом 29:
КМ = СтрЗаменить(КМ,»<0x1D>»,Симв(29));
(23) Результат проверки КМ : 15
означает, что всё хорошо, [М+]
25 — 08.10.21 — 14:22
(24) каким образом читать данные в ПО? Какие там команды или атрибуты? Где про это можно почитать? Что то руководство программиста они давненько не обновляли
26 — 08.10.21 — 14:29
(25) а если у меня со сканера ШК не приходит такая последовательность? Это критично или нет?
27 — 08.10.21 — 14:32
(25) https://exam.shtrih-m-partners.ru/base/ — Общее для ККТ — драйвера. Там же обновленная документация.
(26) Какая приходит?
28 — 08.10.21 — 15:05
Приходит например вот
0104601216012779215XIPBe<0x1D>931eil
29 — 08.10.21 — 15:07
(27) руководство прошлогоднее от 16 ноября 2020
30 — 08.10.21 — 15:49
(29) Я по нему и работал. Новее нет.
(28) См. (24)
31 — 08.10.21 — 15:52
А как же теперь передавать данные о ШК ЕГАИС? У меня тоже вылезает ошибка 51, некорректные парамемтры в команде
32 — 08.10.21 — 15:53
(31) ШК ЕГАИС не передаем в ОФД (и никогда не нужно было передавать в ОФД).
Их нужно передавать через УТМ запросом версии Cheque или ChequeV3.
33 — 08.10.21 — 15:54
34 — 08.10.21 — 16:00
Драйвер есть последний, к нему описания нет или я слепой и не могу найти
35 — 08.10.21 — 16:07
(34) Я не пользовался описанием к новому драйверу — не подскажу где искать.
36 — 08.10.21 — 16:09
(34) К последнему драйверу подходит предыдущее описание. Там ничего не меняли, только ошибки фиксили
37 — 08.10.21 — 16:42
(36) Поделитесь пожалуйста мне на почту руководством, которое у вас есть. Заранее благодарю
38 — 08.10.21 — 17:08
(37) Я вам дал ссылку в (27) — берите оттуда.
39 — 11.10.21 — 18:06
Кто-нибудь уже запустил для 1с 7.7 передачу маркированного товара для ФФД 1.2. Получилось у кого-нибудь?
40 — 11.10.21 — 18:22
(39) а шо?
41 — 11.10.21 — 18:30
(40) Хотел узнать какую версию драйвера использовали 4.15 или 5.16? И куда теперь криптохвост добавлять в SerialNumber или какой то отдельный параметр?
42 — 12.10.21 — 05:48
(39) Получилось.
(41) На обоих версиях драйверов работает.
«И куда теперь криптохвост добавлять в SerialNumber или какой то отдельный параметр?» У-у, как запущено… а текущую тему прочитать с начала, не судьба? В (27) ссылка откуда скачать документацию по Штрих-М.
43 — 12.10.21 — 06:34
(42) Ну так это было вчера. Я разобрался. Сначала проверяем марку с криптохвостом, а затем выводим вопрос пользователю от подтверждении пользователю пробития чека, если марка не прошла проверку.
Вот так:
меняем
……..
глФР.MarkingType=17485;
глФР.GTIN=ТЗначМарки.Джитин;
глФР.SerialNumber=ТЗначМарки.Серийник;
глФР.FNSendItemCodeData();
……..
на
qr=»010460702776893521000000013JBSF<0x1D>91FFD0<0x1D>92dGVzdGifC5FkjETjJhotf7m8rsjQHeoNyxcpaEIZfDQ=»;
qr=СтрЗаменить(qr,»<0x1D>»,Симв(29));
глФР.BarCode = qr;
глФР.ItemStatus = 1;
глФР.FNCheckItemBarcode();
//Дальше ККМ возвращает ряд тэгов с результатами проверки
глФР.FNAcceptMarkingCode();
глФР.Barcode = qr;
глФР.FNSendItemBarcode();
Правильно?
Я запутался какие тэги в ФФД 1.2 необходимо еще передать в ККМ или этого достаточно для того, чтобы чек пробился правильно? При условии что товар продается целыми шиуками.
44 — 12.10.21 — 06:53
(43) Желательно еще учесть обработку ошибок и передачу меры кол-ва товара.
45 — 12.10.21 — 08:11
(44) я так понимаю передача меры количества товара имеет смысл при частичном выбытии товара. Например продаем 1 сигарету из пачки.
46 — 12.10.21 — 09:45
(45) Я имел в виду тег 1197, он обязательный по ФФД 1.2 для любого типа товаров.
47 — 12.10.21 — 09:48
(46) Читаю изменения в ФФД 1.2 :Единица измерения предмета расчета (тег 1197) изменена на новый реквизит «мера количества предмета расчета» (тег 2108)
48 — 12.10.21 — 09:50
Тэг 1212, который для штриха PaymentItemSign. Раньше, если немаркированный товар, то просто ставили 1. а сейчас если товар не маркированный оставлять 1, а если маркированный, то 33 или он автоматом поставится, если у видит что есть КМ?
49 — 12.10.21 — 10:08
(47) Верно, теперь это тег 2108.
50 — 12.10.21 — 10:09
(48) Я ставлю 33 программно. Автоматом надо выбирать из двух значений 31 и 33, думаю автомат не сработает.
51 — 12.10.21 — 10:15
(49) Так вот я не пойму в документации написано: MeasureUnit Мера количества предмета расчета (ФФД 1.2):
0 – Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами;
…….
255 – Применяется при использовании иных единиц измерения
Скажем продаем ботинки или одежду. Что в этот тэг записывать?
52 — 12.10.21 — 10:18
(51) записывать 0.
53 — 12.10.21 — 10:20
(50) А если товар не маркируемый записываем 1? Потому что 31 и 33 это всё для маркируемого
54 — 12.10.21 — 10:21
(52) это также подходит и к немаркируемому товару?
55 — 12.10.21 — 10:24
Действительно написано, что не передача тэгов 1212 и 2108 рассматривается как административное правонарушение. Но если это немаркируемый товар. Тэги эти тоже обязательны для передачи или нет?
56 — 12.10.21 — 10:26
(53) 1, если это не подакцизный товар. Здесь подробнее https://disk.yandex.ru/i/wx7PyIbo3U57Vh
57 — 12.10.21 — 10:27
(55) Да, тоже.
58 — 12.10.21 — 10:27
59 — 12.10.21 — 10:29
Разобрался. Спасибо!
60 — 12.10.21 — 16:53
глФР.BarCode = qr;
глФР.ItemStatus = 1;
глФР.FNCheckItemBarcode();
Если я вот так сделаю первый раз при подключении к ККМ, то повторно уже не получается, выдает ошибку что не верные реквизиты. Как сделать так, что бы при одном сеансе связи с ККМ данный способ проверки работал всегда, может надо какую то команду подать, что то типа очистки буфера проверки, вроде как то так она называется.

61 — 12.10.21 — 21:12
(60) После всего этого делаете вот это:
глФР.FNAcceptMarkingCode();
глФР.Barcode = qr;
глФР.FNSendItemBarcode();
глФР.FNCloseCheckEx();
62 — 12.10.21 — 21:14
То есть это в цикле перебора табличной части
глФР.FNAcceptMarkingCode();
глФР.Barcode = qr;
глФР.FNSendItemBarcode();
А в конце при пробития чека
глФР.FNCloseCheckEx();
63 — 12.10.21 — 22:55
(60) А разве при закрытии чека глФР.FNCloseCheckEx(); буфер ККМ не должен очищаться сам?
И для чего нужна такая команда: FNConfirmNotificationRead ФНПодтвердитьВыгрузкуУведомления
Подтверждение выгрузки уведомления (ФФД 1.2)
У меня пока не обновлена прошивка, поэтому не могу проверить. Возможно victuan1 поможет.
64 — 13.10.21 — 13:25
(61) (62) (63) в тесте драйвера все работает, смотрел лог файл, ничем вроде не отличается мой алгоритм работы и алгоритм тестдрайвера. И вот как раз таки в нем все работает, а в моем ПО не хочет. Тут тогда другой вопрос встает. Как в цикле перебирать FNCheckItemBarcode() если после первой проверки у меня вылетает ошибка на втором. Что то мне вот этот момент не понятен
65 — 13.10.21 — 15:30
(64) Покажите код формирования чека.
66 — 14.10.21 — 16:24
(65) я чек не формирую, я сначала в программе просто пытаюсь получить результат проверки марки
FR.Password=30;
FR.ItemStatus=1;
FR.CheckItemMode=0;
FR.Barcode=СокрЛП(ДанныеДляПроверки);
FR.FNCheckItemBarcode();
Если ОтветДрайвера(,»Проверка КМ»)<>0 Тогда
Возврат;
КонецЕсли;
Естественно сначала подключаюсь к ККМ. Так вот…первый раз код проходит, второй раз уже выдает ошибку не верные реквизиты. Если переподключиться к ККМ, то проверка первый раз опять проходит, ну а на второй опять ошибка
67 — 15.10.21 — 13:56
Попробуйте для штучного товара:
FR.Password=30;
Если ВидОперации=Перечисление.ВидыОперацийЧекККМ.Чек Тогда
FR.CheckType=0;
ИначеЕсли ВидОперации=Перечисление.ВидыОперацийЧекККМ.ЧекНаВозврат Тогда
FR.CheckType=2;
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку()>0 Цикл
FR.BarCode = СтрЗаменить(КМ,»<0x1D>»,Симв(29));; // реквизит табличной части;
FR.ItemStatus = 1; // Планируемый статус — штучный товар, Реализован
FR.CheckItemMode = 0; //полная проверка (локальная проверка ФН и проверка через ОФД
FR.FNCheckItemBarcode(); //Проверка штрих кода GS1
//Выводим данные проверки для контроля. Здесь же можно указать проверку условия принятия или не принятия кассиром решения об пробитии каждой позиции чека
Сообщить(«Статус локальной проверки: «+FR.CheckItemLocalResult);
Сообщить(«Причина, по которой не была проведена локальная проверка: «+FR.CheckItemLocalError);
Сообщить(«Распознанный тип КМ, (Тег 2100 ФФД): «+FR.MarkingType2);
Сообщить(«Код ответа ФН на команду онлайн-проверки: «+FR.KMServerErrorCode);
Сообщить(«Результат проверки КМ. (Тег 2106 ФФД): » + FR.KMServerCheckingStatus);
FR.FNAcceptMarkingCode(); //принять введеный код марки
FR.StringForPrinting=печнаим;
FR.Quantity=1;
FR.Tax1=0;
FR.Price=Окр(Сумма/Количество, 2);
FR.PaymentTypeSign=4;
FR.PaymentItemSign=31; //1-если не маркируемый и 33, если маркируемый и акцизный, 31 — маркируем безакцизный
FR.MeasureUnit = 0;
// Передаем Номер ГТД согласно формату ФФД 1.1
FR.TagNumber = 1231;
FR.TagType = 7;
FR.TagValueStr = СокрЛП(Строка(Номенклатура.НомерГТД.Наименование));
FR.FNSendTagOperation();
// Передаем Код страны происхождения согласно формату ФФД 1.1
FR.TagNumber = 1230;
FR.TagType = 7;
FR.TagValueStr = СокрЛП(Строка(Номенклатура.СтранаПроисхождения.Код));
FR.FNSendTagOperation();
FR.FNOperation();
FR.BarCode = СтрЗаменить(КМ,»<0x1D>»,Симв(29));; // реквизит табличной части;
FR.FNSendItemBarcode(); //привязываем марку к позиции
КонецЦикла;
//Отправляем чек на электронную почту
Если СокрЛП(ТелПочта)<>»» Тогда
FR.CustomerEmail=СокрЛП(ТелПочта);
FR.FNSendCustomerEmail();
КонецЕсли;
// Закрытие чека
FR.Password=30;
FR.StringForPrinting=»================================================»;
FR.FNCloseCheckEx();
ОтветДрайвера();
Сообщить(«Результат: «+Строка(Result));
Сообщить(«Ошибка параметра: «+Строка(ОшибкаПараметра));
68 — 15.10.21 — 13:58
печнаим — это наименование Номенклатуры
69 — 15.10.21 — 15:11
У меня все работает для штучного товара
пробовал на сигаретах и автошинах, до обуви руки не дошли
Конфигураци 1С самописная
Функция ОперацияПроверитьКодМаркировки(Объект, НомерЛУ, Пароль, СтруктураКМ)
Результат = «»;
Если Объект = Неопределено Тогда
Результат = «- Торговое оборудование не подключено.»;
СтруктураКМ.КодПроверен = 3;
СтруктураКМ.ОтветПроверки = «- Проверка КМ не выполнена.»;
Возврат Результат;
КонецЕсли;
Объект.LDNumber = НомерЛУ;
Объект.SetActiveLD();
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
СтруктураКМ.КодПроверен = 3;
СтруктураКМ.ОтветПроверки = «- Проверка КМ не выполнена.»;
Возврат Результат;
КонецЕсли;
Объект.Password = Пароль;
Объект.Connect();
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
СтруктураКМ.КодПроверен = 3;
СтруктураКМ.ОтветПроверки = «- Проверка КМ не выполнена.»;
Возврат Результат;
КонецЕсли;
Объект.GetDeviceMetrics();
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
Объект.Disconnect();
СтруктураКМ.КодПроверен = 3;
СтруктураКМ.ОтветПроверки = «- Проверка КМ не выполнена.»;
Возврат Результат;
КонецЕсли;
Модель = Объект.UModel; //Объект.УМодельУстройства
мРезультатПроверкиСервером = Неопределено;
мСтатусПроверкиСервером = Неопределено;
//************************************************************
Объект.Password = Пароль;
Объект.BarCode = СтруктураКМ.КодМаркировки; //Код записывается как читается со сканера с символом разделителем символ(29)
Объект.ItemStatus = СтруктураКМ.СтатусОперации; // 1 продажа, 3 — возврат
Объект.CheckItemMode = 0;
Объект.TLVDataHEX = «»;
Объект.FNCheckItemBarcode();
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
Объект.FNDeclineMarkingCode(); //отвергнуть код маркировки
СтруктураКМ.КодПроверен = 3;
СтруктураКМ.ОтветПроверки = «- Проверка КМ не выполнена. Код отвергнут.»;
Объект.Disconnect();
Возврат Результат;
КонецЕсли;
мСтатусПроверкиСервером = Объект.KMServerErrorCode;
мРезультатПроверкиСервером = Объект.KMServerCheckingStatus;
Если мРезультатПроверкиСервером = 15 Тогда
СтруктураКМ.КодПроверен = 0; // 0- М+ 1- М 2- М-
СтруктураКМ.ОтветПроверки = «»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 7 Тогда
СтруктураКМ.КодПроверен = 2;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ некорректен»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 5 Тогда
СтруктураКМ.КодПроверен = 2;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена с отрицательным результатом, статус товара у ОИСМ некорректен»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 19 Тогда
СтруктураКМ.КодПроверен = 1;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена в ФН с положительным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 17 Тогда
СтруктураКМ.КодПроверен = 2;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 16 Тогда
СтруктураКМ.КодПроверен = 1;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ не выполнена, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 3 Тогда
СтруктураКМ.КодПроверен = 1;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена с положительным результатом, статус товара ОИСМ не проверен»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 1 Тогда
СтруктураКМ.КодПроверен = 2;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
ИначеЕсли мРезультатПроверкиСервером = 0 Тогда
СтруктураКМ.КодПроверен = 1;
СтруктураКМ.ОтветПроверки = «Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен»;
Объект.FNAcceptMarkingCode(); //принять код маркировки
Иначе
СтруктураКМ.КодПроверен = 3;
СтруктураКМ.ОтветПроверки = «- Проверка не выполнена. Код отвергнут.»;
Объект.FNDeclineMarkingCode(); //отвергнуть код маркировки
КонецЕсли;
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
СтруктураКМ.ОтветПроверки = «- Проверка не выполнена. Код отвергнут.»;
СтруктураКМ.КодПроверен = 3;
Объект.Disconnect();
Возврат Результат;
КонецЕсли;
Объект.Password = Пароль;
Объект.GetECRStatus();
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
КонецЕсли;
Объект.Disconnect();
Возврат Результат;
КонецФункции
70 — 15.10.21 — 15:39
Всем большое спасибо, в выходные поиграюсь.
71 — 15.10.21 — 15:43
(69) Подскажите а зачем вы после проверки каждого кода освобождвете ком порт
Объект.Disconnect();
72 — 15.10.21 — 15:43
(70) Напишите что получилось. На следующей неделе тоже ожидает после перепрошивки…
73 — 15.10.21 — 16:55
(71) Если честно то лет 15 так работает и не знаю.
74 — 15.10.21 — 16:57
(71) У нас с 2007 года Штрихи стоят поэтому по многим моментам внимание не заострял. Работает и ладно.
75 — 15.10.21 — 18:10
(71) Есть 2 варианта работы с ККМ, ну это как по мне….
1 — При запуске кассового ПО подключаемся к ККМ и не отключаемся до завершения работы кассового ПО
2 — При попытке пробить чек из кассового ПО подключаемся к кассе и после завершения чека отключаемся от неё. Соответственно тоже самое для Z X отчетов и всяких там манипуляций с кассой.
Тут сам каждый для себя выбирает, как ему лучше работать. Например если в магазине, где поток народа практически всегда, соответственно лучше соединиться с кассой и занять порт на все время работы программы, а если у тебя дай бог раз в пол часа клиент, то тут наверно лучше и освобождать порт. На сколько мне известно, в 1С Розница как раз таки используется второй вариант по умолчанию. Т.е. после манипуляций с кассой порт освобождается
76 — 20.10.21 — 20:57
(60) Подскажи, пожалуйста, удалось побороть ошибку «Неразрешенные реквизиты»? Такая же ситуация, для следующей проверки.
77 — 21.10.21 — 15:27
(76) Я приболел, нет возможности поковырять кассу, надеюсь на следующей неделе доберусь.
78 — 21.10.21 — 16:36
Скорейшего выздоровления! Коллеги, возможно у кого-то есть мысли по этому поводу? Суть в том, что последовательный вызов FNCheckItemBarcode() для второй марки выдаёт ошибку «Неразрешенные реквизиты». На сколько я понял, эту ошибку возвращает ФН. Как и писали коллеги выше, если переподключиться к драйверу, пропускает. По общей логике, я планирую пройтись по списку марок и принять или отвергнуть, и только затем перейти к регистрации позиций и закрытия чека.
79 — 22.10.21 — 14:34
(78) Какая версия драйвера используется? У меня 874? но уже есть 883, может там уже это исправлено, посмотреть можно там http://doc.shtrih-m.ru/, кстати там есть и примеры для маркировки ФФД 1.2, но они мне не помогли, либо я что то не углядел.
80 — 22.10.21 — 14:41
Почитал сейчас список изменений, то что стоит у меня 874 и текущая 883 как раз есть изменения и исправления при работе с КМ. Так что можно попробовать обновить драйвер до последней версии. Если будет возможность, отпишитесь про результат
81 — 22.10.21 — 15:08
(78) На текущий момент стало поступать достаточно много вопросов связанных с причинами возникновения ошибки 11: «Неразрешенные реквизиты» в ответ на команду проверки кода маркировки (метод FNCheckItemBarcode, реализующий команду FF61h). Не смотря на то, что данная ошибки не декларирована в протоколе ФН под ФФД1.2, но она возникает. Причина ошибки в том, что при заполнении реквизитов, необходимых для проверки кода маркировки, пользователь (разработчик ПО) не заполняет все необходимые поля, а именно свойство TLVDataHex. Если не реализуется дробное кол-во предмета расчета, то в данное свойство нужно в явном виде передавать «пустую строку». Если этого не сделать, то в него будет внесен ответ от сервера ОИСМ от предыдущей проверки кода маркировки.
82 — 22.10.21 — 15:09
(78) Если вы брали за основу мой код, то если у вас не дробное количество, то перед FR.FNCheckItemBarcode(); необходимо FR.TLVDataHEX = «»;
83 — 22.10.21 — 19:01
(82) сделал предварительную обработку, помогло FR.TLVDataHEX = «», спасибо )))
84 — 22.10.21 — 19:38
а есть ли у кого-нибудь описание CheckItemLocalError для ККМ?
85 — 22.10.21 — 20:36
(84)
CheckItemLocalError ОшибкаЛокальнойПроверки
Тип: Integer / Целое
Причина, по которой не была проведена локальная проверка
Возможные значения:
0 – КМ проверен в ФН 1 – КМ данного типа не подлежит проверки в ФН 2 – ФН не содержит ключ проверки кода проверки этого КМ 3 – Проверка невозможна, так как отсутствуют идентификаторы применения GS1 91 и / или 92 или их формат неверный 4 –Внутренняя ошибка в ФН при проверке этого КМ
Список возвращаемых ошибок
https://docs.google.com/spreadsheets/d/19Mn5syH70XwFdg6Pe2fhYM17SNHGuOJDvQEQXHxSz54/edit#gid=0
86 — 22.10.21 — 21:10
(85) я почему то у себя в руководстве программиста не могу найти данное описание, может есть ссылка, от куда взята данная информация, у меня наверно старая версия…хотя скачивал «типа» последнюю с сайта штриха
87 — 22.10.21 — 21:37
(85) где-то на сайте штриха скачивал уже не помню: документация Руководство программиста от 02.03.2021
88 — 22.10.21 — 22:09
у меня почему то от июня 2020 и новее не могу найти
Можно мне на почту скинуть документацию? В профиле адрес есть
89 — 22.10.21 — 22:38
90 — 22.10.21 — 22:39
91 — 23.10.21 — 06:46
(90) Но методов нового драйвера (5.16) в ней так и нет, например, метода очистки буфера КМ — FNMarkingClearBuffer.
92 — 25.10.21 — 09:50
(80) Версия тоже 874. Помогло TLVDataHEX = «». На новой сборке драйвера пока не пробовал. Но постараюсь проверить позже.
93 — 25.10.21 — 16:05
Совершил тестовую продажу, вроде все удачно, на чеке написалось М+, только не понятно…..напротив данной буквы еще какие то 4 цифры,что это такое?
94 — 25.10.21 — 16:18
+(93) пробовал несколько позиций маркированных в одном чеке, все сработало. Проверял на молочке и на табаке. Немного не понятно как с алкоголем быть? Надо ли посылать данные по нему, или он не считается маркированным?
95 — 25.10.21 — 18:36
(94) Тем, кто продает шубы, изделия из натурального меха и алкоголь — на эти группы товаров ФФД 1.2 не распространяется. Вроде так.
96 — 26.10.21 — 07:10
97 — 26.10.21 — 07:11
(94) Алкоголь не считается маркированным СИ (средствами идентификации), поэтому его передаем только в УТМ.
98 — 26.10.21 — 07:12
(95) Также как в ФФД 1.05 и 1.1, их выбытие отражают не через чек ККТ.
99 — 26.10.21 — 11:33
(93) Подскажите как добиться появления этой волшебной буквы [М+] на чеке? У меня марка проходит проверку, в ОФД отправляется, в ЦРПТ выбывает из оборота, а буквы на чеке все равно нет. Может в таблицах ФР что-то нужно настроить?
100 — 26.10.21 — 11:43
таблица 17 поле 25 вроде как, печать тэгов
|
Артем Лабузный Заглянувший Сообщений: 17 |
#126
28.12.2022 15:17:39
Смысла нет, т.к. в ККТ отправляется значение КМ из регистра, записанное ранее при оприходовании (во время сверки КМ), а не считанное сканером во время продажи. |
||
|
#127
28.12.2022 18:43:13 Хочу заметить, что после очистки регистра «Коды маркировки», КМ корректно считываются и проходят проверку средствами ККТ даже при работе сканера ШК в режиме клавиатуры. В итоге вернул сканер в режим клавиатуры, т.к. имеющийся АТОЛ SB2109 BT плохо работает в режиме эмуляции COM-порта. Полагаю, была проблема в релизе 6.0.37.13, когда КМ некорректно записались регистр, ну а после я столкнулся с последствиями этого даже после обновления на актуальный релиз. Но осталась другая проблема с проверкой КМ на ККТ — иногда появляется сообщение: «Проверка КП КМ не выполнена, статус товара ОИСМ не проверен» и далее уже «При выполнении операции произошла ошибка: Процедура проверки КМ уже запущена» — эта ошибка возникает при последующих проверках, пока не очистишь буфер КМ на ККТ, но не всегда помогает. Может быть есть способы борьбы с этим? В этом случае проблема не в сканере ШК, т.к. КМ считывается 1 раз, и после нескольких попыток пробить чек (с очисткой буфера на ККТ между попытками), КМ проходят валидацию и чек все-таки пробивается. |
|
|
#128
29.12.2022 09:46:29 Артем, добрый день, ответ сможем дать после анализа лога фискального регистратора. Изменено: Светлана Сулименко — 29.12.2022 09:46:39 |
|
|
Данил Василига Посетитель Сообщений: 636 |
#129
29.12.2022 10:44:23
Добрый день. У нас такое тоже иногда бывает. Проблема может уйти через какое-то время. А если не уходит — отключаем питание у ФР и включаем обратно. И чек с маркировкой успешно пробивается Изменено: Данил Василига — 29.12.2022 10:45:43 |
||
|
Артем Лабузный Заглянувший Сообщений: 17 |
#130
29.12.2022 13:39:42 Светлана Сулименко, перед отправкой решил заглянуть в лог ККТ и обнаружил, что наряду с корректными КМ, стали попадаться также КМ, в которых вместо разделителя GS опять содержится комбинация «x1d». Стал разбираться и выяснил, что некорректные КМ записываются в регистр «Коды маркировки» при выполнении сопоставления КМ из документа «Поступление товаров». При сканировании марки в документах «Реализация товаров» и «Чек на оплату» КМ в регистр записывается корректный с разделителями GS, но при условии, что в регистре КМ с таким серийным номером отсутствует. Другой момент: если при сопоставлении КМ в поступлении товаров вручную ввести марку без криптохвоста, то сопоставление в документе произойдет без ошибок, но в регистре запись зафиксируется в обрезанном виде и такую марку будет невозможно реализовать посредством ККТ, несмотря на то, что в реализации товаров или чеке на оплату будет считан полный КМ сканером ШК перед пробитием чека. Единственный пока вариант — вручную удалить некорректную запись из регистра, после чего считать марку сканером ШК в документе реализация товаров или чек на оплату, чтобы в регистр попала корректная запись. Очевидно, что проблема с появление комбинации «x1d» в регистре «Коды маркировки» это не проблема сканера, а ошибка в алгоритме в процессе парсинга и разложения КМ при сопоставлении КМ в документе «Поступление товаров», т.к. на том же оборудовании в документах «Реализация товаров» и «Чек на оплату» такой проблемы не наблюдается. Да и сама комбинация «x1d» передается не сканером, а используется в конфигурации в процессе обработки КМ:
Пока разработчики не исправят данную ошибку, вижу такое решение: не сопоставлять КМ в документе «Поступление товаров». |
|
|
Артем Лабузный Заглянувший Сообщений: 17 |
#131
29.12.2022 14:40:22
Добрый день, лог отправил, в нём как раз несколько неудачных попыток проверки 4х КМ и в итоге успешная проверка и пробитие чека. |
||
|
Артем Лабузный Заглянувший Сообщений: 17 |
#132
29.12.2022 14:41:26
Добрый день, к сожалению, в моем случае это бывает часто и отключение питания и очистка буфера помогает не с первого раза. |
||||
|
#133
29.12.2022 16:59:22 Артем, рекомендуем использовать наш драйвер Драйвер ККТ АТОЛ ДТО10 для 1С:БПО 3.X NativeAP . Более подробный ответ предоставлен Вам по почте. |
|
|
#134
29.12.2022 20:59:59 Светлана Сулименко, с этим драйвером не могу пробить чек, появляется ошибка: При выполнении операции произошла ошибка:»ККТ не зарегистрирована с указанной системой налогообложения.». Пришлось вернуться на стандартный драйвер. ККТ фискализирован с СНО УСН доход минус расход, в учетной политике организации выставлено также. |
|
|
#135
30.12.2022 10:12:36 Артем, с драйвером никакой ошибки нет. Перед началом работы с другим драйвером ФР Вы делали закрытие кассовой смены на фискальном регистраторе, затем открытие новое? |
|
|
#136
30.12.2022 14:40:06 Светлана Сулименко, нет, заменил оборудование в документе «Кассовая смена». Сейчас сделал закрытие смены на стандартном драйвере и открыл уже под новым — больше на СНО не ругается. Спасибо. Будем наблюдать, но на первый взгляд работает стабильнее и пока не было ошибок при валидации КМ на ККТ при использовании драйвера от РАРУС. Остался открытым вопрос по некорректной записи КМ в регистр «Коды маркировки» при сканировании сканером ШК в процессе сверки КМ из документа «Поступление товаров». |
|
|
Светлана Сулименко Посетитель Сообщений: 8672 |
#137
30.12.2022 17:06:25
уточните, как запрограммирован сканер при таком сканировании? |
||
|
Артем Лабузный Заглянувший Сообщений: 17 |
#138
30.12.2022 19:24:43
Светлана, сканер сейчас работает в режиме клавиатуры, я понимаю, что это как как красная тряпка, но это не имеет значения, т.к. в документах «Реализация товаров» и «Чек на оплату» при считывании КМ тем же сканером и при тех же настройках в регистре «Коды маркировки» записывается корректная запись, т.е. мы получаем разный результат записи в регистр при сканировании в поступлении товаров и в реализации товаров. Причем эта же модель сканера без каких-либо проблем работает с кодами маркировки шин в режиме клавиатуры в других конфигурациях 1С, например в УНФ. Сейчас я вышел из ситуации, запретив пользователям производить сверку КМ в документе «Поступление товаров» и проблема исчезла. Но не хотелось бы лишаться возможности производить сверку КМ пришедших по ЭДО и фактически нанесенных на товар в момент оприходования. |
||
|
#139
09.01.2023 10:23:20 Артем, для корректной сверки кодов маркировки сканер не должен быть клавиатурным. |
|
|
#140
13.01.2023 10:26:01 Светлана, я снова подключил сканер в режиме COM-порта, но ничего не поменялось. А все потому, что в модуле формы обработки «Сопоставление кодов маркировки» при обработке события «ScanData» вызывается процедура ШтрихкодированиеКлиент.ЗаменитьНаЭкранированныйСимвол(ШтрихКод), которая вместо GS кода добавляет комбинацию «x1d». И уже преобразованная строка конвертируется в Base64 и записывается в регистр. Как мне кажется, для хранения преобразованного штрихкода с «экраном GS» для последующей обработки и штрихкода, который будет записан в регистр лучше использовать разные переменные. При этом в документах «Реализация товаров» и «Чек на оплату» считанный штрихкод не подвергается экранированию символа GS до конвертации в Base64 и записи в регистр (при условии, что КМ отсутствует в регистре, иначе запись не обновится). Правда в этих документах тоже не всё идеально, т.к. за каждое считывание сканером ШК попытка записи в регистр происходит дважды. При этом, если в первый раз ШК отправляется полный, то во второй раз в регистр зачем-то производится попытка записи укороченного ШК (без криптохвоста), которого вообще не должно быть в регистре. Но т.к. перед записью в регистр производится проверка на наличие уже имеющейся записи, то повторные попытки записи игнорируются и в итоге в регистре имеем корректный КМ, при условии, что мы его не считывали сканером ШК ранее. |
|
|
#141
13.01.2023 11:10:25 Артем, добрый день, вопрос требует разбирательства, ответ будет дан позже. |
|
|
#142
13.01.2023 11:21:23 Светлана, спасибо! Кстати, в той же обработке «Сопоставление кодов маркировки» на форме присутствует кнопка «Ввести код маркировки», которой иногда пользовались до перехода на ФФД 1.2 вставляя туда КМ без криптохвоста для быстрой сверки без сканера ШК. С переходом на ФФД 1.2 эта кнопка теперь источник проблем, т.к. при её использовании в регистр всегда будет записан некорректный КМ, который не пройдет проверку средствами ККТ. И эту ситуацию невозможно исправить штатными средствами, т.к. регистр по умолчанию закрыт от пользователей, а первоначально записанный в регистр КМ не обновляется при последующих считываниях сканером ШК. Тут или кнопку бы убрать или обновлять запись в регистре при попытке сохранить отличающееся от имеющегося в ресурсе «КодМаркировкиBASE64» значения (но тогда нужно исключить повторные попытки записи в регистр некорректных значений КМ в документах «Реализация товаров» и «Чек на оплату» — данную ситуацию описал в предыдущем сообщении). |
|
|
Данил Василига Посетитель Сообщений: 636 |
#143
31.01.2023 07:25:47
Доброе утро. Когда ошибка будет исправлена в Альфа-Авто 6.1? У нас сканер в режиме COM-порта (как рекомендовали в техподдержке через email), документы по шинам приходят в электронном УПД через 1С-ЭДО, в документе «Поступление товаров» делается «сопоставление кодов маркировки». Далее в документе «Реализация товаров» через сканер в режиме COM-порта сканируются коды маркировки, проверяется статус по данным «Честного знака». Далее кассир пробивает кассовый чек документом «Чек на оплату» — в этот момент коды маркировки получают отрицательный результат проверки. Уже надоедает постоянно удалять коды из регистра при отрицательных результатах проверки у кассиров. |
||
|
#144
31.01.2023 09:21:23 Данил Василига, ошибка исправлена в будущем релизе 6,1,03. |
|
|
Данил Василига Посетитель Сообщений: 636 |
#145
31.01.2023 10:04:56
Можно получить исправление в виде расширения? Когда ждать выхода релиза 6.1.03? |
||