Ошибка передачи тега 1197 штрих м

v7: Передача тэгов маркируемой продукции
   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 января 2019 года становится обязательным новый формат фискальных документов 1.05, регламентирующий новые обязательные и необязательные реквизиты чека. В этой статье мы дадим описание формата ффд 1.05, приведем список новых обязательных реквизитов (тегов),  продемонстрируем отличие ффд 1.0 от 1.05,  а также покажем пример чека ффд 1.05.

Главный вопрос, который волнует всех — требуется ли замена фискального накопителя при переходе на ФФД 1.05?

За правильное формирование формата фискальных документов отвечает фискальный накопитель (ФН) и его прошивка.

В п.23 раздела II Письма ФНС от 03.04.2018 №ММВ-20-20/33@ «О направлении инструкции» (вместе с Инструкцией для сотрудников налоговых органов по новому порядку применения контрольно-кассовой техники в целях обеспечения комфортных условий для перехода организаций и индивидуальных предпринимателей в рамках второго этапа реформы) ФНС России закрепила переход с версии ФФД 1.0 на ФФД 1.05  без обязательной замены фискального накопителя. Таким образом, все ранее произведенные фискальные накопители будут поддерживать ФФД 1.05, если ресурс вашего фискального накопителя не исчерпан, то достаточно просто обновить прошивку кассы. Производители контрольно-кассовой техники уже выпустили обновлённые прошивки, которые помогут быстро перейти на ФФД 1.05 без замены ФН.

Для получения подробной информации: где скачать прошивку и как перепрошить кассы АТОЛ, Штрих-М, Эвотор обратитесь к специалистам сервиса КОМТЕТ Касса.

Чем же отличается новый формат фискальных данных 1.05 от старого? Главное отличие — перечень реквизитов, включенных в состав фискального документа в обязательном порядке и порядок размещения этих реквизитов.

Список новых реквизитов ФФД 1.05

Перечень новых реквизитов чека:

Версия ФФД. Если касса формирует ФД в соответствии с версией ФФД 1.05, то в реквизитах «номер версии ФФД» (Тег 1209) и «версия ФФД ККТ» следует указывать значение «2».

Сумма НДС за предмет расчета (Тег 1200). Может отсутствовать  при наличии условий, указанных в п. 12 примечаний к таблице 20 «Структура данных реквизита «предмет расчета» Приказа ФНС России от 21.03.2017 года № ММВ-7-20_229@ «Об утверждении дополнительных реквизитов фискальных документов и форматов фискальных документов, обязательных к использованию» (далее — Приказ ФНС России № ММВ-7-20_229@).

ИНН кассира — лица, осуществляющего приём денег(Тег 1203). Может не включаться в состав ффд  в случае применения ККТ при расчетах с покупателем в автоматическом режиме без участия кассира (иного уполномоченного лица, осуществляющего прием денег). 

Место расчета (Тег 1187). Для печатных документов обязательный реквизит, в  электронных чеках реквизит может отсутствовать, если ранее он был передан ОФД в составе отчета о регистрации или отчета об изменении параметров регистрации.

Сумма по чеку (БСО) предоплатой(зачетом аванса и(или) предыдущих платежей)(Тег 1215).

Сумма по чеку (БСО) постоплатой (в кредит) (Тег 1216).

Сумма по чеку (БСО) встречным представлением (Тег 1217).

Адрес электронной почты отправителя чека (Тег 1117).

Признак агента (Тег 1057).

Телефон поставщика (Тег 1171). Реквизит является обязательным при наличии условий, указанных в п. 2 примечаний к таблице 19 «Реквизиты, содержащиеся в кассовом чеке (БСО)» Приказа ФНС России № ММВ-7-20_229@.

Признак способа расчета (Тег 1214). Перечень возможных значений реквизита указан в таблице 28 Приказа ФНС России № ММВ-7-20_229@

Признаки способа расчета

Признак предмета расчетаег 1212). Помимо уже стандартных («товар», «услуга» и др.), данный реквизит может содержать информацию об уплате страховых взносов, передаче прав на имущество, о курортном или торговом сборе и прочие:

— «ТОВАР» или «Т»

— «ПОДАКЦИЗНЫЙ ТОВАР» или «АТ»

— «РАБОТА» или «Р» 

— «УСЛУГА» или «У»

— «СТАВКА АЗАРТНОЙ ИГРЫ» или «СТАВКА ИГРЫ» или «СА»

— «ВЫИГРЫШ АЗАРТНОЙ ИГРЫ» или «ВЫИГРЫШ АИ» или «ВА»

— «ЛОТЕРЕЙНЫЙ БИЛЕТ» или «СТАВКА ЛОТЕРЕИ» или «СЛ»

— «ВЫИГРЫШ ЛОТЕРЕИ» или «ВЫИГРЫШ ЛОТЕРЕИ» или «ВЛ»

— «ПРЕДОСТАВЛЕНИЕ РИД» или «РИД» (РИД – результаты интеллектуальной деятельности)

— «ПЛАТЕЖ» или «П», «ВЫПЛАТА» или «В» речь идет об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и пр.

— «АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ» или «АВ»

— «СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА» или «СПР»

— «ИНОЙ ПРЕДМЕТ РАСЧЕТА» или «ИПР»

— «ИМУЩЕСТВЕННОЕ ПРАВО»

«ВНЕРЕАЛИЗАЦИОННЫЙ ДОХОД»

«СТРАХОВЫЕ ВЗНОСЫ»

«ТОРГОВЫЙ СБОР»

— «КУРОРТНЫЙ СБОР»

Единица измерения предмета расчета (Тег 1197). Уточняет предмет расчета, необязательный.

С 1.07.2019 вводятся реквизиты, идентифицирующие покупателя по сделке «покупатель (клиент)» (Тег 1227),  то есть необходимо указывать название организации, если это юридическое лицо, или ФИО клиента, если это индивидуальный предприниматель, и «ИНН покупателя (клиента)» (Тег 1228). Впрочем, пользователи кассовой техники будут обязаны указывать данные реквизиты лишь с 01.07.2019 года в случае осуществления расчета между организациями и (или) индивидуальными предпринимателями наличными или банковской картой. Кроме того, в данном случае при продаже подакцизных товаров нужно будет указывать реквизит «акциз» (Тег 1229).

Кассовый сервис КОМТЕТ Касса обеспечит возможность принимать и передавать на кассы пользователей чеки в формате ФФД 1.05 заблаговременно. API и плагины для cms будут обновлены до 1 января 2019 года.

Пошаговая инструкция по переходу на ФФД 1.05

Шаг 1, закройте смену и проверьте, все ли ранее сформированные фискальные документы были переданы в ОФД. Эту информацию можно увидеть в отчете о закрытии смены или в отчете о текущем состоянии расчетов. Если есть непереданные в ОФД документы, необходимо обеспечить их отправку.

Шаг 2, убедитесь, что ваша онлайн-касса поддерживает новый формат ФФД 1.05.

Узнать поддерживаемый ФФД вашей онлайн-кассы можно двумя способами: на сайте ФНС в реестре ККТ или распечатав чек «Информация о ККТ» (доступно не для всех ККТ).

В соответствии с п. 23 Письма ФНС России от 03.04.2018 г. № ММВ-20-20/33@ ККТ, передающая сведения о расчетах в соответствии с версией ФФД 1.0, будет снята с регистрации 01.01.2019 налоговым органом в одностороннем порядке без заявления пользователя о снятии ККТ с регистрационного учета.

Шаг 3, установите перепрошивку кассы. Производителями контрольно-кассовой техники предусмотрены разные способы перехода на ФФД 1.05 – от самостоятельной установки обновления программы на онлайн-ккт до ручной перепрошивки в специалистами ЦТО.

В случае смены ФН перерегистрируйте онлайн-кассу в ФНС.

Пример чека с ФФД 1.05

Пример 1. Полная оплата товара в момент передачи товара покупателю.

Пример чека с ФФД 1.05 полный расчет в момент передачи товара

Пример 2. Продажа товара в рассрочку.

Частичная оплата товара и передача клиенту в рассрочку (постоплата).

Пример чека ФФД 1.05 частичный расчет

Покупатель вносит платеж (взнос) 500 рублей, уже оплачено 500 рублей, оставшийся долг 0 рублей.

Пример чека ФФД 1.05 полный расчет с учетом внесенных оплат

Пример 3.Чек полной предоплаты за товар, когда сам товар будет передан покупателю позже.

Пример чека с ФФД 1.05 предоплата 100%

Можно ли продолжать работу с использованием ФФД 1.0 после 1 января 2019?

Законодательством предусмотрена ответственность за применение
контрольно-кассовой техники, несоответствующей требованиям закона в
порядке ч.4 ст. 14.5 КОАП РФ: «Применение контрольно-кассовой техники, которая не соответствует установленным требованиям,
либо применение контрольно-кассовой техники с нарушением установленных
законодательством Российской Федерации о применении контрольно-кассовой
техники порядка регистрации контрольно-кассовой техники, порядка, сроков
и условий ее перерегистрации, порядка и условий ее применения
» (часть 4 введена Федеральным законом от 03.07.2016 N 290-ФЗ). Если системно трактовать законодательные документы, то продолжение использования ффд 1.0 после 1 января 2019 года влечет
предупреждение или наложение административного штрафа на должностных
лиц в размере от полутора тысяч до трех тысяч рублей; на юридических лиц
— предупреждение или наложение административного штрафа в размере от
пяти тысяч до десяти тысяч рублей.

Следует помнить, что согласно п. 23 Письма ФНС от 3 апреля 2018 г. №
ММВ-20-20/33@ онлайн-кассы, передающие фискальные документы в
соответствии с ФФД 1.0, будут автоматически сняты с регистрационного
учета 01.01.2019 г. налоговым органом в одностороннем порядке.

1C 8 Не печатается чек ККМ. Ошибка: 33h, Ошибка передачи тега 1228: Некорректные параметры в команде

Описание ошибки:
Серверная версия конфигурации 1С: Управление торговлей 10.3.70.1. Чек ККМ на кассе не выводится на печать, но закрытие и открытие смены с выводом на печать соответствующего чека-отчета работает. Касса ККМ-онлайн Retail 01Ф (обработка обслуживания Штрих-М: ККТ с передачей данных)

Найденные решения:

1C 8, ошибка, не печатается чек ККМ, 33h, Ошибка передачи тега 1228: Некорректные параметры в команде

Удивительным был тот факт, что накануне и несколькими днями ранее обновление базы не осуществлялось. Доработки тоже никакие не производились, что исключало вариант влияние какого-либо неудачного кода на работу обработки обслуживания кассы ККМ. Так же и не обновлялся файл обработки обслуживания в самой базе. Драйвера торгового оборудования не обновлялись.

1С 8, ошибка, кассы, кассового оборудования, 33h некорректные параметры в команде

Тот факт, что ошибка возникла как говорится «на ровном месте», заставил думать, что возможно, как это бывает на практике возникли ошибки во временных пользовательских файлах, связанных с базой на рабочем месте. В практике однажды с подобным уже сталкивался, но только с эквайринговым терминалом от Сбербанка, подробно описано на странице Недостаточно фактических параметров; Ошибка эквайринговой системы 4309, когда ошибка была устранена простым быстрым способом удаления базы из списка баз и добавлением. При этом кэши базы очистились и ошибка прекратилась.

Но сброс пользовательского кэша простым способом не помог. Ошибка сохранилась. Оказалось, что ошибка не настолько редкая, чтобы совсем не встречалась. Но не ясно, как проще и удобнее диагностировать ее исходную причину, т.к. вариантов возникает масса. В вышеуказанном обсуждении на форуме упоминалось необходимость проверки недопустимых символов в реквизитах организаций. Это не изменялось. Но решил проверить заполнение в форме контрагента. И вот что было замечено: что пользователи установили несуществующий ИНН «000000000003» для розничного покупателя.

1С 8, касса не печатает чек, ошибка передачи тега 1228, 1227

Можно было оставить ИНН полностью пустым, а можно было установить реальный. Но была предпринята попытка для быстроты оставить реквизит ИНН контрагента пустым. После этого печать чеков кассы была возобновлена.

И немного информации для справки. С 1.07.2019 при расчетах с покупателями (юр. лица, ИП, физ.лица ) в кассовом чеке необходимо указывать наименование покупателя (тег 1227) и ИНН покупателя (тег 1228). Т.е. логично, что если ошибочно будет передаваться тег 1227, то нужно будет проверять, чтобы не было неправильных символов в наименовании контрагента.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

03-09-2021

Журавлев А.С.
(Сайт azhur-c.ru)

  

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 января 2019 года становится обязательным новый формат фискальных документов 1.05, регламентирующий новые обязательные и необязательные реквизиты чека. В этой статье мы дадим описание формата ффд 1.05, приведем список новых обязательных реквизитов (тегов),  продемонстрируем отличие ффд 1.0 от 1.05,  а также покажем пример чека ффд 1.05.

Главный вопрос, который волнует всех — требуется ли замена фискального накопителя при переходе на ФФД 1.05?

За правильное формирование формата фискальных документов отвечает фискальный накопитель (ФН) и его прошивка.

В п.23 раздела II Письма ФНС от 03.04.2018 №ММВ-20-20/33@ «О направлении инструкции» (вместе с Инструкцией для сотрудников налоговых органов по новому порядку применения контрольно-кассовой техники в целях обеспечения комфортных условий для перехода организаций и индивидуальных предпринимателей в рамках второго этапа реформы) ФНС России закрепила переход с версии ФФД 1.0 на ФФД 1.05  без обязательной замены фискального накопителя. Таким образом, все ранее произведенные фискальные накопители будут поддерживать ФФД 1.05, если ресурс вашего фискального накопителя не исчерпан, то достаточно просто обновить прошивку кассы. Производители контрольно-кассовой техники уже выпустили обновлённые прошивки, которые помогут быстро перейти на ФФД 1.05 без замены ФН.

Для получения подробной информации: где скачать прошивку и как перепрошить кассы АТОЛ, Штрих-М, Эвотор обратитесь к специалистам сервиса КОМТЕТ Касса.

Чем же отличается новый формат фискальных данных 1.05 от старого? Главное отличие — перечень реквизитов, включенных в состав фискального документа в обязательном порядке и порядок размещения этих реквизитов.

Список новых реквизитов ФФД 1.05

Перечень новых реквизитов чека:

Версия ФФД. Если касса формирует ФД в соответствии с версией ФФД 1.05, то в реквизитах «номер версии ФФД» (Тег 1209) и «версия ФФД ККТ» следует указывать значение «2».

Сумма НДС за предмет расчета (Тег 1200). Может отсутствовать  при наличии условий, указанных в п. 12 примечаний к таблице 20 «Структура данных реквизита «предмет расчета» Приказа ФНС России от 21.03.2017 года № ММВ-7-20_229@ «Об утверждении дополнительных реквизитов фискальных документов и форматов фискальных документов, обязательных к использованию» (далее — Приказ ФНС России № ММВ-7-20_229@).

ИНН кассира — лица, осуществляющего приём денег(Тег 1203). Может не включаться в состав ффд  в случае применения ККТ при расчетах с покупателем в автоматическом режиме без участия кассира (иного уполномоченного лица, осуществляющего прием денег). 

Место расчета (Тег 1187). Для печатных документов обязательный реквизит, в  электронных чеках реквизит может отсутствовать, если ранее он был передан ОФД в составе отчета о регистрации или отчета об изменении параметров регистрации.

Сумма по чеку (БСО) предоплатой(зачетом аванса и(или) предыдущих платежей)(Тег 1215).

Сумма по чеку (БСО) постоплатой (в кредит) (Тег 1216).

Сумма по чеку (БСО) встречным представлением (Тег 1217).

Адрес электронной почты отправителя чека (Тег 1117).

Признак агента (Тег 1057).

Телефон поставщика (Тег 1171). Реквизит является обязательным при наличии условий, указанных в п. 2 примечаний к таблице 19 «Реквизиты, содержащиеся в кассовом чеке (БСО)» Приказа ФНС России № ММВ-7-20_229@.

Признак способа расчета (Тег 1214). Перечень возможных значений реквизита указан в таблице 28 Приказа ФНС России № ММВ-7-20_229@

Признаки способа расчета

Признак предмета расчетаег 1212). Помимо уже стандартных («товар», «услуга» и др.), данный реквизит может содержать информацию об уплате страховых взносов, передаче прав на имущество, о курортном или торговом сборе и прочие:

— «ТОВАР» или «Т»

— «ПОДАКЦИЗНЫЙ ТОВАР» или «АТ»

— «РАБОТА» или «Р» 

— «УСЛУГА» или «У»

— «СТАВКА АЗАРТНОЙ ИГРЫ» или «СТАВКА ИГРЫ» или «СА»

— «ВЫИГРЫШ АЗАРТНОЙ ИГРЫ» или «ВЫИГРЫШ АИ» или «ВА»

— «ЛОТЕРЕЙНЫЙ БИЛЕТ» или «СТАВКА ЛОТЕРЕИ» или «СЛ»

— «ВЫИГРЫШ ЛОТЕРЕИ» или «ВЫИГРЫШ ЛОТЕРЕИ» или «ВЛ»

— «ПРЕДОСТАВЛЕНИЕ РИД» или «РИД» (РИД – результаты интеллектуальной деятельности)

— «ПЛАТЕЖ» или «П», «ВЫПЛАТА» или «В» речь идет об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и пр.

— «АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ» или «АВ»

— «СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА» или «СПР»

— «ИНОЙ ПРЕДМЕТ РАСЧЕТА» или «ИПР»

— «ИМУЩЕСТВЕННОЕ ПРАВО»

«ВНЕРЕАЛИЗАЦИОННЫЙ ДОХОД»

«СТРАХОВЫЕ ВЗНОСЫ»

«ТОРГОВЫЙ СБОР»

— «КУРОРТНЫЙ СБОР»

Единица измерения предмета расчета (Тег 1197). Уточняет предмет расчета, необязательный.

С 1.07.2019 вводятся реквизиты, идентифицирующие покупателя по сделке «покупатель (клиент)» (Тег 1227),  то есть необходимо указывать название организации, если это юридическое лицо, или ФИО клиента, если это индивидуальный предприниматель, и «ИНН покупателя (клиента)» (Тег 1228). Впрочем, пользователи кассовой техники будут обязаны указывать данные реквизиты лишь с 01.07.2019 года в случае осуществления расчета между организациями и (или) индивидуальными предпринимателями наличными или банковской картой. Кроме того, в данном случае при продаже подакцизных товаров нужно будет указывать реквизит «акциз» (Тег 1229).

Кассовый сервис КОМТЕТ Касса обеспечит возможность принимать и передавать на кассы пользователей чеки в формате ФФД 1.05 заблаговременно. API и плагины для cms будут обновлены до 1 января 2019 года.

Пошаговая инструкция по переходу на ФФД 1.05

Шаг 1, закройте смену и проверьте, все ли ранее сформированные фискальные документы были переданы в ОФД. Эту информацию можно увидеть в отчете о закрытии смены или в отчете о текущем состоянии расчетов. Если есть непереданные в ОФД документы, необходимо обеспечить их отправку.

Шаг 2, убедитесь, что ваша онлайн-касса поддерживает новый формат ФФД 1.05.

Узнать поддерживаемый ФФД вашей онлайн-кассы можно двумя способами: на сайте ФНС в реестре ККТ или распечатав чек «Информация о ККТ» (доступно не для всех ККТ).

В соответствии с п. 23 Письма ФНС России от 03.04.2018 г. № ММВ-20-20/33@ ККТ, передающая сведения о расчетах в соответствии с версией ФФД 1.0, будет снята с регистрации 01.01.2019 налоговым органом в одностороннем порядке без заявления пользователя о снятии ККТ с регистрационного учета.

Шаг 3, установите перепрошивку кассы. Производителями контрольно-кассовой техники предусмотрены разные способы перехода на ФФД 1.05 – от самостоятельной установки обновления программы на онлайн-ккт до ручной перепрошивки в специалистами ЦТО.

В случае смены ФН перерегистрируйте онлайн-кассу в ФНС.

Пример чека с ФФД 1.05

Пример 1. Полная оплата товара в момент передачи товара покупателю.

Пример чека с ФФД 1.05 полный расчет в момент передачи товара

Пример 2. Продажа товара в рассрочку.

Частичная оплата товара и передача клиенту в рассрочку (постоплата).

Пример чека ФФД 1.05 частичный расчет

Покупатель вносит платеж (взнос) 500 рублей, уже оплачено 500 рублей, оставшийся долг 0 рублей.

Пример чека ФФД 1.05 полный расчет с учетом внесенных оплат

Пример 3.Чек полной предоплаты за товар, когда сам товар будет передан покупателю позже.

Пример чека с ФФД 1.05 предоплата 100%

Можно ли продолжать работу с использованием ФФД 1.0 после 1 января 2019?

Законодательством предусмотрена ответственность за применение
контрольно-кассовой техники, несоответствующей требованиям закона в
порядке ч.4 ст. 14.5 КОАП РФ: «Применение контрольно-кассовой техники, которая не соответствует установленным требованиям,
либо применение контрольно-кассовой техники с нарушением установленных
законодательством Российской Федерации о применении контрольно-кассовой
техники порядка регистрации контрольно-кассовой техники, порядка, сроков
и условий ее перерегистрации, порядка и условий ее применения
» (часть 4 введена Федеральным законом от 03.07.2016 N 290-ФЗ). Если системно трактовать законодательные документы, то продолжение использования ффд 1.0 после 1 января 2019 года влечет
предупреждение или наложение административного штрафа на должностных
лиц в размере от полутора тысяч до трех тысяч рублей; на юридических лиц
— предупреждение или наложение административного штрафа в размере от
пяти тысяч до десяти тысяч рублей.

Следует помнить, что согласно п. 23 Письма ФНС от 3 апреля 2018 г. №
ММВ-20-20/33@ онлайн-кассы, передающие фискальные документы в
соответствии с ФФД 1.0, будут автоматически сняты с регистрационного
учета 01.01.2019 г. налоговым органом в одностороннем порядке.

Понравилась статья? Поделить с друзьями:
  • Ошибка передачи тега 1162 штрих м
  • Ошибка перевода юнистрим
  • Ошибка передачи не удалось отправить через smb 1101
  • Ошибка перевод на казахский
  • Ошибка передачи марки 211 штрих