ФФД 1.2 на УТ 10.3 маркировка обуви

1. 2 06.10.21 10:57 Сейчас в теме
Нужна помощь в настройке ффд 1.2 на УТ 10.3.71.3 для работы с маркировкой обуви и текстиля. Конфигурация последняя, прошивка ккт атол 5.8.3 , драйвер 10.9.0.4. До перехода на ффд 1.2 ни каких проблем с маркировкой не было. После обновления ни каких ошибок не показывает, чеки в налоговую уходят, даже что то пытается отправить в честный знак
"1059" : [
{
"1023" : 1,
"1030" : "Полотенце пляжное (карта Крыма, морская тематика) (шт)",
"1043" : 380,
"1079" : 380,
"1163" : {
"1305" : "(01)02900003238333(21)LeQnE!YCKZ3DV"
},
но в чз ничего не доходит. Есть мнение что код не должен содержать ковычки.
У кого-то вообще получилось работать в такой конфигурации?
Вознаграждение за ответ
Показать полностью
Найденные решения
153. buka99999 01.12.21 18:18 Сейчас в теме
Добрый день!
Хочу поделиться своим опытом трехдневного запуска ФФД 1.2. )))
Имеем: УТ 10.3.72.2 (все штатно, чеки бьем не из РМК, а из обычного интерфейса самого документа Чека ККМ), Штрих RR-01Ф (версия прошивки: C.3.41963 от 26.08.2021)

Сразу хочу сказать спасибо этой ветки и особенно "andrew.ab" - меня хотя бы направили на путь истинный.
Из коробки естественно ничего не заработало и чем дальше я начал вникать что не так, тем больше понимал, что много что не так. Когда я все для себя финишировал (начали нормально пробиваться чеки), то пришел к выводу, что куча людей доделывают эту программу и каждый из них не может все связать воедино. Элементарный пример:
"ПодключаемоеОборудованиеУниверсальныйДрайверКлиент" функция:"ФискализацияЧека":
Строка:
ДанныеЧека = МенеджерОборудованияВызовСервера.ПолучитьXMLПакетДляФискализацияЧека_ТО(ОбщиеПараметры, ВходныеПараметры, СуммаЧека, ШиринаСтроки, НовыйФормат, ВерсияФФД, ПараметрыФискализации);

В этой строке мы получаем XMLку для пробития чека, но на практике мы ее получаем просто так, так как эти данные нигде далее не используются (ну вот зачем вводить людей в заблуждение и загромождать код). Это лирика и эмоции!!!!
Теперь к делу.


1. Допилил обработку ShtrihMkkt.epf (файл прикреплю). А именно: запихнул в макет штриховскую компоненту от дайвера 5.16.0.886 (в драйвере было две компоненты, одна от ФФД1.1, другая от ФФД1.2); добавил три функции: ЗапросКМ; ПолучитьРезультатыЗапросаКМ; ПодтвердитьКМ (что интересно, в поставке Атоловской - они есть); подправил функцию "СоздатьОбъектДрайвера", чтобы попытка не валилась, т.к. компонента от ФФД1.2 теперь называется SMDrvFR1C34.


2. В общем модуле "МенеджерОборудованияВызовСервера" в функции "РевизияИнтерфейсаДрайверов" изменил:
РевизияИнтерфейса = 3004; //MAScorporation - было 3003
Не смотря на то, что после подмены компоненты (от последнего штриховского драйвера), в котором ревизия начинает определяться как 3004 (ФФД1.2), это место возвращает все на 3003 (ФФД1.1).

3. В этом же модуле добавил функцию (для добавление отсутствующего символа GS1, правда "andrew.ab", здесь немного ошибся и написал неверный символ разделения, точней он верный если драйверу напрямую подкидывать марку в виде строки, но в виде Base64 это не прокатывает):
Функция ВставкаСимволаРазделителяGS1ВШтрихкод(ДанныеКодаТовара) Экспорт //MAScorporation
    
    Штрихкод = Base64ВШтрихкод(ДанныеКодаТовара.ШтрихкодBase64);
    //РазделительGS1 = "<0x1D>";
	РазделительGS1 = Символ(29);
    
    Если Найти(Штрихкод, РазделительGS1) > 0 Тогда
        Возврат ДанныеКодаТовара.ШтрихкодBase64;
    КонецЕсли;
    
    //ДанныеКодаТовара.СерийныйНомер=5Bm2J/KPuYgVT
    ПозицияСерийногоНомера = Найти(Штрихкод, ДанныеКодаТовара.СерийныйНомер);
    ДлинаСерийногоНомера = СтрДлина(ДанныеКодаТовара.СерийныйНомер);
    
    Если ПозицияСерийногоНомера > 0 Тогда
        
        ЛеваяЧастьШтрихкода = Лев(Штрихкод, (ПозицияСерийногоНомера-1)+ДлинаСерийногоНомера);
        СредняЧастьШтрихкода = РазделительGS1 + Сред(Штрихкод, СтрДлина(ЛеваяЧастьШтрихкода) + 1, 6) + РазделительGS1;
        ПраваяЧастьШтрихкода = Сред(Штрихкод, СтрДлина(ЛеваяЧастьШтрихкода) + 7);
        
        Штрихкод = ЛеваяЧастьШтрихкода + СредняЧастьШтрихкода + ПраваяЧастьШтрихкода;
        
    Иначе    
        Возврат ДанныеКодаТовара.ШтрихкодBase64;
    КонецЕсли;    
    
    Возврат ШтрихкодВBase64(Штрихкод);
    
КонецФункции
Показать



4. В этом же модуле в процедуре "СформироватьXMLПакетДляФискализацияЧека" изменил:
 Если ПараметрыФискализации.РевизияИнтерфейса >= 3004 Тогда
						//MAScorporation - закоментил условие и добавил свое условие
						//Если Не ПустаяСтрока(ТекущаяПозиция.КонтрольнаяМарка) Тогда
						//	ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ТекущаяПозиция.КонтрольнаяМарка));
						//КонецЕсли;
						Если НЕ ПустаяСтрока(ТекущаяПозиция.ШтрихкодBase64) Тогда
							ДанныеКодаТовара = МенеджерОборудованияМаркировкаКлиентСервер.РазобратьШтриховойКодТовара(ТекущаяПозиция.ШтрихкодBase64, Истина);
							РеквизитКодаТовара = ДанныеКодаТовара.РеквизитКодаТовара;
							Если НЕ ПустаяСтрока(РеквизитКодаТовара) И Не ПустаяСтрока(ДанныеКодаТовара.ШтрихкодBase64) Тогда // Запись тега 1163
	                			ШтрихкодBase64 = ВставкаСимволаРазделителяGS1ВШтрихкод(ДанныеКодаТовара);
								ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ШтрихкодBase64));
							КонецЕсли;
						КонецЕсли;
						
						Если Не ПустаяСтрока(ТекущаяПозиция.КодЕдиницыИзмерения) Тогда
Показать




5. В модуле "МенеджерОборудованияКлиент" в процедуре "НачатьВыполнениеКомандыТО" вставил попытку перед выполнением команды:
Попытка
				Если ЗначениеЗаполнено(ВходныеПараметры.КонтрольнаяМарка) Тогда	//MAScorporation - запишим правильно ШК
					ДанныеКодаТовара = МенеджерОборудованияМаркировкаКлиентСервер.РазобратьШтриховойКодТовара(ВходныеПараметры.КонтрольнаяМарка, Истина);
					РеквизитКодаТовара = ДанныеКодаТовара.РеквизитКодаТовара;
					Если НЕ ПустаяСтрока(РеквизитКодаТовара) И Не ПустаяСтрока(ДанныеКодаТовара.ШтрихкодBase64) Тогда // Запись тега 1163
		    			ШтрихкодBase64 = МенеджерОборудованияВызовСервера.ВставкаСимволаРазделителяGS1ВШтрихкод(ДанныеКодаТовара);
						ВходныеПараметры.КонтрольнаяМарка	= ШтрихкодBase64;					
					КонецЕсли;  				
				КонецЕсли;
			Исключение	КонецПопытки;
			
			Если Команда = "RequestKM" Тогда
				Результат = ОбработкаОбслуживания.ЗапросКМ(ОбъектДрайвера, ПараметрыККТ, ВходныеПараметры, ВыходныеПараметры, Идентификатор);
			ИначеЕсли Команда = "GetProcessingKMResult" Тогда
				Результат = ОбработкаОбслуживания.ПолучитьРезультатыЗапросаКМ(ОбъектДрайвера, ПараметрыККТ, ВходныеПараметры, ВыходныеПараметры, Идентификатор);
			ИначеЕсли Команда = "ConfirmKM" Тогда
				Результат = ОбработкаОбслуживания.ПодтвердитьКМ(ОбъектДрайвера, ПараметрыККТ, ВходныеПараметры, ВыходныеПараметры, Идентификатор);
			КонецЕсли;
Показать




6. В модуле "РозничныеПродажиКлиент" процедура "ПроверитьКодМаркировкиСредствамиККТ" поставил попытку (обратил внимание, что всегда проверяемая марка имеет один и тотже статус и не важно продажа это или возврат):
  ПараметрыСканирования = ШтрихкодированиеИСКлиент.ПараметрыСканирования(ФормаВладелец);
	Попытка //MAScorporation - иначе всегда будет "Возврат в оборот при розничной реализации"
		Если ФормаВладелец.ВидОперации=Перечисления.ВидыОперацийЧекККМ.Продажа Тогда
			ПараметрыСканирования.ВидОперацииИСМП	= Перечисления.ВидыОперацийИСМП.ВыводИзОборотаРозничнаяПродажа; 
		КонецЕсли
	Исключение КонецПопытки;
	Если ФормаПросмотра <> Неопределено



7. В модуль справочника "КассыККМ" функцию "ПараметрыКассыККМ" сделал правку в запросе, т.к. без этой правки всегда возвращается первая попавшаяся Касса ККМ и не факт что нужная вам.
Запрос.Текст ="ВЫБРАТЬ
	              |	КассыККМ.Ссылка КАК КассаККМ,
	              |	КассыККМ.Владелец КАК Организация,
	              |	КассыККМ.СерийныйНомер КАК СерийныйНомер,
	              |	ТорговоеОборудование.Идентификатор КАК ИдентификаторУстройства
	              |ИЗ
	              |	Справочник.КассыККМ КАК КассыККМ
	              |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТорговоеОборудование КАК ТорговоеОборудование
	              |		ПО КассыККМ.Ссылка = ТорговоеОборудование.КассаККМ
	              |ГДЕ
	              |	КассыККМ.Ссылка = &Ссылка
	              |	И ТорговоеОборудование.Компьютер = &Компьютер
	              |	И ТорговоеОборудование.Подключено = ИСТИНА"; 
	
	Запрос.УстановитьПараметр("Ссылка", КассаККМ);
	Запрос.УстановитьПараметр("Компьютер", ИмяКомпьютера());//MAScorporation - добавил это условие и еще: |	И ТорговоеОборудование.Подключено = ИСТИНА
Показать




8. В модуле справочника "ТорговоеОборудование" в функции "ПолучитьПараметрыРегистрацииУстройства" в конце добавил:
 РезультатОперации.ВерсияФФДККТ           = "1.2";	 //MAScorporation
	РезультатОперации.ВерсияФФДФН            = "1.2";	 //MAScorporation
	Возврат РезультатОперации;

Дело в том, что запрос который в этой функции отрабатывает, всегда будет возвращать пустоту, т.к. идет обращение к таблице справочника, которая на данный момент всегда пустая. Если не сделать эту правку (в моем случае), то не будет инициироваться процесс проверки кодов марки фискальником.


9. И на последок абсурдный косяк. В модуле документа "ЧекККМ" в функции "ПараметрыОперацииФискализацииЧека"
вместо строки:
ПараметрыОперацииФискализацииЧека.ТипРасчета = ПредопределенноеЗначение("Перечисление.ТипыРасчетаДенежнымиСредствами.ПриходДенежныхСредств");


написал условие (без него всегда будут пробиваться чеки прихода ))))) ):

Если ВидОперации=Перечисления.ВидыОперацийЧекККМ.Возврат Тогда //MAScorporation
		ПараметрыОперацииФискализацииЧека.ТипРасчета = ПредопределенноеЗначение("Перечисление.ТипыРасчетаДенежнымиСредствами.ВозвратДенежныхСредств");
	Иначе
		ПараметрыОперацииФискализацииЧека.ТипРасчета = ПредопределенноеЗначение("Перечисление.ТипыРасчетаДенежнымиСредствами.ПриходДенежныхСредств");
	КонецЕсли;


10. Небольшой совет. Если идет попытка пробить некорректную марку и фискальник стопориться с ошибкой:
"d3h код товара не распознан", то зайдите в свойства фискильника и исправьте:
Таблица 17 строка 41 "RUS принимать все КТ" = 1
В этом случае независимо от корректности марки чек будет печататься.



Вот как то так.
1carbon; корум; The Ant; naboko; andrew.ab; user1444721; lenwood; +7 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. anykey_vrn 06.10.21 11:22 Сейчас в теме
(1) Насколько я понял ОФД еще не показывает чеки с марками переданными через ФФД 1.2.
3. webandroid 2 06.10.21 11:37 Сейчас в теме
(2) мне кажется, что теги маркировки касса сама передает напрямую в честный знак. Есть нормально рабочая Розница на ФФД 1.2 так там в ОФД ничего не видно , но в честный знак все доходит. Тут же в честном знаке ничего не приходит.

В рознице теги в чеке таком виде
КТ GS1.М 010088691200344121bs4h_bjrnmT!O

в УТ 10
КТ GS1.М (01)02900003238333(21)LeQnE!YCKZ3DV
4. anykey_vrn 06.10.21 11:49 Сейчас в теме
(3) Скобки по идее не должны влиять на то поймет марку ЧЗ или нет. Если верно помню, типовой код нормализует марку и добавляет скобки. Еще проблема может быть в отсутствие крипто хвоста. На чеке в итоге печатается +М, -М или просто М?
9. webandroid 2 06.10.21 13:28 Сейчас в теме
(8) У меня ИСМ заполнен, скажу больше, в ут 10,3 есть обработка проверки марки так там все нормально проверяет и показывает состояние марки.
или вы у меня спрашиваете?
5. webandroid 2 06.10.21 12:49 Сейчас в теме
нет вообще не печатается ни какая М
6. webandroid 2 06.10.21 12:56 Сейчас в теме
вот еще пример json выгрузки куска чека с маркировкой где все работает на 1с8 Розница
"1059" : [
{
"1023" : 1,
"1030" : "Куртка СV 8271",
"1043" : 4855,
"1079" : 4855,
"1163" : {
"1305" : "010290002056886421::OzM:YaWlSG<"
},
"1199" : 6,
"1212" : 1,
"1214" : 4,
"2102" : 0,
"2106" : 15
}
],
7. webandroid 2 06.10.21 13:10 Сейчас в теме
оператор ОФД ответил на мое обращение:

в тексте марки присутствуют скобки (01)02900003238333(21)LeQnE!YCKZ3DV
Согласно инструкции https://sbis.ru/help/data_exchange/marking/info/kod_mark их быть не должно

Подскажите в какой процедуре формируется код маркировки для отправки в кассу
10. user733948 07.10.21 17:03 Сейчас в теме
(7) Общий модуль МенеджерОборудованияВызовСервера

процедура ЗаписатьДанныеКодаТоварнойНоменклатуры
webandroid; +1 Ответить
11. webandroid 2 08.10.21 21:50 Сейчас в теме
(10) действительно в этой процедуре, но после того как были убраны скобки результат не изменился :( М по прежнему нет и в честный знак ничего не передается. У кого еще есть варианты решения?
12. user1488313 08.10.21 21:52 Сейчас в теме
(11)
Обновить драйвер и прошивку?
15. webandroid 2 09.10.21 01:22 Сейчас в теме
(12)драйвер 10.9.0.8 прошивка 5.8.14
13. user1488313 08.10.21 21:53 Сейчас в теме
(11)

А вообще что мешает посмотреть убираются ли коды маркировки из оборота?
16. webandroid 2 09.10.21 01:23 Сейчас в теме
(13)с этого и начинал, в честном знаке нет информации о чеке, вообще ничего.
14. user1488313 08.10.21 21:54 Сейчас в теме
(11)
Ну и как вариант, т.к. обычные формы - посмотреть что там в обработке и может ее тоже нужно обновить
17. webandroid 2 09.10.21 01:23 Сейчас в теме
(14)обработка уже давно не обновлялась, проверял.
18. user733948 09.10.21 07:56 Сейчас в теме
(17) Если Вы про обработку обслуживания ККТ Атолл, то она обновилась ... точнее в ней обновилась компонента интеграции. Но проблему это не решило. Чеки бьются, но без буквы М. В ОФД приходит информация о марке, но никуда дальше не уходит. Раньше КМ в ЛК ОФД маркировался как "код товара", теперь KtGS1M_1305.

Пробивали чек в отладке, вроде как данные по марке заполняются в структуре XML, которая передается на ККТ.

Примерно так это выглядит <GoodCodeData GS1.M="KDAxKTAyOTAwMDA5Mzg4NDQ1KDIxKSxEP2VpaFBBYko8SG4="/>

Немного смущает тот факт, что на сайте its https://its.1c.ru/db/metod8dev#content:4829:hdoc:goodcodedata)

cогласно описанию требований к разработке драйверов в FiscalString должен быть тег MarkingCode

Фискализация чека
• Если КМ была проверена методом ЗапросКМ() и получен результат методом ПолучитьРезультатыЗапросаКМ() и подтверждена к выбытию методом ПодтвердитьКМ() – такую КМ можно включать в фискальный чек.
• Необходимо заполнить для фискальной сроки атрибут «MarkingCode» - полной КМ в BASE64.
• ККТ после фискализации чека формирует документ «Уведомлении о реализации МТ» и отправляет его в ОФД.


Получается в тег MarkingCode нужно передавать полную марку закодированную в BASE64
Прикрепленные файлы:
28. webandroid 2 10.10.21 13:21 Сейчас в теме
(18)
Получается в тег MarkingCode нужно передавать полную марку закодированную в BASE64

то что должно передаваться в BASE64 это точно, но как это засунуть в тег MarkingCode не понятно. Нужно смотреть в Рознице 2.3, там все получается и по этому принципу переделывать. У меня пока нет возможности сравнить.
32. Stas84 10.10.21 17:31 Сейчас в теме
(28)Проанализировал закрытие чека в отладчике в УТ И КА и выяснил следующее
В КА выполняются следующие команды
1. RequestKM (передается полная метка в base64)
2. GetProcessingResult
3. Confirm KM
4. Fiscalization (В параметрах товаров передается также полная метка фомате base64 И Штрихкод64 (тоже самое что и в метке))

В УТ выполняются следующие команды
1. Fiscalization (В параметрах товаров передается только штрихкод(метка в сокращенном формате))
Antoska; webandroid; +2 Ответить
33. Stas84 10.10.21 17:41 Сейчас в теме
(28) Засунуть можно сюда
Прикрепленные файлы:
31. Stas84 10.10.21 17:27 Сейчас в теме
(18) Скорее всего вы правы. Вот xml из КА
Скрытый текст


Пробовал подставить эту строку в УТ перед пробитием в отладчике. Получил ошибку возможны расхождения иб и ленты. Метка не проверена
38. user733948 10.10.21 18:51 Сейчас в теме
(31) Как здесь уже заметили, в полной марке должны быть FNC коды.

Мне как-то приходилось их вставлять в полную марку для корректной печати DataMatrix



			Разделитель = Символ(29);
			
			Лев31 = Лев(QRСтрока, 31);
			Хвост = Прав(QRСтрока, СтрДлина(QRСтрока)- 31);
			
			Если Лев(Хвост,1) = Разделитель Тогда
				Хвост = Сред(Хвост, 2);
			КонецЕсли;
			
			Сред6 = Лев(Хвост, 6);
			Хвост = Прав(Хвост, СтрДлина(Хвост)-6);
			
			Если Лев(Хвост,1) = Разделитель Тогда
				Хвост = Сред(Хвост, 2);
			КонецЕсли;
			
			ШтрихкодДляКомпоненты = Лев31+Разделитель+Сред6+Разделитель+Хвост;	
			
			ПотокВПамяти = Новый ПотокВПамяти;
			
			ЗаписьДанных = Новый ЗаписьДанных(ПотокВПамяти, КодировкаТекста.ANSI, ПорядокБайтов.BigEndian);
			ЗаписьДанных.ЗаписатьСимволы(ШтрихкодДляКомпоненты, КодировкаТекста.ANSI);
			ЗаписьДанных.Закрыть();
			
			ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
			
			ЗначениеШтрихкодаДляКомпоненты = Base64Строка(ДвоичныеДанные);	

Показать
40. webandroid 2 10.10.21 20:06 Сейчас в теме
(38)
FNC коды

где-то тут на форуме я читал что FNC коды нужны только для печати, при считывании их уже нет
43. webandroid 2 10.10.21 20:28 Сейчас в теме
(31)в ут 10.3 есть интересная обработка проверки статусов марок, так вот в ней действительно все проверки проходят нормально. Если будет время посмотри туда, может поможет.
20. Stas84 09.10.21 17:30 Сейчас в теме
(17)У Вас касса АТОЛ? Мне пришлось в обработке AtolKkt заменить интеграционную компоненту самостоятельно(взял из драйверов). В последней скаченной обработке была почему-то старая. Без этого чеки вообще не печатались.
22. webandroid 2 09.10.21 21:48 Сейчас в теме
(20)нет я в самой обработке ничего не менял, но в настройках видит драйвер 10.9
27. Stas84 10.10.21 00:18 Сейчас в теме
(22)Я использовал обработку обслуживания из папки с обновлением.
В макете старая версия интеграционной компоненты, взял ее из папки с драйвером.
Прикрепленные файлы:
30. webandroid 2 10.10.21 13:28 Сейчас в теме
(27)
Я использовал обработку обслуживания из папки с обновлением

смущает на вашей картинке версия файла драйвера 10.6.0.2 . должно быть 10.9.0.4 или 10.9.0.8
34. Stas84 10.10.21 17:45 Сейчас в теме
(30)так было в типовой, поэтому я заменил содержимое архива, о чем и писал. Вопрос где вы взяли нормальную обработку AtolKKt,epf, в которой было 10.9.0.8. Можете прислать ее мне? Может кроме этого есть еще различия в них?
37. Stas84 10.10.21 18:20 Сейчас в теме
(34)Возможно я непонятно выразился, версия интеграционной компоненты должна соответствовать версии драйвера 10.9.0.4 или 10.9.0.8. В типовой обработке из комплекта поставки обновления и на сайте users.1cv8 была 10.6.0.2
39. webandroid 2 10.10.21 20:03 Сейчас в теме
(37)обработка старая , я "руками" положил файл нужной версии в папку с компонентами. И на всякий случай удалил 10.6.0.2 и вместо него положил переименованный 10.9.0.8 в 10.6.0.2
19. Stas84 09.10.21 17:22 Сейчас в теме
Владимир добрый день. У нас УТ 10.3, последний релиз. ОФД Сбис. Ситуация один в один как у Вас. Чек в офд уходит со скобками. В честном знаке из оборота товар не уходит. На бумажном чеке букв М нет вообще. Пробую провести чек через 1С КА2 при сканировании пишет не найден "Полный" код маркировки. УТ 10.3 принимает короткие коды (без криптохвоста) и не ругается. В тест драйвере на закладке проверка маркировки тоже нужны коды с криптохвостом. Может это недоработка УТ10 что при сканировании она передает урезанный штрихкод в ККТ
23. webandroid 2 09.10.21 21:51 Сейчас в теме
(19)не понял что такое 1с КА2 :( у меня в 1с8 розница с теми-же кодами все уходит нормально.
25. Stas84 10.10.21 00:04 Сейчас в теме
(23)1С Комплексная автоматизация 2.4
26. Stas84 10.10.21 00:05 Сейчас в теме
(23)Не пробовали найти и проанализировать лог из Атол при печати из розницы и УТ10? Какие будут отличия в тегах.
29. webandroid 2 10.10.21 13:25 Сейчас в теме
35. Stas84 10.10.21 17:55 Сейчас в теме
(29)Думаю сравнивать теги нет смысла. Теги формируются на основе xml, в нем должен передаваться MarkingCode. Скорее всего он нужен для списания марки в ЧЗ. Кроме этого 1с перед командой фискализации должна отправить в кассу еще 3 команды 1. RequestKM (передается полная метка в base64), 2. GetProcessingResult, 3. Confirm KM После этого касса принимает метку переданную командой фискализация. В УТ этот механизм не доделан. Скорее всего нужна новая обработка AtolKKT.epf которая это будет делать.
Методы RequestKM, GetProcessingResult, 3. ConfirmKM в конфигурации реализованы, но не используются
webandroid; +1 Ответить
41. webandroid 2 10.10.21 20:13 Сейчас в теме
(35)
Скорее всего нужна новая обработка AtolKKT.epf

я тоже пришел к такому выводу. У меня не хватит квалификации самому делать, решил ждать универсальную обработку ко всем конфигурациям 8.2 от Палтусова. А может кто-то еще сюда что-то скинет.
48. dir-kbs41 20.10.21 08:17 Сейчас в теме
(41)Универсальная обработка от Палтусова не помогла.
Вчера приобрел свежую версию для ФФД 1.2 под атол. Сегодня проверял в УТ 10.3.71.3.
Марки в Чек ККМ считал как обычно. Но чек не пробился и ошибку не выдал никакую.

Судя по инструкции от Палтусова, нужно в Чек ККМ в табличную часть "Товары" добавить новый строковый реквизит "Марка".
Но опять-таки непонятно, что это даст.... Он видимо предполагает, что марку в это поле будем считывать, но зачем, ведь есть типовая табличная часть в которой коды уже хранятся? Зачем свое поле создавать и считывать туда?
Да даже если добавить, то считать в поле "Марка" не получится больше чем 1 марку для каждой строки чека. А если у нас три шт. шин продается под одним наименованием, не будем же мы в чеке делать три строки по 1 шт. в каждой?

Еще пробовал марку от шины напрямую передавать в XML в обработке от Палтусова перед фискализацией чека. Ничего не происходит, ККТ ошибку не выдает и чек не пробивает.
51. webandroid 2 20.10.21 15:59 Сейчас в теме
(48) У Палтусова не готова обработка. И похоже что он не скоро ее доделает. Я у него в обсуждении тоже писал что ничего не получается, но ни какого ответа нет. Пока ни каких решений не нашел :(
57. dir-kbs41 21.10.21 12:07 Сейчас в теме
(51)Конкретная подстава получается со всех сторон.
67. dir-kbs41 22.10.21 06:15 Сейчас в теме
(62)Пробовал, не понравилось клиенту. Дополнительное окно открывается перед пробитием. А хотят чтобы как по типовому было, чтобы чек пробивался без открытия дополнительных окон, а просто ОК нажали и пробилось.
70. karpik666 3425 23.10.21 23:33 Сейчас в теме
(67) вообще-то это окно отключаемое, в параметрах программы, и будет как вы хотите. есть подробная инструкция
21. Stas84 09.10.21 17:58 Сейчас в теме
В итоге в КА при добавлении товара в чек появилось сообщение, проверка кода маркировки. Товар добавился. При пробитии чека ругается ошибка программирования реквизита 2108. Этот реквизит проверяется прошивкой только для маркированного товра, вопрос почему чек из УТ10.3 пробивается без этой ошибки. Может в УТ чек пробивается как НЕ маркированный и не все теги передаются в ККТ. (не печатается буква М и товар не уходит из честного знака )

Подскажите как посмотреть какие теги передаются в чек на кассах АТОЛ ? Может есть какой эмулятор, на которм видно или где то в логах ккт видно?
24. webandroid 2 09.10.21 22:02 Сейчас в теме
(21)Я не пользовался эмулятором. УТ не передает тег проверки марки.
В драйвере атол вкладка "работа с json" в верхнее поле вставляем
{"type": "getFnDocument", "fiscalDocumentNumber": 10240}
где 10240 это номер вашего документа. Потом нажать "выполнить задание"
36. Stas84 10.10.21 18:13 Сейчас в теме
При кодировании полной метки в base64 обратите внимание на наличие символов FNC1. Полученный код должен проверяться через тест драйвер, результат проверки должен быть 15
Прикрепленные файлы:
wild83; webandroid; +2 Ответить
42. webandroid 2 10.10.21 20:24 Сейчас в теме
(36)это да, но возможно проверка через драйвер отличается от проверки через связку 1с-драйвер. Я пробовал вставлять в поле для проверки не base64, и без FNC1, так драйвер сам добавляет FNC1. Возможно это особенность драйвера. В любом случае без доработки конфигурации и AtolKKT.epf нам это не поможет.

В очередной раз я наивно поверил в описание обновления ут 10.3.71.3 что адаптирована под ФФД 1.2. А это оказался просто развод :(
49. olbu 20.10.21 13:34 Сейчас в теме
(36)Сейчас сам столкнулся, что мои кода марок не пропускает проверка в драйвере кассы ФФД 1.2 DTO 10.9.08, я беру полную КМ, кодирую в base64, на том же сайте, но у меня выдает код обработки запроса 2 - те не верная КМ, похоже у меня нет символов FNC1, я понял это символ 29, и ставить его надо в 2 места, после gtin+серийный номер, а вот 2 место? куда ставить во второе место?
50. olbu 20.10.21 14:32 Сейчас в теме
(49)сам отвечу, надо добавить символы разделители GS (Это Символ(29)) после Cis - это 31 символ и после 38 символа.
После закодировать в base64.
Но у меня после кодировки в base64, в начале строки было "77u/", пока не понял, из-за чего оно появилось, убрал "77u/" и Атол "Проглотил" Код маркировки...

Например:
Лев(КодМаркировки, 31) + РазделительGS1
	+ Сред(КодМаркировки, 32, 6) + РазделительGS1
	+ Сред(КодМаркировки, 38)
44. Stas84 11.10.21 19:58 Сейчас в теме
Проблема с ФФД 1.2 для УТ10.3 сейчас обсуждается на партнерском форуме 1С. Отправили обращение в поддержку 1С. Надеюсь в ближайшее время исправят ситуацию. У нас до конца месяца время еще есть. Свои костыли писать пока нет возможности.
45. webandroid 2 12.10.21 10:41 Сейчас в теме
(44)
Надеюсь в ближайшее время исправят ситуацию.

мне бы ваш оптимизм :)
46. dir-kbs41 15.10.21 06:38 Сейчас в теме
Кто-нибудь нашел информацию о том, когда обновят обработку обслуживания для ККТ Атол?
47. olbu 18.10.21 14:36 Сейчас в теме
Я так же столкнулся с проблемой передачи данных в Тэг "GoodCodeData", делаю так:
ЗаписьXML.ЗаписатьАтрибут("GS1.M=", XMLСтрока(ШтрихкодBase64));
- у меня валится 1с, подскажите пжста, что передавать в название атрибута? вместо "GS1.M="?
У меня Обувь.
52. OiSorry 21.10.21 09:36 Сейчас в теме
(47) я не добавлял в тэг "GoodCodeData" ни чего, а просто записал код маркировки (без криптохвоста) в тэг "MarkingCode" (в base64) а касса сама запихнёт в тег GoodCodeData. PS: Данные в ЧЗ через ОФД передаются, но я не заморачивался на счёт проверки (М+) у меня всегда в чеке М
54. olbu 21.10.21 09:51 Сейчас в теме
(52)А касса обновлена до ФФД 1.2?
делаю так:
//ЗаписьXML.ЗаписатьАтрибут("MarkingCode", XMLСтрока(ШтрихкодBase64));//НЕ работает

Касса (Атол 77Ф с ФФД 1.2) выдала вот такую ошибку: "Неподдерживаемый тип кода товара".

делаю так:
ЗаписьXML.ЗаписатьАтрибут("GS1.M", XMLСтрока(ШтрихкодBase64));

Чек печатается, но буквы [М] - на печатном чеке нет...
Пока не могу понять, как добиться вывода [М]?
55. OiSorry 21.10.21 10:03 Сейчас в теме
(54) да касса под ФФД 1.2, MarkingCode нужно записывать отдельно, а вы, как я понял, записывайте в GoodCodeData ?
ну и и естественно будет нужна связка проверки и подтверждения КМ, чтобы появилась М в чеке
56. olbu 21.10.21 11:54 Сейчас в теме
(55)Спасибо!
Сделал, как Вы сказали, правда Код марки не настоящий и Атол 77Ф - тестовый (под ФФД 1.2), вышло вот это:
"Контрольная марка не проверена".
Буду пробовать на рабочей кассе.
58. OiSorry 21.10.21 12:15 Сейчас в теме
(56) контрольная марка не проверена - это значит что вы не подтвердили этот код методом ПодвердитьКМ
59. olbu 21.10.21 12:21 Сейчас в теме
(58)Метод ПодвердитьКМ - вызывал, но наверное, из-за тестовой кассы, это не сработало... жду возможности проверить на рабочей кассе +, как я ранее писал, Код марки так же тестовый...
60. olbu 21.10.21 13:35 Сейчас в теме
(58)Попробовал на Боевой кассе с реальным кодом Марки, все равно вышла ошибка "Контрольная марка не проверена", передавал в Тэг "MarkingCode" - короткую марку (31) символ, закодированную в base64 без символов GS. При этом проверка пройдена удачно (0 и 15).
Еще раз перечитал вот это "Необходимо заполнить для фискальной сроки атрибут «MarkingCode» - полной КМ в BASE64."
Пробовал передать туда такую же закодированную в base64 полную марку с символами GS, как и передаю для проверки, вышло вот эта ошибка:
"Ошибка программирования реквизита 1305 (Повтор реквизита невозможен)".

Что я упустил? не подскажите?
61. olbu 21.10.21 13:52 Сейчас в теме
(60)Снова отвечу сам: Как ранее было указано в (52), спасибо OiSorry, просто надо было читать внимательнее, я не стал передавать в тэг "GoodCodeData" - ничего, а передал в тэг "MarkingCode" - Полный код с символами GS в base64, чек вышел в чеке было [М+].
dance000; +1 Ответить
63. succub1_5 83 21.10.21 16:09 Сейчас в теме
(61)Кусок кода формирования "с символами GS в base64" и создания xml скиньте пожалуйста.
У нас самописная конфа, одна касса только переехала на ффд 1.2.

Сейчас из типовой УТ 11 скопипастил - формируется такая xml:
<Positions>
		<FiscalString Name="Товар 1" Quantity="1" PriceWithDiscount="0" AmountWithDiscount="0" DiscountAmount="" Department="0" VATRate="0" PaymentMethod="4" CalculationSubject="1" CountryOfOrigin="" CustomsDeclaration="">
			<GoodCodeData GS1.0="MDEwODgwODU2MzUwMjkwODIxaEJEbFRiZ1NOQ3lhQzkxRUUwNjkyeFhQc­C9uK0NWSFRPVlFYYWJuRjFoZ01xNVVyTnMxY0NiVlVpcGQyZ3NnOD0="/>
			<AgentData/>
			<VendorData/>
		</FiscalString>
	</Positions>
64. olbu 21.10.21 16:40 Сейчас в теме
(63)Я пока не решил вопрос, передачи Кода марок в ОФД, что бы они передавались с "444D" (У нас Обувь).
Написал у себя функцию (У нас 8.2):
Функция ЗакодироватьКодМаркировкиBase64(КодМаркировки, ТолькоЗ1Симовол = Ложь) Экспорт 
	
	РазделительGS1 = МенеджерОборудованияМаркировкаКлиентСервер.РазделительGS1();//Символ(29)//Это символ GS1
	
	ВременныйФайл = ПолучитьИмяВременногоФайла();
	Запись = Новый ЗаписьТекста(ВременныйФайл);
	Если ТолькоЗ1Симовол Тогда
		Запись.Записать(
		Лев(КодМаркировки, 31)
		);
	Иначе 
		Запись.Записать(
		Лев(КодМаркировки, 31) + РазделительGS1
		+ Сред(КодМаркировки, 32, 6) + РазделительGS1
		+ Сред(КодМаркировки, 38)
		);
	КонецЕсли;
	
	Запись.Закрыть();
	
	Дв = Новый ДвоичныеДанные(ВременныйФайл);
	ВремШтрихкодBase64 = Base64Строка(Дв);
	ШтрихкодBase64 = ?(Лев(ВремШтрихкодBase64, 4) = "77u/", Сред(ВремШтрихкодBase64, 5), ВремШтрихкодBase64);
	УдалитьФайлы(ВременныйФайл);
	
	Возврат ШтрихкодBase64;
	
КонецФункции
Показать
Stas84; succub1_5; webandroid; +3 Ответить
53. olbu 21.10.21 09:43 Сейчас в теме
(47)Отвечу сам:
в тег "GoodCodeData" я передавал Штрихкод в кодировке Base64, но там была ошибка, я не верно тупо кодировал...
66. Stas84 21.10.21 17:12 Сейчас в теме
(53) Подскажите что в итоге? Марка списывается из оборота? На чеке печатается М,М+,М- ?
68. olbu 22.10.21 08:06 Сейчас в теме
(66)на чеке видно М+, но в Честном Знаке, она в обороте, предполагаю, что в ОФД ее надо передавать не так, как сейчас "010460....", а так "444D0460...", пока работаю над этим.
65. Stas84 21.10.21 17:07 Сейчас в теме
1C на наше письмо по этому поводу ответила, что планируется выпустить обновление 25.10.21. Надеюсь не подведут по срокам
69. webandroid 2 23.10.21 10:21 Сейчас в теме
71. user1688205 26.10.21 09:27 Сейчас в теме
Подскажите, обновление еще не выпустили?
72. user1444721 26.10.21 09:39 Сейчас в теме
(71)Пока ещё нет нового релиза, последний 10.3.71.3 от 30.09.21
73. Stas84 26.10.21 21:49 Сейчас в теме
Пока нет. Видимо зря понадеялся на обещания 1С
77. Stas84 29.10.21 16:58 Сейчас в теме
(73) На наше письмо в контрольную группу пришел следующий ответ

"По информации от разработчиков: оборудование с ФФД 1.2 работает очень медленно, разработка затягивается.
В настоящее время релиз на тестировании. Планируется выпустить в начале следующей недели."
74. vetalhmao 28.10.21 20:10 Сейчас в теме
Есть у кого-нибудь Обработка для ККТ ATOL, из последнего релиза обработка от 30.09.2021 ATOLkkt.epf, ошибка печати чека, драйвер атол 10.9.0.8
75. user733948 29.10.21 16:22 Сейчас в теме
Удалось добиться "M+" в УТ 10.3 10.3.71.3 , что для этого пришлось сделать:

1. Получить полную марку и записать ее с символами gs1, закодированную в BASE64, в структуру фискальной строки в поле "КонтрольнаяМарка".

2. Дописать модуль ПодключаемоеОборудованиеУниверсальныйДрайверКлиент - где непосредственно перед вызовом ОбъектДрайвера.СформироватьЧек ... прописан код по проверке марки согласно инструкции на сайте ИТС.

3. Закомментировать в модуле МенеджерОборудованияВызовСервера в процедуре ЗаписатьДанныеКодаТоварнойНоменклатуры прописание тега "GoodCodeData" (по советам из этого обсуждения) ... может это лишнее, не проверял без комментирования.
Stas84; webandroid; +2 Ответить
76. Stas84 29.10.21 16:55 Сейчас в теме
(75) Подскажите марка из честного знака списалась?
78. user733948 29.10.21 17:11 Сейчас в теме
(76) Пока не известно. На этой кассе какой-то подписки не хватает. Как будет результат, отпишу.
79. Stas84 29.10.21 17:19 Сейчас в теме
(78) Можете выложить Ваш код по проверке марки, согласно инструкции на сайте ИТС? У нас касса готова со всеми прошивками и подписками, смогу пробить тестовый чек.
81. user733948 30.10.21 14:03 Сейчас в теме +0.5 $m
(79)

Модуль ПодключаемоеОборудованиеУниверсальныйДрайверКлиент , процедура ФискализацияЧека строка 1555 (типового модуля)

	 	Если ПараметрыФискализации.СформироватьЧекКоррекции Тогда
			ДанныеЧекаXML = ПараметрыФискализации.ДанныеЧекаXMLПерсональныеДанные;
			Если ПараметрыФискализации.РевизияИнтерфейса >= 3000 Тогда // Версия стандарта 3.0 (ОФД 1.1)
				Результат = ОбъектДрайвера.СформироватьЧекКоррекции(ПараметрыПодключения.ИДУстройства, ДанныеЧекаXML, ПараметрыФискализации.РезультатОперацииXML);
			Иначе
				Результат = ОбъектДрайвера.СформироватьЧекКоррекции(ПараметрыПодключения.ИДУстройства, ДанныеЧекаXML, ПараметрыФискализации.НомерЧекаККТ, ПараметрыФискализации.НомерСменыККТ, 
					ПараметрыФискализации.ФискальныйПризнак, ПараметрыФискализации.АдресСайтаПроверки); 
			КонецЕсли;
			ПараметрыФискализации.ДатаВремяЧека = ДатаСеанса;
		Иначе
			Если ПараметрыФискализации.ЕстьПерсональныеДанные Тогда
				ДанныеЧекаXML = ПараметрыФискализации.ДанныеЧекаXMLПерсональныеДанные;
			Иначе   
				ДанныеЧекаXML = ПараметрыФискализации.ДанныеЧекаXML;
			КонецЕсли;
                        //ВСТАВЛЯЕМ СЮДА (по крайней мере у клиента сюда у ходил алгоритм проведения), это строка 1555 модуля
			Попытка
				Если ПараметрыФискализации.РевизияИнтерфейса >= 3000 Тогда // Версия стандарта 3.0 (ОФД 1.1)
					Результат = ОбъектДрайвера.СформироватьЧек(ПараметрыПодключения.ИДУстройства, ПараметрыФискализации.Электронно, ДанныеЧекаXML, ПараметрыФискализации.РезультатОперацииXML); 
				Иначе // Версия стандарта 2.2 и выше (ОФД 1.0.5)
					Результат = ОбъектДрайвера.СформироватьЧек(ПараметрыПодключения.ИДУстройства, ПараметрыФискализации.Электронно, 
						ДанныеЧекаXML, ПараметрыФискализации.НомерЧекаККТ, ПараметрыФискализации.НомерСменыККТ, ПараметрыФискализации.ФискальныйПризнак, ПараметрыФискализации.АдресСайтаПроверки); 
				КонецЕсли;
				ПараметрыФискализации.ДатаВремяЧека = ДатаСеанса;
			Исключение
				Результат = Ложь;
				СформироватьОшибкуДрайвера(ВыходныеПараметры, "СформироватьЧек", ОписаниеОшибки());
			КонецПопытки;
		КонецЕсли;


Показать


Собственно сам код, на совершенство не претендует. Делал по инструкции 1С с сайта ИТС + одним глазом смотрел код УТ 11

			Если ПараметрыФискализации.РевизияИнтерфейса >= 3004 И ТипЗНЧ(ВходныеПараметры) = Тип("Массив") И ВходныеПараметры.Количество() = 1 Тогда
				
				ПараметрыФискализацииЧека = ВходныеПараметры[0];
				
				ЕстьКМ = Ложь;
				Для Каждого СтрокаЧека из ПараметрыФискализацииЧека.ПозицииЧека Цикл
					Если СтрокаЧека.Свойство("КонтрольнаяМарка") И ЗначениеЗаполнено(СтрокаЧека.КонтрольнаяМарка) Тогда
						ЕстьКМ = Истина;
						Прервать;
					КонецЕсли;
				КонецЦикла;
				
				Если ЕстьКМ Тогда
				
					//Проверка КМ осуществляется в рамкам сессий.
					//• Открытие новой сессии проверки марок на ККТ в явном виде осуществляется методом ОткрытьСессиюРегистрацииКМ().
					//• Закрытие сессии проверки марок в явном виде осуществляется методом ЗакрытьСессиюРегистрацииКМ()
					//• При фискализации чека методом СформироватьЧек() открытая ранее сессия проверки марок будет автоматически закрыта.
					
					СессияОткрыта = ОбъектДрайвера.ОткрытьСессиюРегистрацииКМ(ПараметрыПодключения.ИДУстройства);
					Если СессияОткрыта Тогда
						
						ОписаниеОшибки = "";
						
						Для Каждого СтрокаЧека из ПараметрыФискализацииЧека.ПозицииЧека Цикл
							
							Если СтрокаЧека.Свойство("КонтрольнаяМарка") И ЗначениеЗаполнено(СтрокаЧека.КонтрольнаяМарка) Тогда
								
								//Запрос на проверку КМ на ККТ.
								//• Формирование запроса на проверку КМ осуществляется методом ЗапросКМ().
								//• Поле «MarkingCode» заполняется значением полной КМ в BASE64. Передача в BASE64 обусловлена тем, что в составе КМ могут присутствовать спецсимволы разделители GS1.
								//• Метод сразу же возвращает результаты локальной проверки КМ, формирует запрос в ОИСМ, и переводить ККТ в режим ожидание получения ответа от ОИСМ.
								//• Если нет необходимости ждать ответа от ОИСМ – в атрибутах метода ЗапросКМ() можно указать «WaitForResult= False», тогда статусы проверки КМ можно получить без ожидания ответа от ОИСМ.
								
								ПараметрыОперации = Новый Структура("КонтрольнаяМарка,ИдентификаторЗапроса,ПланируемыйСтатусТовара", СтрокаЧека.КонтрольнаяМарка, Новый УникальныйИдентификатор, Перечисления.ПланируемыйСтатусМаркируемогоТовара.ШтучныйТоварРеализован);
								
								ПараметрыОперацииXML = МенеджерОборудованияВызовСервера.СформироватьXMLДляЗапросаКМ(ПараметрыОперации);
								РезультатОперацииXML = "";
								Результат 			 = ОбъектДрайвера.ЗапросКМ(ПараметрыПодключения.ИДУстройства, ПараметрыОперацииXML, РезультатОперацииXML);
								
								Если НЕ Результат Тогда                             
									ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
									Прервать;
								Иначе

									РезультатПроверки = МенеджерОборудованияВызовСервера.ПолучитьРезультатыЗапросаКМИзXMLПакета(РезультатОперацииXML);
									
									//Получение результат проверки КМ.
									//• После формирования запроса на проверку КМ на ККТ нужно в обязательном порядке получить статут КМ методом ПолучитьРезультатыЗапросаКМ(). Даже есть запрос ЗапросКМ() выполнялся с атрибутом «WaitForResult= False».
									//• Получение результата проверки происходит циклическим вызовом метода ПолучитьРезультатыЗапросаКМ() пока он не вернет статут что результат получены или не может быть получен. Вызов метода должен осуществляться через временной интервал.
									//• Пока метод в параметре «СтатусЗапроса» не вернет статус «0–результат получен» или «2–результата не может быть получен» другие операции невозможны.
									
									СтатусЗапроса = -1;
									РезультатОперацииXML = "";
									
									Счетчик = 0;
									
									Пока СтатусЗапроса <> 0 И СтатусЗапроса <> 2 И Счетчик < 10 Цикл
										
										Результат = ОбъектДрайвера.ПолучитьРезультатыЗапросаКМ(ПараметрыПодключения.ИДУстройства, РезультатОперацииXML, СтатусЗапроса);
										
										Если НЕ Результат Тогда
											ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
											Прервать;
										КонецЕсли;
										
										Если СтатусЗапроса = 0 Тогда 
											Прервать;
										КонецЕсли;
										
										ТекВремя = ТекущаяДата();
										Пока ТекВремя = ТекущаяДата() Цикл
										КонецЦикла;
										
										Счетчик = Счетчик + 1;
										
									КонецЦикла;
									
									Если СтатусЗапроса = 0 Тогда
										
										//Подтверждение КМ для последующего включения в чек.
										//• После получения результата проверки КМ, можно отобразить на экране статус проверки.
										//• Если пользователь соглашается купить товар маркированный проверяемой КМ – необходимо подтвердить методом ПодтвердитьКМ() с параметром «ТипПодтверждения=0».
										//• Если пользователь отказывается от покупки товара маркированный проверяемой КМ – необходимо отклонить методом ПодтвердитьКМ() с параметром «ТипПодтверждения=1».
										Результат = ОбъектДрайвера.ПодтвердитьКМ(ПараметрыПодключения.ИДУстройства, Строка(ПараметрыОперации.ИдентификаторЗапроса), 0);
										Если НЕ Результат Тогда                             
											ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
											Прервать;
										КонецЕсли;
										
									Иначе
										ОписаниеОшибки = ?(СтатусЗапроса = 2, "Проверка марки: результата не может быть получен", ?(ЗначениеЗаполнено(ОписаниеОшибки), ОписаниеОшибки,  "Проверка марки: результат не получен за 10 сек"));
										Прервать;
									КонецЕсли;
										
									//Фискализация чека
									//• Если КМ была проверена методом ЗапросКМ() и получен результат методом ПолучитьРезультатыЗапросаКМ() и подтверждена к выбытию методом ПодтвердитьКМ() – такую КМ можно включать в фискальный чек.
									//• Необходимо заполнить для фискальной сроки атрибут «MarkingCode» - полной КМ в BASE64.
									//• ККТ после фискализации чека формирует документ «Уведомлении о реализации МТ» и отправляет его в ОФД.
									//Отмена чека
									//• При отмене чека вызывается метод ЗакрытьСессиюРегистрацииКМ().  
								
								КонецЕсли;
								
							КонецЕсли;
							
						КонецЦикла;	
						
						Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
							
							Попытка
							ОбъектДрайвера.ЗакрытьСессиюРегистрацииКМ(ПараметрыПодключения.ИДУстройства);
							Исключение
							КонецПопытки;
							
							СформироватьОшибку(ВыходныеПараметры, ОписаниеОшибки);
							Возврат Ложь;
							
						КонецЕсли;
						
					КонецЕсли;
					
				КонецЕсли;
				
			КонецЕсли;

Показать


Причем в отладке команда ОбъектДрайвера.ЗапросКМ возвращала, что код не проверен ... поэтому даже не стал проводить анализ результата, но при этом в чеке вышел M+. Вообще этот алгоритм - это костыли, чтобы клиент не нарвался на штраф.
user635667; Stas84; leshik; webandroid; +4 Ответить
82. webandroid 2 30.10.21 18:40 Сейчас в теме
(81) В честном знаке проверяли? Чек появляется? марка списывается?
83. user733948 30.10.21 19:11 Сейчас в теме
(82) Пока нет информации по ЧЗ, жду от клиента.
85. user733948 01.11.21 10:08 Сейчас в теме
(82) Клиент сказал, что марки списались в ЧЗ
98. webandroid 2 08.11.21 13:18 Сейчас в теме
(81)
у меня не заработало, но за проделанную работу отдал, 0.5 см. Вышла новая версия, надеюсь там все работает как надо.
99. SashaSashaSashka 09.11.21 09:34 Сейчас в теме
(98) Не работает там ничего! Релиз последний (10.3.72.1), драйвер Атол последний (10.9.0.9), обработка последняя из папки tmplts, Основная касса ККМ указана. Но при пробитии Чека всё равно ошибка:
{ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(1596)}: Поле объекта не обнаружено (ИдентификаторУстройства)
ТекущийСтатус = МенеджерОборудованияКлиент.ПроверкаКодаМаркировки(ПараметрыПодключения.ИдентификаторУстройства);
У всех так?
egorwinteam; +1 Ответить
132. egorwinteam 18.11.21 19:07 Сейчас в теме
(99)таже болезнь, уже все побрил
133. egorwinteam 19.11.21 00:55 Сейчас в теме
(99) и еще в этой чудо конфе, чек возврата на ККМ печатается как Продажа, исправил 2 строчками....пипец
84. user733948 01.11.21 10:08 Сейчас в теме
(76) Клиент сказал, что марки списались в ЧЗ
86. webandroid 2 01.11.21 10:57 Сейчас в теме
(84)
Клиент сказал, что марки списались в ЧЗ

ок, проверяю
80. webandroid 2 29.10.21 21:43 Сейчас в теме
(75) похоже скоро будет решение :)
88. mai_k 02.11.21 17:53 Сейчас в теме
(75)
1. Получить полную марку и записать ее с символами gs1, закодированную в BASE64, в структуру фискальной строки в поле "КонтрольнаяМарка".

Подскажите пожалуйста по этому пункту - где взять полную марку? Как я понимаю хранение марки с криптохвостом запрещено?
89. Stas84 02.11.21 19:01 Сейчас в теме
(88) Запрещено, а что делать. Я добавил реквизит в справочник штрихкоды упаковок и передал стандартный механизм выбора марок. Пользователь может в ручном режиме выбрать марку из справочника. Бывает необходимо выбрать если qr затерт, но по символам можно определить что это за марка. Также если приносят возврат без коробки.
91. mai_k 02.11.21 22:55 Сейчас в теме
(89)
Я что-то не понимаю или полная марка с криптохвостом есть только до печати? Мы уже месяц марки не можем списать после перехода да этот ФФД. Даже не знаю чем все закончится
90. user733948 02.11.21 19:47 Сейчас в теме
(88) На счет запрета хранения полной марки ничего не слышал. У клиента маркировка прописана на сериях, т.к. разрабатывалась она до офиц. релиза УТ 10.3 с маркировкой. Полную марку беру со сканера ШК и ее сохраняю в р/с в момент сканирования, потом эти данные получаю при пробитии чека.
126. mai_k 15.11.21 16:19 Сейчас в теме
(75)
1. Получить полную марку и записать ее с символами gs1, закодированную в BASE64, в структуру фискальной строки в поле "КонтрольнаяМарка".

Подскажите пожалуйста по этому пункту - где взять полную марку? Как я понимаю хранение марки с криптохвостом запрещено?
(75)
В такой реализации мне ЧЗ ответил следующее
Мы подготовили ответ на Ваше обращение: Формат Ваших уведомлений о реализации маркированного товара чеков ФД *2 и ФД *3 соответствует приказу ФНС России от 14.09.2020 n ед-7-20/662@ "об утверждении дополнительных реквизитов фискальных документов и форматов фискальных документов, обязательных к использованию" (зарегистрировано в минюсте россии 09.12.2020 n 61361) Приложение 2. Данные уведомления были успешно обработаны и указанные в них коды маркировки были выведены из оборота на основании корректного указания значения в теге 1162 productCode.

В уведомление о реализации маркированного товара чека ФД *3 был указан код маркировки без криптохвоста. При реализации маркированного товара по ККТ с ФН настроенным на ФФД 1.2. необходимо в фискальном документе уведомление о реализации маркированного товара необходимо указывать полный код маркировки с криптохвостом, согласно приказу ФНС России от 14.09.2020 n ед-7-20/662@ "об утверждении дополнительных реквизитов фискальных документов и форматов фискальных документов, обязательных к использованию" (зарегистрировано в минюсте россии 09.12.2020 n 61361) Приложение 2 и Постановлению Правительства Российской Федерации от 31.12.2019 № 1956 "Об утверждении Правил маркировки товаров легкой промышленности средствами идентификации и особенностях внедрения государственной информационной системы мониторинга за оборотом товаров, подлежащих обязательной маркировке средствами идентификации, в отношении товаров легкой промышленности" в котором указана структура кода маркировки (п. 30).
87. dimkeen 01.11.21 14:15 Сейчас в теме
имхо можно велосипед не изобретать:

ФНС: перейти на ФФД 1.2 можно позже, если не готов внешний софт

Что случилось. ФНС разъяснила сроки и порядок перехода на ФФД 1.2. Часть ритейлеров могут перейти на новый формат позже установленного срока, если попадают под одно из двух условий.

В каких случаях можно перейти на ФФД 1.2 позже:
1. Если вы используете внешний кассовый софт, но разработчики еще не привели его в соответствие с ФФД 1.2 — можете работать на прежних ФФД до получения новых версий ПО, но не позднее 1 февраля 2022 года.
2. Если у вас действует внутренний регламент тестирования внешнего ПО и ККТ, и тестирование еще не закончилось — можете работать на прежних ФФД до окончания тестирования, но не позднее 1 февраля 2022 года.

Если под эти условия вы не попадаете, перейти на ФФД 1.2 нужно в кратчайшие сроки.

Письмо ФНС от 28.10.2021 №ПА-4-20/15207@
92. Stas84 06.11.21 12:43 Сейчас в теме
Подскажите при оформлении возврата, процедура проверки КМ средствами ККТ такая же?
93. Stas84 07.11.21 12:05 Сейчас в теме
Вышел релиз 10.3.72

Розничная торговля
Торговое оборудование

Поддержана возможность проверки кодов маркировки средствами ККТ.
94. user966214 08.11.21 10:46 Сейчас в теме
(93) Обновил клиента, так и не проверяет марки средствами ккт! И несколько ошибок в коде самом, в частности передача неправильного признака вывода из оборота марок.
95. Neon.forum 08.11.21 11:52 Сейчас в теме
(94) А обработку ККТ заменяли из tmplts\1c\trade\10_3_72_1\TradeWareEpf ?
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Аналитик 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 220 000 руб.
Полный день

1С Программист по 1С:Управление торговлей
Кострома
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Руководитель отдела разработки
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день