Добавление маркированных товаров
Внимание! Для добавления в чековый буфер маркированных товаров ККТ должна быть зарегистрирована для работы с маркированными товарами
ОИСМ — это оператор информационных систем маркировки, который осуществляет мониторинг всех продаваемых товаров, подлежащих обязательной маркировке.
После сканирования КМ (код маркировки) он будет передан ФН для локальной проверки (при наличии технической возможности ФН). В случае отрицательного результата (если ККТ зарегистрирована в автономном режиме) на дисплее кассы появится сообщение:
ОТВЕТ ФН ОТРИЦ ПРОДОЛЖ? [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
Почему на чеке печатается [М-]
- Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен
- Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
- Проверка КП КМ выполнена с отрицательным результатом, статус товара у ОИСМ некорректен
- Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ некорректен
Иными словами, статус [М-] в чеке печатается в том случае, если одна или все проверки были выполнены с отрицательным результатом
Почему на чеке печатается просто [М]
- Проверка КП КМ не выполнена в ФН, статус товара ОИСМ не проверен
- Проверка КП КМ выполнена в ФН с положительным результатом , статус товара ОИСМ не проверен
- Проверка КП КМ не выполнена в ФН, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
- Проверка КП КМ выполнена в ФН с положительным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
Иными словами, статус [М] в чеке печатается в том случае, если одна или все проверки не были выполнены. То есть они были пропущены. Например, запрос на проверку был передан в ОИСМ, но не был получен ответ по причине отсутствия интернет соединения.
Почему на чеке печатается [М+]
- Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ корректен
Иными словами, статус [М+] в чеке печатается в том случае, если код маркировки прошёл все существующие проверки
kupec
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
kupec
2 — 05.10.21 — 12:33
0104607004892936215yQnIO #29 93FXLQ #13
т.е. вот от этого ШК отделяю первые 2 символа — 01 и остальное как раз и получается 14 символьный GTIN?
Злопчинский
3 — 05.10.21 — 12:34
типа да
kupec
4 — 05.10.21 — 12:38
ну и получается тогда что после откидываем 21 и перед #29 первые символы (6 штук) это и есть серийник?
victuan1
5 — 05.10.21 — 17:22
(0) Я делал. Для какой версии ФФД нужно?
victuan1
6 — 05.10.21 — 17:24
ГТИН всегда 14 символов (для всех товарных групп), а Серийник у молочки всегда 6 символов:
«01 + GTIN (14 chars) + 21 + СерийныйНомер (6 chars) + 93 + КодПроверки (4 chars)»
victuan1
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.
kupec
8 — 06.10.21 — 10:16
(5) сейчас все кассы 1.05 или 1.1, в течении дня сегодня будут менять на одной из касс на 1.2, так что на данный момент актально для двух вариантов.
NorthWind
9 — 06.10.21 — 10:22
(2) 0104607004892936215yQnIO #29 93FXLQ #13
дело в том, что если у вас AI фиксированного размера (а 01, если я верно помню, всегда 14, т.е. фиксированная), то FNC1 необязателен.
Так что в данном случае у вас
(01)04607004892936
(21)5yQnIO #29 93FXLQ #13
NorthWind
10 — 06.10.21 — 10:23
в молочке, наверно, еще дата изготовления как минимум должна быть. Тут только EAN13 и серийник от честного знака…
victuan1
11 — 07.10.21 — 06:33
(10) Нет, не будет даты изготовления в КМ. Отказались от нее в ЧЗ.
victuan1
12 — 07.10.21 — 07:07
(9) Не совсем так:
Если ФФД 1.05/1.1 то в ОФД должно уйти: 4607004892936 5yQnIO
Если ФФД 1.2, то в ОФД уходит: 01 04607004892936 215yQnIO #29 93FXLQ
Буквально в конце сентября я прошел проверочные испытания по молочке своего ПО в Честном ЗНАКе именно по этому сценарию (по другим сценариям мое ПО не аккредитовали бы).
kupec
13 — 08.10.21 — 10:05
(12) каким же образом мне используя 1.2 передать тэги? Сейчас сделано вот так
FR.Password=ПарольККМ(Кассир);
//Тип маркировки товара.
FR.MarkingType=17485;
//Код маркировки товара.
FR.GTIN=Лев(ИДМаркировка,14);
FR.SerialNumber=Сред(СокрЛП(ИДМаркировка),15,7);
FR.FNSendItemCodeData();
Но почему то теперь это не проходит, ругается драйвер
Код ошибки 51 Некорректные параметры в команде
victuan1
14 — 08.10.21 — 11:40
(13) Эти методы для ФФД 1.05/1.1.
Для 1.2 всё по другому.
victuan1
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=
Это для Атола, но у Штрих-м аналогично (т.к ФН-М тот же самый).
kupec
16 — 08.10.21 — 11:48
Правильно ли я понимаю, что перед тем как продать маркированный товар необходимо его сначала проверить через драйвер. И после получения ответа только совершать передачу тэга?
victuan1
17 — 08.10.21 — 11:48
У меня несколько дней ушло только на переписку с техподдержкой Штрих-М, чтобы понять как всё это увязать в коде для их драйвера. Некоторые вещи не документированы в их документации.
Например, кто знает как пользоваться методом FNUserAttribute? Манулов по этому методу ноль.
victuan1
18 — 08.10.21 — 11:48
(16) Правильно.
kupec
19 — 08.10.21 — 11:50
(18) т.е. без проверки вообще никак не обойтись?
victuan1
20 — 08.10.21 — 11:54
(19) Никак, т.к. железно зашито на уровне ФН-М. Я пробовал.
kupec
21 — 08.10.21 — 12:27
ну вот допустим считанный код вот такой
0104601216012779215XIPBe<0x1D>931eil
FNCheckItemBarcode
Что передавать в BarCode ? Весь целиком или только GTIN?
kupec
22 — 08.10.21 — 12:31
я что не пробую проверять у меня на все один ответ
Статус локальной проверки : 0
«код маркировки не может быть проверен фискальным накопителем с использованием ключа проверки КП»
Результат локальной проверки : 1, КМ данного типа не подлежит проверке в ФН
Распознанный тип КМ : 255, неизвестное значение
kupec
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
Вот что удалось получить
victuan1
24 — 08.10.21 — 14:09
(21) Весь целиком, а последовательность <0x1D> нужно перед этим заменить на символ с кодом 29:
КМ = СтрЗаменить(КМ,»<0x1D>»,Симв(29));
(23) Результат проверки КМ : 15
означает, что всё хорошо, [М+]
kupec
25 — 08.10.21 — 14:22
(24) каким образом читать данные в ПО? Какие там команды или атрибуты? Где про это можно почитать? Что то руководство программиста они давненько не обновляли
kupec
26 — 08.10.21 — 14:29
(25) а если у меня со сканера ШК не приходит такая последовательность? Это критично или нет?
victuan1
27 — 08.10.21 — 14:32
(25) https://exam.shtrih-m-partners.ru/base/ — Общее для ККТ — драйвера. Там же обновленная документация.
(26) Какая приходит?
kupec
28 — 08.10.21 — 15:05
Приходит например вот
0104601216012779215XIPBe<0x1D>931eil
kupec
29 — 08.10.21 — 15:07
(27) руководство прошлогоднее от 16 ноября 2020
victuan1
30 — 08.10.21 — 15:49
(29) Я по нему и работал. Новее нет.
(28) См. (24)
kupec
31 — 08.10.21 — 15:52
А как же теперь передавать данные о ШК ЕГАИС? У меня тоже вылезает ошибка 51, некорректные парамемтры в команде
victuan1
32 — 08.10.21 — 15:53
(31) ШК ЕГАИС не передаем в ОФД (и никогда не нужно было передавать в ОФД).
Их нужно передавать через УТМ запросом версии Cheque или ChequeV3.
victuan1
33 — 08.10.21 — 15:54
kupec
34 — 08.10.21 — 16:00
Драйвер есть последний, к нему описания нет или я слепой и не могу найти
victuan1
35 — 08.10.21 — 16:07
(34) Я не пользовался описанием к новому драйверу — не подскажу где искать.
brainguard
36 — 08.10.21 — 16:09
(34) К последнему драйверу подходит предыдущее описание. Там ничего не меняли, только ошибки фиксили
kupec
37 — 08.10.21 — 16:42
(36) Поделитесь пожалуйста мне на почту руководством, которое у вас есть. Заранее благодарю
victuan1
38 — 08.10.21 — 17:08
(37) Я вам дал ссылку в (27) — берите оттуда.
arian_
39 — 11.10.21 — 18:06
Кто-нибудь уже запустил для 1с 7.7 передачу маркированного товара для ФФД 1.2. Получилось у кого-нибудь?
Злопчинский
40 — 11.10.21 — 18:22
(39) а шо?
arian_
41 — 11.10.21 — 18:30
(40) Хотел узнать какую версию драйвера использовали 4.15 или 5.16? И куда теперь криптохвост добавлять в SerialNumber или какой то отдельный параметр?
victuan1
42 — 12.10.21 — 05:48
(39) Получилось.
(41) На обоих версиях драйверов работает.
«И куда теперь криптохвост добавлять в SerialNumber или какой то отдельный параметр?» У-у, как запущено… а текущую тему прочитать с начала, не судьба? В (27) ссылка откуда скачать документацию по Штрих-М.
arian_
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 необходимо еще передать в ККМ или этого достаточно для того, чтобы чек пробился правильно? При условии что товар продается целыми шиуками.
victuan1
44 — 12.10.21 — 06:53
(43) Желательно еще учесть обработку ошибок и передачу меры кол-ва товара.
arian_
45 — 12.10.21 — 08:11
(44) я так понимаю передача меры количества товара имеет смысл при частичном выбытии товара. Например продаем 1 сигарету из пачки.
victuan1
46 — 12.10.21 — 09:45
(45) Я имел в виду тег 1197, он обязательный по ФФД 1.2 для любого типа товаров.
arian_
47 — 12.10.21 — 09:48
(46) Читаю изменения в ФФД 1.2 :Единица измерения предмета расчета (тег 1197) изменена на новый реквизит «мера количества предмета расчета» (тег 2108)
arian_
48 — 12.10.21 — 09:50
Тэг 1212, который для штриха PaymentItemSign. Раньше, если немаркированный товар, то просто ставили 1. а сейчас если товар не маркированный оставлять 1, а если маркированный, то 33 или он автоматом поставится, если у видит что есть КМ?
victuan1
49 — 12.10.21 — 10:08
(47) Верно, теперь это тег 2108.
victuan1
50 — 12.10.21 — 10:09
(48) Я ставлю 33 программно. Автоматом надо выбирать из двух значений 31 и 33, думаю автомат не сработает.
arian_
51 — 12.10.21 — 10:15
(49) Так вот я не пойму в документации написано: MeasureUnit Мера количества предмета расчета (ФФД 1.2):
0 – Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами;
…….
255 – Применяется при использовании иных единиц измерения
Скажем продаем ботинки или одежду. Что в этот тэг записывать?
victuan1
52 — 12.10.21 — 10:18
(51) записывать 0.
arian_
53 — 12.10.21 — 10:20
(50) А если товар не маркируемый записываем 1? Потому что 31 и 33 это всё для маркируемого
arian_
54 — 12.10.21 — 10:21
(52) это также подходит и к немаркируемому товару?
arian_
55 — 12.10.21 — 10:24
Действительно написано, что не передача тэгов 1212 и 2108 рассматривается как административное правонарушение. Но если это немаркируемый товар. Тэги эти тоже обязательны для передачи или нет?
victuan1
56 — 12.10.21 — 10:26
(53) 1, если это не подакцизный товар. Здесь подробнее https://disk.yandex.ru/i/wx7PyIbo3U57Vh
victuan1
57 — 12.10.21 — 10:27
(55) Да, тоже.
victuan1
58 — 12.10.21 — 10:27
arian_
59 — 12.10.21 — 10:29
Разобрался. Спасибо!
kupec
60 — 12.10.21 — 16:53
глФР.BarCode = qr;
глФР.ItemStatus = 1;
глФР.FNCheckItemBarcode();
Если я вот так сделаю первый раз при подключении к ККМ, то повторно уже не получается, выдает ошибку что не верные реквизиты. Как сделать так, что бы при одном сеансе связи с ККМ данный способ проверки работал всегда, может надо какую то команду подать, что то типа очистки буфера проверки, вроде как то так она называется.
arian_
61 — 12.10.21 — 21:12
(60) После всего этого делаете вот это:
глФР.FNAcceptMarkingCode();
глФР.Barcode = qr;
глФР.FNSendItemBarcode();
глФР.FNCloseCheckEx();
arian_
62 — 12.10.21 — 21:14
То есть это в цикле перебора табличной части
глФР.FNAcceptMarkingCode();
глФР.Barcode = qr;
глФР.FNSendItemBarcode();
А в конце при пробития чека
глФР.FNCloseCheckEx();
arian_
63 — 12.10.21 — 22:55
(60) А разве при закрытии чека глФР.FNCloseCheckEx(); буфер ККМ не должен очищаться сам?
И для чего нужна такая команда: FNConfirmNotificationRead ФНПодтвердитьВыгрузкуУведомления
Подтверждение выгрузки уведомления (ФФД 1.2)
У меня пока не обновлена прошивка, поэтому не могу проверить. Возможно victuan1 поможет.
kupec
64 — 13.10.21 — 13:25
(61) (62) (63) в тесте драйвера все работает, смотрел лог файл, ничем вроде не отличается мой алгоритм работы и алгоритм тестдрайвера. И вот как раз таки в нем все работает, а в моем ПО не хочет. Тут тогда другой вопрос встает. Как в цикле перебирать FNCheckItemBarcode() если после первой проверки у меня вылетает ошибка на втором. Что то мне вот этот момент не понятен
arian_
65 — 13.10.21 — 15:30
(64) Покажите код формирования чека.
kupec
66 — 14.10.21 — 16:24
(65) я чек не формирую, я сначала в программе просто пытаюсь получить результат проверки марки
FR.Password=30;
FR.ItemStatus=1;
FR.CheckItemMode=0;
FR.Barcode=СокрЛП(ДанныеДляПроверки);
FR.FNCheckItemBarcode();
Если ОтветДрайвера(,»Проверка КМ»)<>0 Тогда
Возврат;
КонецЕсли;
Естественно сначала подключаюсь к ККМ. Так вот…первый раз код проходит, второй раз уже выдает ошибку не верные реквизиты. Если переподключиться к ККМ, то проверка первый раз опять проходит, ну а на второй опять ошибка
arian_
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));
Сообщить(«Ошибка параметра: «+Строка(ОшибкаПараметра));
arian_
68 — 15.10.21 — 13:58
печнаим — это наименование Номенклатуры
NikeArz
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();
Возврат Результат;
КонецФункции
kupec
70 — 15.10.21 — 15:39
Всем большое спасибо, в выходные поиграюсь.
arian_
71 — 15.10.21 — 15:43
(69) Подскажите а зачем вы после проверки каждого кода освобождвете ком порт
Объект.Disconnect();
arian_
72 — 15.10.21 — 15:43
(70) Напишите что получилось. На следующей неделе тоже ожидает после перепрошивки…
NikeArz
73 — 15.10.21 — 16:55
(71) Если честно то лет 15 так работает и не знаю.
NikeArz
74 — 15.10.21 — 16:57
(71) У нас с 2007 года Штрихи стоят поэтому по многим моментам внимание не заострял. Работает и ладно.
kupec
75 — 15.10.21 — 18:10
(71) Есть 2 варианта работы с ККМ, ну это как по мне….
1 — При запуске кассового ПО подключаемся к ККМ и не отключаемся до завершения работы кассового ПО
2 — При попытке пробить чек из кассового ПО подключаемся к кассе и после завершения чека отключаемся от неё. Соответственно тоже самое для Z X отчетов и всяких там манипуляций с кассой.
Тут сам каждый для себя выбирает, как ему лучше работать. Например если в магазине, где поток народа практически всегда, соответственно лучше соединиться с кассой и занять порт на все время работы программы, а если у тебя дай бог раз в пол часа клиент, то тут наверно лучше и освобождать порт. На сколько мне известно, в 1С Розница как раз таки используется второй вариант по умолчанию. Т.е. после манипуляций с кассой порт освобождается
anton-x
76 — 20.10.21 — 20:57
(60) Подскажи, пожалуйста, удалось побороть ошибку «Неразрешенные реквизиты»? Такая же ситуация, для следующей проверки.
kupec
77 — 21.10.21 — 15:27
(76) Я приболел, нет возможности поковырять кассу, надеюсь на следующей неделе доберусь.
anton-x
78 — 21.10.21 — 16:36
Скорейшего выздоровления! Коллеги, возможно у кого-то есть мысли по этому поводу? Суть в том, что последовательный вызов FNCheckItemBarcode() для второй марки выдаёт ошибку «Неразрешенные реквизиты». На сколько я понял, эту ошибку возвращает ФН. Как и писали коллеги выше, если переподключиться к драйверу, пропускает. По общей логике, я планирую пройтись по списку марок и принять или отвергнуть, и только затем перейти к регистрации позиций и закрытия чека.
kupec
79 — 22.10.21 — 14:34
(78) Какая версия драйвера используется? У меня 874? но уже есть 883, может там уже это исправлено, посмотреть можно там http://doc.shtrih-m.ru/, кстати там есть и примеры для маркировки ФФД 1.2, но они мне не помогли, либо я что то не углядел.
kupec
80 — 22.10.21 — 14:41
Почитал сейчас список изменений, то что стоит у меня 874 и текущая 883 как раз есть изменения и исправления при работе с КМ. Так что можно попробовать обновить драйвер до последней версии. Если будет возможность, отпишитесь про результат
arian_
81 — 22.10.21 — 15:08
(78) На текущий момент стало поступать достаточно много вопросов связанных с причинами возникновения ошибки 11: «Неразрешенные реквизиты» в ответ на команду проверки кода маркировки (метод FNCheckItemBarcode, реализующий команду FF61h). Не смотря на то, что данная ошибки не декларирована в протоколе ФН под ФФД1.2, но она возникает. Причина ошибки в том, что при заполнении реквизитов, необходимых для проверки кода маркировки, пользователь (разработчик ПО) не заполняет все необходимые поля, а именно свойство TLVDataHex. Если не реализуется дробное кол-во предмета расчета, то в данное свойство нужно в явном виде передавать «пустую строку». Если этого не сделать, то в него будет внесен ответ от сервера ОИСМ от предыдущей проверки кода маркировки.
arian_
82 — 22.10.21 — 15:09
(78) Если вы брали за основу мой код, то если у вас не дробное количество, то перед FR.FNCheckItemBarcode(); необходимо FR.TLVDataHEX = «»;
kupec
83 — 22.10.21 — 19:01
(82) сделал предварительную обработку, помогло FR.TLVDataHEX = «», спасибо )))
kupec
84 — 22.10.21 — 19:38
а есть ли у кого-нибудь описание CheckItemLocalError для ККМ?
arian_
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
kupec
86 — 22.10.21 — 21:10
(85) я почему то у себя в руководстве программиста не могу найти данное описание, может есть ссылка, от куда взята данная информация, у меня наверно старая версия…хотя скачивал «типа» последнюю с сайта штриха
arian_
87 — 22.10.21 — 21:37
(85) где-то на сайте штриха скачивал уже не помню: документация Руководство программиста от 02.03.2021
kupec
88 — 22.10.21 — 22:09
у меня почему то от июня 2020 и новее не могу найти
Можно мне на почту скинуть документацию? В профиле адрес есть
kupec
89 — 22.10.21 — 22:38
kupec
90 — 22.10.21 — 22:39
victuan1
91 — 23.10.21 — 06:46
(90) Но методов нового драйвера (5.16) в ней так и нет, например, метода очистки буфера КМ — FNMarkingClearBuffer.
anton-x
92 — 25.10.21 — 09:50
(80) Версия тоже 874. Помогло TLVDataHEX = «». На новой сборке драйвера пока не пробовал. Но постараюсь проверить позже.
kupec
93 — 25.10.21 — 16:05
Совершил тестовую продажу, вроде все удачно, на чеке написалось М+, только не понятно…..напротив данной буквы еще какие то 4 цифры,что это такое?
kupec
94 — 25.10.21 — 16:18
+(93) пробовал несколько позиций маркированных в одном чеке, все сработало. Проверял на молочке и на табаке. Немного не понятно как с алкоголем быть? Надо ли посылать данные по нему, или он не считается маркированным?
arian_
95 — 25.10.21 — 18:36
(94) Тем, кто продает шубы, изделия из натурального меха и алкоголь — на эти группы товаров ФФД 1.2 не распространяется. Вроде так.
victuan1
96 — 26.10.21 — 07:10
victuan1
97 — 26.10.21 — 07:11
(94) Алкоголь не считается маркированным СИ (средствами идентификации), поэтому его передаем только в УТМ.
victuan1
98 — 26.10.21 — 07:12
(95) Также как в ФФД 1.05 и 1.1, их выбытие отражают не через чек ККТ.
SmallAngryCat
99 — 26.10.21 — 11:33
(93) Подскажите как добиться появления этой волшебной буквы [М+] на чеке? У меня марка проходит проверку, в ОФД отправляется, в ЦРПТ выбывает из оборота, а буквы на чеке все равно нет. Может в таблицах ФР что-то нужно настроить?
kupec
100 — 26.10.21 — 11:43
таблица 17 поле 25 вроде как, печать тэгов
В этой статье:
- Нововведения поверки марки в ФФД 1.2
- Глоссарий
- Почему на чеке печатается [М-]
- Почему на чеке печатается просто [М]
- Почему на чеке печатается [М+]
- Как исправить ошибки, при проверке марки
Нововведения поверки марки в ФФД 1.2
В соответствии с приказом ФНС в ФФД 1.2 добавлена обязательная функция проверки сведений о товаре при его продаже
Глоссарий
КМ — код маркировки товара, маркированного средством идентификации.
КП — код проверки.
ОИСМ — оператор информационных систем маркировки, который осуществляет мониторинг всех продаваемых товаров, подлежащих обязательной маркировке.
ОФД — Оператор фискальных данных — юридическое лицо, созданное специально для осуществления приёма, обработки, хранения и передачи фискальных данных в Федеральную налоговую службу России.
Почему на чеке печатается [М-]
- Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен
- Проверка КП КМ выполнена в ФН с отрицательным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
- Проверка КП КМ выполнена с отрицательным результатом, статус товара у ОИСМ некорректен
- Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ некорректен
Иными словами, статус [М-] в чеке печатается в том случае, если одна или все проверки были выполнены с отрицательным результатом
Почему на чеке печатается просто [М]
- Проверка КП КМ не выполнена в ФН, статус товара ОИСМ не проверен
- Проверка КП КМ выполнена в ФН с положительным результатом , статус товара ОИСМ не проверен
- Проверка КП КМ не выполнена в ФН, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
- Проверка КП КМ выполнена в ФН с положительным результатом, статус товара ОИСМ не проверен (ККТ функционирует в автономном режиме)
Иными словами, статус [М] в чеке печатается в том случае, если одна или все проверки не были выполнены. То есть они были пропущены. Например, запрос на проверку был передан в ОИСМ, но не был получен ответ по причине отсутствия интернет соединения.
Почему на чеке печатается [М+]
- Проверка КП КМ выполнена с положительным результатом, статус товара у ОИСМ корректен
Иными словами, статус [М+] в чеке печатается в том случае, если код маркировки прошёл все существующие проверки
Как исправить ошибки, при проверке марки
1. Проверяем связь с ОИСМ. Для этого перейдите в раздел
«Настройки» → «Обслуживание кассы» и нажмите «Поверить связь с ОФД», распечатается чек диагностики. На чеке следует обратить внимание на следующие строки:
- Приложение EoU — должно быть «Запущено», если в чеке отображается значение «Не найдено» — следует перезагрузить терминал и повторить проверку. Если ошибка сохраняется, обратиться в поддержку
- Выход в интернет — должно быть значение «Есть», если напечаталось иное значение — воспользуйтесь инструкцией Ошибка «Нет сети»
- Подключение к ОФД — должно быть значение «Есть», если напечаталось иное значение — воспользуйтесь инструкцией Ошибка «(!) ОФД» / «Касса не может связаться с ОФД» / Отсутствует ИНН ОФД
- Подключение к ОИСМ — должно быть значение «Есть», если напечаталось иное значение — проверьте верно ли вы ввели адрес и порт для подключения к ОИСМ: Как настроить связь с ОИСМ. В редких случаях может потребоваться повторно ввести данные для подключения. Об этом так же описано в статье Как настроить связь с ОИСМ.
- Если внизу чека написано «ОФД не отвечает» — проверьте, оплатили ли вы подписку в личном кабинете вашего оператора фискальных данных
2. Проверяем переведен ли сканер в режим COM порта и подключен ли через драйвер.
3. Если все пункты выше были выполнены, а на чеке продолжает печататься [М-] — обратитесь в службу технической поддержки.
Проверка КП КМ не выполнена
Вопрос № 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. Если ошибка постоянная, то нужно проверять кассовое оборудование или сканер.
Редактировать
Удалить
АО «НХЛ-Трейд»
ФармЭксперт
ООО «Логнекс»
СТОИК
Скандрайв
Rfxcel
ЦРПТ
Сканпорт
Эвотор
ООО «РЭЙ»
ТОО «РудСпецАвтоматика»
ООО «Хэндисофт»
РИТЕЙЛ СОФТ ООО
ООО «Компания «К-Сервис»
СКАН СИТИ
ВИНДЖЕТ
ООО «ИНОКСТЕХ»
ООО «ДК-Софт»
ООО Трекмарк
ООО ИТ «КЛАСТЕР»
ООО «Сенсотек» (Cognex, Sensopart)
ООО «ВЕКАС»
АИС-софт
ООО «ОФТ»
ООО ТЦ «Альфа-Контакт»
ООО «Русская Броня»
ООО «ОС-Технолоджи»
ООО «ОКТО»
ООО СКЛИТ
ООО «ЭНКОД» (ENCODE)
Центр Отраслевых Решений
ООО «НПО Варя»
ООО «АСпром»
ИП Борец Борис Юрьевич
ООО «МедтехТД»
Деловая Автоматизация
ID-RUSSIA
Малленом Системс
ООО «Би Ай Решения»
ООО «ГАЛИОН-ИТ»
ООО «ИТРЕШЕНИЯ24»
ООО ПКФ Инавтоматика
ООО «Автоматизация»
GetMark
VISIOTT Traceability Solutions
ООО Фармнет плюс
АТОЛ
Фирма «Программы для бизнеса»
ООО «ЮМА-Девелопмент»
3Keys GmbH
Эксид Консалтинг (Exceed Consulting)
АйТи План ООО
ООО «ПАРУС»
Origrnal group/ TraceWay
ООО «Инфо Апгрейд»
ЦШК Гексагон
ООО «Ва Системс»
Docrobot
Общество с ограниченной ответственностью «СИСЛИНК»
ООО «Петер-Сервис Спецтехнологии»
ООО «Корпорация Знак»
ООО МК «Электролюкс»
Клеверенс
Awara IT
ООО «Макро Технолоджи»
ООО «Программы для Бизнеса»
Группа компаний «Флагман»
Контур
ООО «КПМГ Налоги и Консультирование»
ООО Стилон
ПАО «Мобильные ТелеСистемы»
АО «Калуга Астрал»
КОРУС Консалтинг СНГ
ООО «Бицерба Рус»
ООО Дримкас
АйТи какие
Комплексная Интеграция
Эвотор ОФД
ФАРМДИСТРИБЬЮТОР
ООО «Квантрон Групп»
Интелл-систем
Агент Плюс
ГК Маст
ООО ГК «ТриАР»
ООО ПЕРФОБИТ
Металлстроймаш
Компания КомЛайн
ООО Компания Тензор (СБИС)
ООО «ТУ СОФТ»
Маркджет
█ 19.05.2022 17:26
Сегодня, судя по всему, 1-ОФД опять «болеет».
И если чеки уходят, но не отображаются — не напряжно, то вот такая ошибка:
«Проверка КП КМ не выполнена, статус товара ОИСМ не проверен
КМ не был проверен в ФН»
при продаже маркированного товара напрягает. За день — на трех разных точках была.
Каковы последствия продажи такого товара?
█ 19.05.2022 18:26
Никаких, если при продаже сама марка в чеке отображается.
Сам Честный Знак рекомендовал отключить проверку марок перед продажей, чтобы уменьшить нагрузку в период DDOS-атаки.
Часовой пояс GMT +3, время: 01:05.
Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.