Форум OlegON > Программы и оборудование для автоматизации торговли > Маркировка

проверка маркировки пачки сигарет в ККТ : Маркировка

27.04.2024 11:22


27.03.2024 20:11
RolSss
 
да стал дожидаться от ИСМ и получать полный статус

В связи с этим вопрос кто как реализовавыет, по таймату ожидание или пока не придет ответ зацикливаем)?

Код:
2024.03.27 22:06:35.026 T:      T:00000C0C INFO  [1C] РезультатЗапросаКМ - [<?xml version="1.0" encoding="UTF-8"?>
<ProcessingKMResult GUID="243666f7-1ed1-45e4-a114-091054ae8adb" Result="True" ResultCode="15" StatusInfo="1" HandleCode="0"/>
27.03.2024 22:45
RolSss
 
закрыл технический долг
31.03.2024 11:52
Casper
 
Цитата:
RolSss да стал дожидаться от ИСМ и получать полный статус

В связи с этим вопрос кто как реализовавыет, по таймату ожидание или пока не придет ответ зацикливаем)?

Код:
2024.03.27 22:06:35.026 T:      T:00000C0C INFO  [1C] РезультатЗапросаКМ - [<?xml version="1.0" encoding="UTF-8"?>
<ProcessingKMResult GUID="243666f7-1ed1-45e4-a114-091054ae8adb" Result="True" ResultCode="15" StatusInfo="1" HandleCode="0"/>
Удалось победить?
31.03.2024 16:52
RolSss
 
Цитата:
Casper Удалось победить?
да
17.04.2024 20:39
trioka
 
Друтати
Вопросик в тему. Не могу добиться ответа при проверке марок истина
нашел в требованиях к разработке драйверов следующее
RequestKM - Запрос КМ. XML Структура.
Quantity Да double Количество

в смысле обязательно указание Quantity в запросе.
нашел в обработке такой кусочек
//ЗаписьМаркиXML.ЗаписатьАтрибут("Quantity", XMLСтрока(0));

и он закомментирован . как раз в запросе.
вот думаю, убрать комментарий. или нет
если у меня пиро в розлив и табак

НО есть ответ ЧЗ в кодах 1262-1265 и уходит в ОФД нормально.

только всё равно табак с ошибками проверки марок в ЧЗ показывается

Подскажите, как поступить.
17.04.2024 22:26
RolSss
 
Цитата:
trioka и он закомментирован . как раз в запросе.
в типовых он передается если значение больше 1

важнее два тега
NotSendToServer False
WaitForResult True

Отправлять на сервер и ждать ответа, именно ждать пока не вернется
18.04.2024 19:29
trioka
 
Цитата:
RolSss в типовых он передается если значение больше 1

важнее два тега
NotSendToServer False
WaitForResult True

Отправлять на сервер и ждать ответа, именно ждать пока не вернется
не типовая как раз
и че его ждать. он есть.
Код:
<?xml version="1.0" encoding="UTF-8"?>
<ProcessingKMResult GUID="86121cf0-f01a-45ee-b616-6a38a9c5c974" Result="False" ResultCode="0"/>
только всегда False
18.04.2024 19:42
RolSss
 
Цитата:
trioka и че его ждать. он есть.
Конечно всегда есть, успела проверка сработать true, не успела false. Рекомендую поставить задержку и проверьте result.
Еще проверьте чтобы адрес и порт были в драйвере прописаны для ОИСМ верные, чтобы этот момент исключить
19.04.2024 11:45
trioka
 
Цитата:
RolSss Конечно всегда есть, успела проверка сработать true, не успела false. Рекомендую поставить задержку и проверьте result.
Еще проверьте чтобы адрес и порт были в драйвере прописаны для ОИСМ верные, чтобы этот момент исключить
в таком виде запрос был
Код:
<?xml version="1.0" encoding="UTF-8"?>
<RequestKM GUID="109bff81-6492-40a7-91b3-4e2bf5b7bce0" WaitForResult="True" NotSendToServer="false" 
MarkingCode="MDAwMDAwNDYyMDYwMDhPVzMxV18/QURjOHBxdUg=" Quantity="1" PlannedStatus="1"/>
Задержка получения ответа 1000 тактов
вышло сообщение
Контрольная марка не проверена. и Ответа XML соотвественно не вижу. нету в папке логов.

Можно как то посылать такие запросы на кассу без 1С и реальной продажи чека.
а то очень не удобно на продавце в боевом режиме проверять новые строчки в коде и тут же откатывать если не пробивается чек..

может в коде что не так. я не силен в дробях, могу только чужой править.
вапще не уверен, можно ли код выкладывать.
Код:
Если Объект.Драйвер.RequestKM(Объект.ИДУстройства, ДанныеЗапросаМарок, РезультатЗапросаКМ) Тогда 		
							СтатусЗапроса = -1;
							СчетчикЦикла = 0;
							РезультатЗапросаКМ = "";
							Пока Истина Цикл 
								Объект.Драйвер.ПолучитьРезультатыЗапросаКМ(Объект.ИДУстройства, РезультатЗапросаКМ, СтатусЗапроса);
								scr = Новый ComОбъект("WScript.Shell"); 
								scr.Run("ping 127.0.0.1 -n 1",0,1);
								Если СтатусЗапроса=0 ИЛИ СтатусЗапроса=2 Тогда
									Прервать;
								КонецЕсли;        
								СчетчикЦикла=СчетчикЦикла+1;    
								// Ждем до 300 сек ответ от ККТ на запрос проверки марки
								Если СчетчикЦикла>1000 Тогда        
									Прервать;
								КонецЕсли;	
							КонецЦикла; 
																				
							Если НЕ Объект.Драйвер.ПодтвердитьКМ(Объект.ИДУстройства, XMLСтрока(GUID), 0) Тогда
								//Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);  
								//Предупреждение("Ошибка запроса проверки марок (не поддерживается)!
								//|Проверьте ревизию интерфейса (должна быть 3004 или выше)"+Символы.ВК+Объект.ОписаниеОшибки);
							КонецЕсли;	       
						КонецЕсли;
19.04.2024 13:05
RolSss
 
если уж задержка ,то так, 300 мс

Код:
СтрокаЗапроса = "ping -n 1 -w 300 127.255.255.255"; 
WshShell = Новый COMОбъект("WScript.Shell"); 
WshShell.Run(СтрокаЗапроса, 0, -1);
АТОЛ лог тут C:\Users\...\AppData\Roaming\ATOL\drivers10\logs\fptr1C.txt
Часовой пояс GMT +3, время: 11:22.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.