Выкладываю свою реализацию пробития чеков через web сервер.
1) Формируем товарную позицию
Товы = СоздатьОбъект("ТаблицаЗначений");
Товы.НоваяКолонка("Товар",,,,,20);
Товы.НоваяКолонка("Остаток","Число",9,3);
Товы.НоваяКолонка("Цена","Число",10,3);
Товы.НоваяКолонка("Сумма","Число",10,2);
Товы.НоваяКолонка("Серия");
Товы.НоваяКолонка("Номер","Число",10);
Товы.НоваяКолонка("ПолнОст","Число",8,3);
Товы.НоваяКолонка("СуммаСкидки","Число",8,2);
Товы.НоваяКолонка("СкидкаСуммой","Число",8,2);// хэсед итд
Товы.НоваяКолонка("Итого","Число",10,2);
Товы.НоваяКолонка("СекцияВЧеке","Число",2,0);
Товы.НоваяКолонка("ЭтоТовар","Число",1,0);
Товы.НоваяКолонка("Наличными","Число",10,2);
Товы.НоваяКолонка("Электронно","Число",10,2);
Товы.НоваяСтрока();
Товы.Товар=ЭлементСпрПродажи.Товар;
Если Число(ОстатокПоСерии(ЭлементСпрПродажи))<Кол Тогда
Товы.Остаток=Число(ОстатокПоСерии(ЭлементСпрПродажи));
Иначе
Товы.Остаток=Кол;
КонецЕсли;
Если (Товы.Товар.ВидТовара=Перечисление.ВидыТоваров.Услуга) и (Товы.Товар.Производство=0) Тогда
СПТ=создатьОбъект("Справочник.Товары");
спт.ИспользоватьДату(РабочаяДата(),1);
СПТ.НайтиЭлемент(Товар);
Товы.Цена=СПТ.ЦенаУслуги;
Иначе
Товы.Цена=ЭлементСпрПродажи.Цена;
КонецЕсли;
Товы.Сумма=ОКР(Товы.Остаток*Товы.Цена,2);
Товы.Серия=ЭлементСпрПродажи.Серия;
Товы.Номер=ЭлементСпрПродажи.Код;
Товы.ПолнОст=Число(ОстатокПоСерии(ЭлементСпрПродажи));
Товы.ЭтоТовар = глОпределитьЭтоТовар(Товы.Товар);
Товы.СекцияВЧеке = глОпределитьСекцию(Товы.Товар);
2) вызываем обработку для пробития чека
глНовыйУникальныйИдентификаторККТ(Объект,1);
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(СокрЛП(глРМК.ГлобальноУникальныйИдентификаторККТ));
Параметры.ДобавитьЗначение("Чек");
Параметры.ДобавитьЗначение(СокрЛП(глРМК.ККТwebIP));
Параметры.ДобавитьЗначение(СокрЛП(глРМК.ККТwebPort));
Параметры.ДобавитьЗначение(СокрЛП(глПользователь.ДляПечатиВЧеке));
Параметры.ДобавитьЗначение(СокрЛП(глПользователь.ИНН));
Параметры.ДобавитьЗначение(Товы);
Параметры.ДобавитьЗначение(ПолученнаяСумма);
Параметры.ДобавитьЗначение(СокрЛП(ТелефонПочтаПокупателя));
Параметры.ДобавитьЗначение(ТипОперации);
Параметры.ДобавитьЗначение(ОпределитьПараметрыКомиссионногоТовара(Товы));
ОткрытьФормуМодально("Отчет",Параметры,КаталогИБ() + "\ExtForms\JSON ATOL.ert");
Возврат Параметры;
- уникальные идентификатор создаю через
глИнфо = СоздатьОбъект("AddIn.V7SysInfo");
глГлобальноУникальныйИдентификаторККТ = глИнфо.СоздатьGUID();
- разбор JSON ответов реализовал через "MSScriptControl.ScriptControl"(пример где- то нашел уже не помню, не мое)
- post и get запросы через "WinHttp.WinHttpRequest.5.1".
В обработке пример использования как с ККТ через web сервер(ДТО10), так и через FprnM1C.dll(ДТО8).
Тестировалось и успешно работает с АТОЛ11Ф более месяца. 1с 7.7 - Релиз платформы 7.70.027.