Маркировка на ККТ АТОЛ с ФФД 1.2

07.12.21

Учетные задачи - Кассовые операции

Реализация функций продажи/возврата маркированной продукции в ФФД 1.2 для ККМ марки АТОЛ для самописных конфигураций. DTO 10.9.1.0.

Всем доброго дня.

Уверен, что многие еще столкнутся с данной проблемой, после перепрошивки кассовых аппаратов АТОЛ на версию формата фискальных данных 1.2. Эта информация в основном для тех, кто поддерживает самописные конфигурации.

Ранее мы просто брали GTIN и серийный номер из маркировки, формировали 16-ричный код и записывали его в реквизит 1162.

Теперь этот путь закрыт.

Основная суть изменившегося подхода при пробитии чека - мы должны занести в память кассового аппарата полный код маркировки с криптохвостом, проверить его и проверенный код пробить в чеке, чтобы получить заветный [M+].

Мой код для отражения продажи/возврата маркированной продукции,передаваемой в Честный Знак, тестировалось на драйвере DTO 10.9.1.0:

 

	//Переменные на входе
	// Кассир - ФИО кассира
	// ВидЧека - "ПРОДАЖА" или "ВОЗВРАТ"
	// Телефон - телефон контрагента
	// ШтрихкодМаркировки - маркировка товара из системы Честный Знак 
	// Номенклатура - название товара
	// Цена,Количество,СуммаНДС (в примере 20%)
	// СуммаАванса,СуммаНал,СуммаБезнал
	
	//Переменные на выходе
	// НомерЧека, НомерДокумента
	
	//Обращаемся к объекту драйвера DTO10
	//Инициализируем параметры кассы.
	
	FR = Новый COMОбъект("AddIn.Fptr10"); 
	FR.setSingleSetting(FR.LIBFPTR_SETTING_MODEL, Строка(FR.LIBFPTR_MODEL_ATOL_AUTO));
	FR.setSingleSetting(FR.LIBFPTR_SETTING_PORT, FR.LIBFPTR_PORT_COM);
	FR.setSingleSetting(FR.LIBFPTR_SETTING_COM_FILE, 1);
	FR.setSingleSetting(FR.LIBFPTR_SETTING_BAUDRATE, 9600);
	FR.setSingleSetting(FR.LIBFPTR_SETTING_ACCESS_PASSWORD, "0");
	FR.setSingleSetting(FR.LIBFPTR_SETTING_USER_PASSWORD, 1);
	FR.applySingleSettings();
	
	Если FR.open()<>0 тогда //Соединение с ККТ 
		Сообщить("Ответ: "+FR.errorCode()+" Ошибка: "+FR.errorDescription());
		возврат;
	КонецЕсли;
	
	FR.setParam(1021, СокрЛП(Кассир));
	
	FR.operatorLogin();
	
	// После прошивки - важный параметр "Система налогообложения",
	// который слетает в неопределенность. 
	// Либо ставьте в драйверве в регистрации по умолчанию, либо указывайте явно
	FR.setParam(1055, FR.LIBFPTR_TT_OSN);
	//FR.setParam(1055, fptr.LIBFPTR_TT_ENVD);
	
	Попытка
		//стираем все запрошенные маркировки из памяти кассового аппарата
		FR.clearMarkingCodeValidationResult();
	Исключение
	КонецПопытки;	

	Если ВидЧека  = "ВОЗВРАТ" тогда
		FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL_RETURN);
	Иначе
		FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL);
	КонецеСли;
	
	FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY, false);			

	Если не СокрЛП(Телефон) = "" тогда
		FR.setParam(1008, СокрЛП(Телефон));			
	КонецЕСли;	
	
	
	FR.openReceipt();
	
	status = 1;
	
	Разделитель = Символ(29);
	
	ПодготовленныйШК = СокрЛП(ШтрихкодМаркировки);
	
	ПодготовленныйШК = СтрЗаменить(ПодготовленныйШК,Разделитель,"");
	
	КМ = Лев(ПодготовленныйШК, 31) + Разделитель + Сред(ПодготовленныйШК, 32, 6) + Разделитель + Сред(ПодготовленныйШК, 38);
	
	//Получился код маркировки с восстановленными знаками GS1, если вдруг их не было в строке
	//Много где было сказано, что надо использовать только 16-ричную кодировку. Это не так.
	
	
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_TYPE, FR.LIBFPTR_MCT12_AUTO);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE, КМ);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_STATUS, status);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_WAIT_FOR_VALIDATION_RESULT, Истина);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);					
	
	FR.beginMarkingCodeValidation();
	ВремяНачала = ТекущаяДата();
	ВремяОжидания = 100;
	
	// Начало проверки 
	Пока истина Цикл
		FR.getMarkingCodeValidationStatus();
		Если FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY) тогда
			прервать;
		КонецЕсли;	
		Если ТекущаяДата() - ВремяНачала > ВремяОжидания тогда
			прервать;
		КонецЕсли;	
	КонецЦикла;
	
	validationResult = FR.getParamInt(FR.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT);
	
	FR.acceptMarkingCode();
	
	//Наш штрихкод проверен и занесен в память аппарата
	// Теперь его ОБЯЗАТЕЛЬНО надо повторить в самой продаже
	// Если этого не сделать - то ничего и не отошлется
	
	FR.setParam(FR.LIBFPTR_PARAM_COMMODITY_NAME,СокрЛП(Номенклатура));
	FR.setParam(FR.LIBFPTR_PARAM_PRICE, Окр(Цена,2));
	FR.setParam(FR.LIBFPTR_PARAM_QUANTITY, Количество);
	FR.setParam(FR.LIBFPTR_PARAM_TAX_TYPE,FR.LIBFPTR_TAX_VAT20);
	FR.setParam(FR.LIBFPTR_PARAM_TAX_SUM, СуммаНДС);
	
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE, КМ);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_STATUS, status);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT, validationResult);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);	
	
	Если FR.registration() <> 0 тогда
		Сообщить("Ответ: "+FR.errorCode()+" Ошибка: "+FR.errorDescription());
        FR.cancelReceipt();
        Возврат;
	КонецЕсли;
	
	//Оплата
	Если СуммаАванса>0 тогда
		FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_TYPE, FR.LIBFPTR_PT_PREPAID);
		FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_SUM, СуммаАванса);
		FR.payment();
	КонецеСли;
	
	Если СуммаНал>0 тогда
		FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_TYPE, FR.LIBFPTR_PT_CASH);
		FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_SUM, СуммаНал);
		FR.payment();
	КонецеСли;
	
	Если СуммаБезнал>0 тогда
		FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_TYPE, FR.LIBFPTR_PT_ELECTRONICALLY);
		FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_SUM, СуммаБезнал);
		FR.payment();
	КонецеСли;
	
	FR.closeReceipt();
	
	//открыть ящик
	FR.openDrawer();
	
	FR.setParam(FR.LIBFPTR_PARAM_DATA_TYPE, FR.LIBFPTR_DT_STATUS);
	FR.queryData();
	
	НомерЧека       = FR.getParamInt(FR.LIBFPTR_PARAM_RECEIPT_NUMBER);
	НомерДокумента  = FR.getParamInt(FR.LIBFPTR_PARAM_DOCUMENT_NUMBER);
	

 

АТОЛ ФФД 1.2 ошибка 1162

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации на обычных формах. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Поддерживает локальный модуль честного знака для офлайн проверки. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    820845    5243    9802    

2957

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

7900 руб.

25.05.2015    343731    2109    3121    

1096

ККМ Кассовые операции Розничная торговля Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение для типовых конфигураций для Управляемых форм позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

9500 руб.

27.08.2018    126436    685    603    

901

Кассовые операции ЭДО и ОФД Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Согласно 54-ФЗ по правилам ведения кассовых операций необходимо оформлять приходные кассовые ордера (ПКО) и расходные кассовые ордера (РКО) на основании чеков ККМ. Все данные о чеках, можно взять на сайте оператора фискальных данных (ОФД). Обработка загрузки данных из ОФД в 1С сделает за вас в 1С - ПКО и РКО, Операции по платежным картам или Отчет о розничных продажах (может создать номенклатуру в 1С, указать налоги и др. реквизиты в документах в зависимости от налогообложения ККМ в торговой точке).

7200 руб.

09.08.2017    155494    932    374    

571

ККМ Розничная торговля Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен между 1С:Розница и Frontol 6 при торговле от нескольких организаций, а также ряд других полезных функций. Данный модуль синхронизации незаменим для тех, кто ведёт учет по нескольким организациям в 1С:Розница, а на РМК (рабочем месте кассира) установлен Frontol или планируется его установка. Подходит для 1С:Розница 2.3 / 3.0, 1С:УНФ 3.0

7900 руб.

22.03.2019    87424    591    479    

201

ККМ Кассовые операции Розничная торговля Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.4. В поставке есть драйверы для операционных систем Linux, Android, MacOs и Windows. Поддержка драйверов Атол, Штрих и 1С-совместимых драйверов для ККТ ревизии 4.4. Поддержка 54-ФЗ и разрешительного режима, ФФД 1.05,1.1,1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ 1.6/3, 1С:Розница 1/2/3, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП. Ускоряет печать из терминального сеанса Windows. Работает с разрешительным режимом даже из старых конфигураций. Предоставляет REST API для печати через веб-сервис. Поддерживаются новые ставки НДС 5% и 7%.

5000 руб.

02.09.2016    140633    208    196    

197

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Специализированные обработки для загрузки кассовых чеков в локальных базах: 1С:БП 3.0, 1С:УНФ 3.0, 1С:КА. 2.5, 1С:ERP Управление предприятием 2.5 и 1С:УТ 11.5. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах' и 'Поступление денежных документов'. Обработка будет работать на любой версии конфигурации: базовой, ПРОФ или КОРП.

19.08.2020    71743    307    delta    88    

236

Закрытие периода Оптовая торговля Розничная торговля Кассовые операции Учет доходов и расходов Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1C:Бухгалтерия 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:CRM ПРОФ, КОРП 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1С:ERP. Управление холдингом Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Гостиничный бизнес Пищевая промышленность Россия Бухгалтерский учет Бюджетный учет Налоговый учет ЕНВД ЕСХН ИП, ПБОЮЛ, КФХ Налог на прибыль НДС УСН ПСН (патентная система налогообложения) Платные (руб)

Внешняя обработка для ведения в электронной форме КУДиР в 1С - книги учёта доходов и расходов для предприятий на УСН, ПСН, ЕСХН. Заполнение раздела 1 - "доходы и расходы" из журнала документов вашей ИБ (любой конфигурации 1С:Предприятие 8). Формирование отчета Кассовая книга КО-4 по данным раздела 1.

6990 руб.

15.03.2016    118927    302    158    

285
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
99. basil_m 6 17.02.23 10:33 Сейчас в теме
Добрый день. Всю голову сломал уже, не знаю куда копать. При проверке кода через тест драйвер Атола - всё нормально. Отправляю этот же код в 1С, получаю в логах постоянно LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY (65850) = false, в итоге после acceptMarkingCode() получаю ошибку: Объекту 0x03A9FDF8 присвоен код ошибки 422 [Данный КМ отсутствует в таблице] и потом при пробитии чека: Объекту 0x03A9FDF8 присвоен код ошибки 409 [Некорректный код маркировки].
Код маркировки передаю полный, после серийного номера добавляю GS (Симв(29)). Наведите, плиз, на мысль в чем проблема?
Еще вопрос: запускать проверку марок надо после открытия чека? хотя пробовал и так, и так - результат один.
108. Sphinx2009 01.03.23 14:44 Сейчас в теме
(99) то же самое. и символ(29) тоже пробовал((((((
109. basil_m 6 01.03.23 20:00 Сейчас в теме
(108) я дальше так и не продвинулся, ушёл на больничный, ничего больше не попробовал. Завтра выйду, попробую драйвер обновить и буду дальше голову ломать
(108)
110. slava_1c 553 02.03.23 09:41 Сейчас в теме
(109)
(108) Постараюсь подсказать универсально.
1. Виды маркированного товара вводятся периодически новые, поэтому драйвера для ККМ нужны для новых товаров свежие.
2. Метод запроса валидности кода - АСИНХРОННЫЙ, если вы сразу же спросите ответ у сервиса функцией getMarkingCodeValidationStatus() - наверняка переменная LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY будет false. Поэтому в приведенном мною коде стоит цикл опроса.
Пока истина Цикл
		FR.getMarkingCodeValidationStatus();
		Если FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY) тогда
			прервать;
		КонецЕсли;	
		Если ТекущаяДата() - ВремяНачала > ВремяОжидания тогда
			прервать;
		КонецЕсли;	
	КонецЦикла;
Показать

3. Проверяйте не на одном едиственном коде, а хотя бы на выборке из разных поставок а лучше поставщиков. Бывает, что те кто клеят коды неверно выводят на печать сам код (сколько ошибок было в том же Ocvita Barcode или на чистой библиотеке ZINT - они выдают на печать неверные коды) На сегодняшний день - самый верный драйвер печати из свежих конфигураций 1С.
100. slava_1c 553 17.02.23 11:44 Сейчас в теме
(99) Добрый день. А Вы на многих кодах пробовали или только на одном? Первое с чего нужно начать, это с того что убедиться что код правильный. Сейчас появилось мобильное приложение Честный знак для бизнеса. Попробуйте им отсканировать данный код. Он сразу напишет что с этим кодом не так. Тест драйвера не всегда правдив. Вернее зависит от драйвера
101. basil_m 6 17.02.23 16:29 Сейчас в теме
Пробовал на одном. Проверил его. Через приложение пишет "Товар проверен. Найден в системе маркировки".
102. basil_m 6 17.02.23 17:11 Сейчас в теме
Не заметил, что написали про ЧЗ для бизнеса. Проверил им: Структура КМ корректная, в обороте. Длина 38символов. По воде 37, так понял символ GS считает.
Всё вроде нормально.
103. slava_1c 553 17.02.23 17:25 Сейчас в теме
(102) Тогда рекомендую проверить отсылать код без обратной подготовки, тем более у воды действительно 38 знаков, а в моем примере для шин и обуви знаков гораздо больше.
Те. вот эту строку
КМ = Лев(ПодготовленныйШК, 31) + Разделитель + Сред(ПодготовленныйШК, 32, 6) + Разделитель + Сред(ПодготовленныйШК, 38);


Сделать такой
КМ = Лев(ПодготовленныйШК, 31) + Разделитель + Сред(ПодготовленныйШК, 32);


либо вообще на п проверку передавать чистый код без исправления
104. basil_m 6 17.02.23 17:41 Сейчас в теме
Отсылаю такой:
КодДляККТ=Лев(КодМаркировки,31)+Симв(29)+Сред(КодМаркировки,32,6)

Чистый код не пробовал передать. Но вроде без разделителя же не пройдет? Надо попробовать. Вообще странная ситуация. Через драйвер код проходит, а так ошибка.
105. slava_1c 553 17.02.23 18:02 Сейчас в теме
(104) Попробуйте передать тот код который идет со сканера. В нем уже должен быть символ GS.
Если не получится - показывайте лог с кассы - может с последовательностью проверки что не так.
106. slava_1c 553 17.02.23 18:04 Сейчас в теме
Да и еще, воду не так давно запустили, может быть драйвер кассы старый стоит, который о воде не знает ничего.
107. basil_m 6 17.02.23 19:55 Сейчас в теме
Да, попробую драйвер для начала обновить. Спасибо за советы.
111. basil_m 6 02.03.23 10:24 Сейчас в теме
Поставил сегодня последние драйвера атоловские 10.9.4.0. Результат тот же. Видимо где-то ошибка в запросе.
Гляньте, плиз, может что подскажите. И лог ККТ вкладываю
//стираем все запрошенные маркировки из памяти кассового аппарата
	Попытка
		FR.clearMarkingCodeValidationResult();
	Исключение
	КонецПопытки;
	ТаблМарок=СоздатьОбъект("ТаблицаЗначений"); 
	ТаблМарок.НоваяКолонка("КодМаркировки");
	ТаблМарок.НоваяКолонка("РезультатПроверкиСведений");  
	ТаблМарок.НоваяКолонка("КодМаркировкиККТ");  
	ВыбратьСтроки();
	Пока ПолучитьСтроку()=1 Цикл 
		Если (Товар.Маркировка=Перечисление.Булево.Да) Тогда   
			Если СтрДлина(СокрЛП(КодМаркировки))=37 Тогда //вода
				КодДляККТ=Лев(СокрЛП(КодМаркировки),31)+Симв(29)+Сред(КодМаркировки,32,6);
			КонецЕсли;      
			// Запускаем проверку КМ 
			Если Вид = Перечисление.ВидыОперацийЧекККМ.Чек Тогда
				Статус = FR.LIBFPTR_MES_PIECE_SOLD;      //штучный товар, реализован    
			Иначе	
				Статус = FR.LIBFPTR_MES_PIECE_RETURN;    //штучный товар, возвращен
			КонецЕсли;	
			FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_TYPE, FR.LIBFPTR_MCT12_AUTO); //Тип КМ (тег 2101)
			FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE, КодДляККТ);      	     //КМ (тег 2000)
			FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_STATUS, Статус);           //Планируемый статус КМ (тег 2003)
			//					FR.setParam(FR.LIBFPTR_PARAM_QUANTITY, Количество);                  //Количество товара (тег 1023)
			//					FR.setParam(FR.LIBFPTR_PARAM_MEASUREMENT_UNIT, FR.LIBFPTR_IU_PIECE); //Мера количества товара (тег 2108)  штуки, единицы 
			FR.setParam(2108, 0);                                                //Мера количества товара (тег 2108)  штуки, единицы
			//					FR.setParam(FR.LIBFPTR_PARAM_MARKING_WAIT_FOR_VALIDATION_RESULT, 1); 
			FR.setParam(FR.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);            //Режим обработки кода товара (тег 2102) 	
			//					FR.setParam(FR.LIBFPTR_PARAM_MARKING_FRACTIONAL_QUANTITY, "1/2");    //(тег 1291)
			FR.beginMarkingCodeValidation(); 
			ВремяОжидания = ТекущееВремя() + 20; //20 секунд таймаут
			// Дожидаемся окончания проверки и запоминаем результат
			Пока 1=1 Цикл
				FR.getMarkingCodeValidationStatus();
				ПроверкаЗавершена=FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY);
				Если ПроверкаЗавершена<>0 Тогда    
					Прервать;
					РезультатПроверкиСведений = FR.getParamInt(FR.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT); //Результат проверки сведений о товаре (тег 2106) 
				Иначе 
					РезультатПроверкиСведений = FR.getParamInt(FR.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT); //Результат проверки сведений о товаре (тег 2106) 
					Если ТекущееВремя() > ВремяОжидания Тогда   
						FR.cancelMarkingCodeValidation();	
						Прервать;
					КонецЕсли;
				КонецЕсли;
			КонецЦикла;     
			Сообщить(ПроверкаЗавершена);
			Сообщить("Результат проверки: "+РезультатПроверкиСведений);
			// Подтверждаем реализацию товара с указанным КМ
			FR.acceptMarkingCode(); 
			ТаблМарок.НоваяСтрока();
			ТаблМарок.КодМаркировки=КодМаркировки;
			ТаблМарок.РезультатПроверкиСведений=РезультатПроверкиСведений;  
			ТаблМарок.КодМаркировкиККТ=КодДляККТ;
			//				FR.clearMarkingCodeValidationResult();    //Очистка таблицы проверенных КМ в ФН
			//	FR.cancelMarkingCodeValidation();
		КонецЕсли;
	КонецЦикла;	
КонецЕсли;
//------------------------------
FR.setParam(FR.LIBFPTR_PARAM_DATA_TYPE, FR.LIBFPTR_DT_STATUS);   
FR.queryData();
НомерДок  = FR.getParamInt(FR.LIBFPTR_PARAM_RECEIPT_NUMBER);  // запрос номера чека  
НомерСмены=FR.getParamInt(FR.LIBFPTR_PARAM_SHIFT_NUMBER);    // запрос номера смены   
//запрос номера ФН и ФД
FR.setParam(FR.LIBFPTR_PARAM_FN_DATA_TYPE , FR. LIBFPTR_FNDT_LAST_RECEIPT); 
FR.fnQueryData();
НомерФД = FR.getParamInt(FR.LIBFPTR_PARAM_DOCUMENT_NUMBER)+1; 
FR.setParam(FR.LIBFPTR_PARAM_FN_DATA_TYPE , FR.LIBFPTR_FNDT_FN_INFO); 
FR.fnQueryData();
НомерККМ = FR.getParamString(FR.LIBFPTR_PARAM_SERIAL_NUMBER);   

//Открыть чек
FR.setParam(1021, Константа.Кассир.Наименование);
FR.operatorLogin();
//Тип чека
Если Вид = Перечисление.ВидыОперацийЧекККМ.ЧекНаВозврат Тогда
	FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL_RETURN);
Иначе		
	FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL);
КонецЕсли; 
//Запись реквизита телефон или e-mail
Если ПустоеЗначение(Клиент)=0 Тогда 
	FR.setParam(1008, СокрЛП(Клиент)); 
КонецЕсли;
FR.openReceipt(); 

// регистрация продажи  
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл    
	FR.setParam(FR.LIBFPTR_PARAM_PRICE, Цена);     
	FR.setParam(FR.LIBFPTR_PARAM_QUANTITY, Количество);  //Количество товара (тег 1023)
	FR.setParam(FR.LIBFPTR_PARAM_TAX_TYPE, FR.LIBFPTR_TAX_NO );  //	номер налога "БезНДС"
	FR.setParam(FR.LIBFPTR_PARAM_COMMODITY_NAME, Лев(Товар,64));
	//предмет расчета     
	FR.setParam(1212,33);  //параметр для ФФД 1.2!!! 33 - Товар, имеющий КМ, за исключением подакцизного 
	FR.setParam(1214,4);  //Полная оплата
	
	//формируем код маркировки для отправки в ККТ
	Поз=0;
	ТаблМарок.НайтиЗначение(КодМаркировки,Поз,"КодМаркировки");
	ТаблМарок.ПолучитьСтрокуПоНомеру(Поз);
	РезультатПроверки=ТаблМарок.РезультатПроверкиСведений; 
	КодДляККТ=ТаблМарок.КодМаркировкиККТ;
	//	FR.setParam(FR.LIBFPTR_PARAM_MEASUREMENT_UNIT, FR.LIBFPTR_IU_PIECE);   
	//	FR.setParam(2108, 0);
	//	FR.setParam(FR.LIBFPTR_PARAM_MARKING_FRACTIONAL_QUANTITY, "1/2");  
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE, КодДляККТ);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_STATUS, Статус);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT, РезультатПроверки);
	FR.setParam(FR.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);   
	Если FR.registration() <> 0 тогда   //регистрация
		ОтветДрайвера();
		СтатусВозврата(0);
		Возврат;
	КонецЕсли;  
КонецЦикла;
Показать
Прикрепленные файлы:
fptr10_.txt
113. slava_1c 553 02.03.23 11:35 Сейчас в теме
(111) На счет кода. Я повторюсь, что анализ маркировки вне цикла регистрации у меня не давал положительного результата.
Попробуйте все же проверять маркировку непосредственно перед регистрацией а не во внешнем цикле.
114. basil_m 6 02.03.23 12:02 Сейчас в теме
(110)
(113)пробовал после открытия чека, результат одинаковый
112. slava_1c 553 02.03.23 11:09 Сейчас в теме
(111) Посмотрел - так в логе видно что код маркировки проходит без проблем, а ошибка в том что не введена мера расчета, видимо для воды она должна быть.
https://crystals.ru/infocenter/articles/ffd-12-tegi-1212-i-2108/
115. basil_m 6 02.03.23 12:11 Сейчас в теме
(112)FR.setParam(2108, 0); мера количества стоит.
FR.setParam(1212,33); предмет расчета тоже стоит
116. slava_1c 553 02.03.23 12:35 Сейчас в теме
(115) А попробуйте убрать эти строки..
117. basil_m 6 02.03.23 14:57 Сейчас в теме
(116)
(116)убрал. всё тоже. завтра попробую к другому компу подключить ККТ. Если ничего не выйдет, попробую к рознице подцепить и в ней уже попробовать.
Уже перенес код после открытия чека, не взлетает никак(
118. basil_m 6 03.03.23 12:55 Сейчас в теме
Добрый день. Отпишусь о результатах. Попробовал на своем компе ККТ, чек пробивается через раз. Один раз проходит сразу, следующий раз пробиваешь, выходит ошибка 409 [Некорректный код маркировки], перед ней в логах Объекту присвоен код ошибки 422 [Данный КМ отсутствует в таблице]. Через пару секунд отправляешь этот чек еще раз и он пробивается, М+.
Буду пробовать на рознице. Пока не пойму в чем дело.
119. slava_1c 553 03.03.23 15:59 Сейчас в теме
(118) Странная ошибка. А из цикла проверки валидности выходит по таймауту или по переменной LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY
= TRUE выходит? Как вариант больше таймаут поставить. Т.е. влогах должно быть эта переменная false, false а потом true
120. basil_m 6 03.03.23 16:05 Сейчас в теме
Т.е. влогах должно быть эта переменная false, false а потом true - вот именно так в логах и есть, это когда проходит чек. А когда не проходит - всё время false
121. basil_m 6 03.03.23 16:09 Сейчас в теме
Странно, хотя у меня в коде 1С таймаут стоит 20сек., но там даже когда LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY = false всё время, явно проходит пару сек и всё.
Когда проходит чек, то выходит из цикла по LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY (65850) = true
122. slava_1c 553 03.03.23 16:59 Сейчас в теме
(121) У меня сомнение по поводу корректности вот этого кода

	ПроверкаЗавершена=FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY);
				Если ПроверкаЗавершена<>0 Тогда    
					Прервать;
					РезультатПроверкиСведений = FR.getParamInt(FR.LIBFPTR_PARAM_MARKING_CODE_ONLINE_VALIDATION_RESULT); //Результат проверки сведений о товаре (тег 2106) 


Первое. Переменная РезультатПроверкиСведений не достижима, потому что Прервать стоит перед ней.
И второе, раз таймаут не работает - проверяйте чему равна переменная ПроверкаЗавершена - возможно она всегда не равна 0
123. basil_m 6 03.03.23 18:06 Сейчас в теме
(122)Да, насчет прервать, уже заметил, переставил её дальше. А ПроверкаЗавершена когда чек проходит у меня почему-то равна -1, но в чеке печатается М+. Думал, что должна быть 1
124. slava_1c 553 03.03.23 18:38 Сейчас в теме
(123) Значит в 1С77 getParamBool не выдает 0. Попробуйте условие
Если ПроверкаЗавершена = 1 Тогда
125. user1929800 30.03.23 13:53 Сейчас в теме
(124) Добрый день! Торговая сеть по продаже детской одежды. Пользуемся Розницей 2.3. Время от времени терроризирует ошибка (409)
(часть лога)
2023.03.30 14:44:40.031 T:00001DFC INFO [FiscalPrinter] recv header sign=[B65D9C62] deviceID=[A769B8E30A66CEC96FBDDAD5763702FBBFCAAC52] id=015A type=[RESPONSE] len=91
2023.03.30 14:44:40.031 T:00001DFC INFO [FiscalPrinter] recv data { "e" : { "c" : 409, "d" : "Некорректный код маркировки" }, "p" : [ ], "f" : null }
2023.03.30 14:44:40.031 T:00001DFC ERROR [FiscalPrinter] Объекту 0x09B1A0F8 присвоен код ошибки 409 [Некорректный код маркировки]
2023.03.30 14:44:40.031 T:00001DFC INFO [FiscalPrinter] libfptr_cancel_receipt()
2023.03.30 14:44:40.031 T:00001DFC INFO [FiscalPrinter] send header sign=[B65D9C62] deviceID=[A769B8E30A66CEC96FBDDAD5763702FBBFCAAC52] id=015B type=[REQUEST] len=47
2023.03.30 14:44:40.031 T:00001DFC INFO [FiscalPrinter] send data { "m" : "libfptr_cancel_receipt", "w" : false, "p" : [ ] }
2023.03.30 14:44:40.196 T:00001DFC INFO [FiscalPrinter] recv header sign=[B65D9C62] deviceID=[A769B8E30A66CEC96FBDDAD5763702FBBFCAAC52] id=015B type=[RESPONSE] len=58
2023.03.30 14:44:40.196 T:00001DFC INFO [FiscalPrinter] recv data { "e" : { "c" : 0, "d" : "Ошибок нет" }, "p" : [ ], "f" : null }
2023.03.30 14:44:40.198 T:00001DFC INFO [FiscalPrinter] < LIBFPTR_PARAM_JSON_DATA (65645) = ""
2023.03.30 14:44:40.198 T:00001DFC ERROR [FiscalPrinter] Объекту 0x09B1A0F8 присвоен код ошибки 409 [Некорректный код маркировки]
2023.03.30 14:44:43.728 T:00001DFC INFO [FiscalPrinter] > LIBFPTR_PARAM_FN_DATA_TYPE (65622) = 5
2023.03.30 14:44:43.728 T:00001DFC INFO [FiscalPrinter] libfptr_fn_query_data()

Конкретные условия, при которых ошибка себя проявляет выявить не удалось. Однако товар спокойно реализуется, после того как КМ добавляется в РМК повторно. Частота возникновения по всей сети, так же не имеет закономерностей, может не быть неделю, а может возникать десятки раз в день. (Все магазины на ФФД 1.2).
127. user976872 13.06.23 20:45 Сейчас в теме
Добрый день!

У меня проблема при фискализации чека с маркировкой. А конкретно проблема возникает на этапе проверки марки методами ЗапросКМ, ПолучитьРезультатыЗапросаКМ, ПодтвердитьКМ.

При выполнении ПодтвердитьКМ выходит ошибка = неверный аргумент.

Выбытие = Истина;

ИдентификаторЗапроса = УникаьныйУИДсгенерированный на этапе ЗапросКМ.

ПараметрыПодключения.ИДУстройства = "ATOL_KKT_1C_V10#1"

	Результат = ОбъектДрайвера.ПодтвердитьКМ(ПараметрыПодключения.ИДУстройства, ИдентификаторЗапроса, ?(Выбытие, 0 , 1));

При чём в типовой 1с всё отрабатывает. Получается у меня либо какая-то ошибка на этапе проверить статус КМ, и в ККТ неверно устанавливаются данные в готовность к операции ПодтвердитьКМ, либо у меня в самописной подтягивается не тот ОбъектДрайвера для атола ?
128. slava_1c 553 16.06.23 05:47 Сейчас в теме
(127) Добрый день.

Все-таки в данной публикации обсуждается реализация подключения ККМ с помощью функций АТОЛа, а не с помощью обработки написанной для 1С. Что в ней за функции - не известно, лично я такими методами не пользуюсь, поэтому подсказать не смогу.
В любом случае - сначала начинайте тестировать с лога кассы. Там, по крайней мере, видно будет конкретный момент возникновения ошибки.
Если до ошибки там не дошло - смотрите саму обработку в которой реализованы функции ПодтвердитьКМ и пр... Возможно она не для данного драйвера или там, например, нет перечисленных выше аргументов. В конце концов - можно взять встроенную в типовую 1с обработку и подключить ее, тем более что данный вызов функции есть в общем модуле "ПодключаемоеОборудованиеУниверсальныйДрайверКлиент"
129. user1311287 01.08.23 17:37 Сейчас в теме
Здравствуйте!
Пробую использовать приведенный алгоритм в самописной конфигурации, обувь, используемый код вставляется без спецсимволов. getMarkingCodeValidationStatus() не возвращает никакого результата, прерывается по истечению времени с validationResult = 0. В какую сторону копать?
Усложняется тем, что ккт на удаленном рабочем месте, проверить не всегда могу, уже после проверки пришла мысль, возможно ошибка появляется где-то предыдущих шагах, например на beginMarkingCodeValidation(), или и того раньше.
Чек пробивается, в офд под товаром появляется запись КТ ААА=. На печать признаков маркировки не выводится, просто обычная продажа.
130. slava_1c 553 01.08.23 18:51 Сейчас в теме
Добрый день.

Первое что необходимо сделать - получить лог с ккт. Там по шагам будет все видно на каком этапе возникает ошибка.
Ну и конечно проверить ревизию аппарата ккт. Он должен уметь работать с маркированными товарами. ФФД должно быть 1.2.
131. slava_1c 553 01.08.23 19:29 Сейчас в теме
И еще одно - с вашим офд должен быть заключен договор на отсылку данных в Честный знак. Это платно. Просто так касса ничего не отошлет.
132. user1311287 02.08.23 08:33 Сейчас в теме
Спасибо, буду разбираться, думаю причина, скорее во 2. По результатам постараюсь отписаться, вдруг кому будет полезно.
133. Gluk 20 09.08.23 09:18 Сейчас в теме
Подскажите, почему происходит ошибка,
пытаюсь пробить с кодом в base64, в логах драйвера он отображается верно:

1305 (1305) = "0102900197088110215MbLX%ndd;hSl9180BF92a4Yi9UPRPGKcqKOXFUIqp95R1rn4FUvecxLENqkeW6RJuSY­qzSRVSS2cBhPR2QVYx78QJh5ytkD8ZlV3v9m8Jg=="

ошибка:

Объекту 0x14990B40 присвоен код ошибки 148 [Ошибка программирования реквизита 1305 (Превышение длины реквизита)]
134. slava_1c 553 09.08.23 17:30 Сейчас в теме
(133) Добрый день. Как видно из моей публикации, я не пользуюсь программированием данного реквизита, поэтому рекомендаций к этому пути дать не могу.
Проверил приведенный код: с криптохвостом не бьется в ЧЗ, а без криптохвоста бьется, из чего могу допустить что отсканированный код все-таки не верный. Судя по начальным цифрам - всего введен был он с описания остатков.
135. Gluk 20 10.08.23 23:38 Сейчас в теме
Проверяю код, который передаю в чеке, через тест драйвера атол - получаю ответ:
Проверка завершена
КМ был отправлен
Ошибка онлайн проверки: 0 - Ошибок нет
Результат проверки сведений о товаре: 15
Сведения о статусе товара: 1
Результаты обработки запроса: 15
Код обработки запроса: 0

Все правильно вроде.

Можете прислать пример валидного кода?
136. muskul 11.09.23 03:59 Сейчас в теме
А не полный код маркировки, есть еще такие марки, реально через ффд 1.2 пробивать?
137. slava_1c 553 11.09.23 10:41 Сейчас в теме
(136) Если имеется ввиду что есть валидный код без криптохвоста, то его при продаже можно списать через честный знак. Чтобы проверить его валидность, можно сгенерить DataMatrix и проверить через приложение честного знака- там все пройдет и с коротким кодом. Но пробить непосредственно на ККМ код без криптохвоста по ФФД1.2 не получится.
138. muskul 12.09.23 02:32 Сейчас в теме
(137)
что есть валидный код без криптохвоста, то его при продаже можно списать через честный знак. Чтобы проверить его валидность, можно сгенерить DataMatrix и проверить через приложение честного знака- там все

Спасибо, бред конечно, на 1.05 - 1.1 пробить можно с признаком м а на 1.2 уже не дает
139. vap_pig 101 24.01.24 18:40 Сейчас в теме
Подскажите, пожалуйста, кто может в курсе: не проходят коды маркировки табачной продукции (29 символов длиной). Выдает при печати чека ошибку: "Некорректный код маркировки" и чек аннулируется. Пробовал для такого кода задавать тип кода и LIBFPTR_MCT12_AUTO и LIBFPTR_MCT12_SHORT - не помогает. Что может быть?
140. slava_1c 553 24.01.24 20:47 Сейчас в теме
(139)
1. Проверяете код мобильным приложением честного знака - все пункты должны быть зелеными. Если хоть один красный - значит код маркировки не корректен (или временно некорректен - и такое бывает))
2. Если код везде показывает что корректен, нужно смотреть лог кассы. Практически сразу становится все понятно, т.к. лог выводит все сообщения пооперационно.
3. Можно попробовать распечатать данный код с помощью драйвера. И если все пройдет и ошибки не будет - сравнить лог кассы с тем логом который был из программы. Такой подход позволяет выявить неочевидные настройки.
141. vap_pig 101 04.02.24 16:12 Сейчас в теме
(140) Помогло для коротких кодов указать принудительно тип кода маркировки.

Если (СтрДлина(СписокТоваров.КодМаркировкиСоСканера) = 20) или (СтрДлина(СписокТоваров.КодМаркировкиСоСканера) = 25) или (СтрДлина(СписокТоваров.КодМаркировкиСоСканера) = 29) Тогда
	Объект.setParam(Объект.LIBFPTR_PARAM_MARKING_CODE_TYPE, Объект.LIBFPTR_MCT12_SHORT);
Иначе
	Объект.setParam(Объект.LIBFPTR_PARAM_MARKING_CODE_TYPE, Объект.LIBFPTR_MCT12_AUTO);
КонецЕсли;


В итоге успешно проапгрейдил до ФФД 1.2 драйвер для 1С 7.7: https://infostart.ru/marketplace/1280931/
142. user2090991 06.06.24 09:13 Сейчас в теме
Добрый день! У меня проблема с пробитием маркированного товара на кассе. Ситуация в следующем: сканируешь код маркировки высвечивается "код маркировки проверен", затем при регистрации чека пишет "ошибка кода маркировки" ( касса атол-30ф) продать без кассы ( потом приходится делать коррекцию), время от времени можно отменить оплату. Таким образом маркировка пробивается через раз. Не понимаю в чем причина.Сможете помочь в данном вопросе?
143. fi-tec 1 10.06.24 10:53 Сейчас в теме
(142) мало информации.... какое ПО на кассе + логи ККМ в студию
144. user2090991 10.06.24 11:33 Сейчас в теме
(143) ПО контур касса, работаем через контур маркет, касса атол 30 ф,
Прикрепленные файлы:
fptr10.log
145. slava_1c 553 11.06.24 03:16 Сейчас в теме
(144) Добрый день.

1. В приложенном логе не нашел примера отправки маркировки и ошибки связанной с ней
2. Зато в логе есть куча других ошибок, например 11 ошибка - что за параметр 7777 который записывается в настройки соединения? , скорее всего отсюда ошибка "нет соединения с сервером ОФД"...
3. Здесь ветка про самописные конфигурации 1С (в основном). Если речь про конкретное, нередактируемое ПО, самым верным способом все-таки будет обращение на их линию поддержки.
146. MissionOnly 3 05.11.24 15:50 Сейчас в теме
(145) Уже несколько раз перечитываю вашу статью, с намереньем написать свою проверку МАРКИРОВОК через ККТ. Но вот есть один вопрос к вашему коду, который не получил должного освящения.

Что делать если за время "ВремяОжидания" процесс получения СТАТУСА не завершился. У меня реально ОН не завершается.

Что ВЫ предлагаете делать в этом случае?

// Начало проверки
Пока истина Цикл
FR.getMarkingCodeValidationStatus();
Если FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY) тогда
прервать;
КонецЕсли;
Если ТекущаяДата() - ВремяНачала > ВремяОжидания тогда
прервать;
КонецЕсли;
КонецЦикла;
147. slava_1c 553 05.11.24 16:17 Сейчас в теме
(146) Добрый день. На сегодняшний день для большинства товаров действует разрешительный режим. И проверять марки только через ККТ уже не получится.
На самом деле и ранее и сейчас признаком проверки маркировки через драйвер ККТ являлся признак [M+] [M] и [M-]. При этом чек пробивался в любом случае. Теперь же нужно сначала проверить товары программным путем, далее результат проверки вставить в тег 1260. А в случае отрицательного результата чек выбивать нельзя. Вот здесь автор подробно описал процесс : ссылка
149. MissionOnly 3 05.11.24 16:31 Сейчас в теме
(147) Добрый день, все это я изучил. Но абсолютно уверен, что ни какой чек не пробьется (или пробьется не нужным образом), если не сделать нужные действия на ККТ (вне ККТ это лишь информационно и бутафория).

1) Т.к. первая функция открывает запрос на проверку FR.beginMarkingCodeValidation();
2) А вторая функция FR.getMarkingCodeValidationStatus() получает статус маркировки (АСИНХРОННО);
3) Третья FR.acceptMarkingCode() добавляет код маркировки с список проверенных.

Без этого МАРКИРОВКИ не пробьются, как бы хорошо не плясали разработчики 1С вокруг ККТ.

Главный вопрос, что писать в ТЕГИ, если запрос FR.getMarkingCodeValidationStatus() не закончился в отведенное время (100 секунд).

Возможно как профи, вы меня поправите.
152. slava_1c 553 05.11.24 17:42 Сейчас в теме
(149) На счет этого вопроса. Это две разных задачи. Проверка методом ККТ - это одно, а проверка разрешительного режима - это совсем другое. Как я понял, теперь если товар с разрешительным режимом - проверку ККТ можно и не делать. Главное - получить от серверов ЧЗ ответ о проверке возможности продажи товара. Если она прошла, то ее результат и прописывается в тег 1260.
148. slava_1c 553 05.11.24 16:25 Сейчас в теме
(146) Посмотрите еще рекомендации в этой статье https://support.evotor.ru/article/5129097789842
150. MissionOnly 3 05.11.24 16:45 Сейчас в теме
(148) Вот это могло быть решением данной проблемы (у себя я двигаюсь именно в этом направлении):

Зайдите в главном меню Эвотора в приложение «Время проверки КМ», проверьте настройку Продажа без моментальной онлайн проверки КМ.
Если настройка установлена, значит, проверка в ОИСМ отключена. Запрос на проверку КМ отправляется, но терминал не ожидает ответа, поэтому при продаже вы видите статус [М].

Но как это сделать на "AddIn.Fptr10", честно говоря не знаю.
151. slava_1c 553 05.11.24 16:59 Сейчас в теме
(150) Так это и есть проверка методами, описанными в статье. А в Эвоторе это реализовано в их софте. В данном случае - первый режим указанный на скриншоте - 10 секунд таймаута, установленное время - 4 секунды таймаута и третий режим - FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY) не используется вообще.
Вы проверьте, по рекомендации из пункта 2. "Проверьте связь с ОИСМ. Для этого перейдите в раздел: Настройки → Обслуживание кассы и нажмите Поверить связь с ОФД, распечатается чек диагностики."
153. MissionOnly 3 06.11.24 09:16 Сейчас в теме
Спасибо, с ККТ все хорошо. Согласен, FR.getParamBool(FR.LIBFPTR_PARAM_MARKING_CODE_VALIDATION_READY) нет смысла использовать, в случае, если не отдается ответ по маркировке.
154. luda33 24.02.25 19:21 Сейчас в теме
КМ = Лев(ПодготовленныйШК, 31) + Разделитель + Сред(ПодготовленныйШК, 32, 6) + Разделитель + Сред(ПодготовленныйШК, 38);
а после этого не надо КМ переводить в base 24?

подсовываю КМ при печати чека не проходит проверку ЧЗ, в прочем и в base64 тоже не проходит
155. slava_1c 553 24.02.25 20:14 Сейчас в теме
(154) Нет не надо (тем более в base 24)) Главное чтобы сам штрихкод был валидный. На сегодняшний день повсеместно внедрен разрешительный режим, это также надо учитывать при отправке штрихкода - перед всеми манипуляциями - создаете таблицу с запросами на сервера. Вот тут у коллеги подробно https://infostart.ru/1c/tools/2065151/
156. TVA_11 07.03.25 15:17 Сейчас в теме
И никто примера тестового КМ не привел для тестового сервера ИСМ.
Оставьте свое сообщение