Работа 1С: 7.7 с ККТ АТОЛ ДТО10 (JSON задания)

Пробитие чеков через web сервер (JSON задания) ДТО10 АТОЛ.

Выкладываю свою реализацию пробития чеков через 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));
Параметры.ДобавитьЗначение(СокрЛП(глПользователь.ДляПечатиВЧеке));
Параметры.ДобавитьЗначение(СокрЛП(глПользователь.ИНН));
Параметры.ДобавитьЗначение(Товы);
Параметры.ДобавитьЗначение(ПолученнаяСумма);
Параметры.ДобавитьЗначение(СокрЛП(ТелефонПочтаПокупателя));
Параметры.ДобавитьЗначение(ТипОперации);
Параметры.ДобавитьЗначение(ОпределитьПараметрыКомиссионногоТовара(Товы));

ОткрытьФормуМодально("Отчет",Параметры,КаталогИБ() + "ExtFormsJSON 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.

https://money.yandex.ru/to/410012172123885

3 Comments

  1. SergioVB

    Атол обещает прекратить поддержку ДТО8 в 2019 году. Следовательно ФФД 1.1 скорее всего в FprnM1C.dll реализована не будет. И кто сидит на 7.7 будет использовать что-то аналогичное. У самого есть такие. Надо будет вникать.

    Reply
  2. rasta.ayaks

    Единственный минус в том, что не смог запустить на XP. Нужна система Win7 64 минимум и то надо мудрить с драйверами чтобы нормально встали.

    Reply
  3. victuan

    Готовое решение с поддержкой ДТО8 и ДТО10 по ссылке http://expert.chistov.pro/public/603118/

    И на ХР работает.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *