Связка ККМ (Феликс-РК) АТОЛ драйвера и 1С 7.7 - глюки взаимодействия
Учетные задачи - Розничная торговля
Все началось с http://forum.infostart.ru/forum9/topic7856/message59191/#message59191
Честно сказать, не посмотрел, что там в стандартной обработке печати фискального чека из 1С (говорят, не всё там круто), но то, что было оттуда вынесено (не мной) в нашу самописную конфу - работало глючно. Когда дошли руки - переписал.
Вот что было:
Объект.ПолучитьСостояние();
НомерЧека = Объект.НомерЧека;
Объект.ЗакрытьЧек();
Если Объект.ResultCode <> 0 Тогда //ошибка
Предупреждение("Код ошибки: "+Строка(Объект.ResultCode)+" "+Объект.ResultDescription);
Возврат 0;
Иначе
Возврат 1;
КонецЕсли;
При этом часто ResultCode был 0, хотя чек не закрывался.
После долгих экспериментов написал такой код, для большей устойчивости
Объект.ПолучитьСостояние();
НомерЧека = Объект.НомерЧека;
Объект.ЗакрытьЧек();
ТекРезультат=Объект.Результат;
ОписаниеРезультата=Объект.ОписаниеРезультата;
ТекСостояние=Объект.ПолучитьСостояние();
ТекРезультат=Объект.Результат;
ОписаниеРезультата=Объект.ОписаниеРезультата;
БылаОшибка=0;
Если ТекРезультат <> 0 Тогда //ошибка
БылаОшибка=1;
Иначе
Если (Объект.СостояниеЧека<>0) ИЛИ (ТекСостояние<>0) Тогда
ОписаниеРезультата="";
ТекРезультат=0;
Если ТекСостояние<>0 Тогда
Если ТекСостояние=-1 Тогда
ОписаниеРезультата="Нет связи с ККМ";
ИначеЕсли ТекСостояние=-3807 Тогда
ОписаниеРезультата="Нет бумаги";
Иначе
ОписаниеРезультата="Неизвестная ошибка";
КонецЕсли;
ТекРезультат=ТекСостояние;
БылаОшибка=1;
Иначе
Если Объект.НетСвязиСПринтеромЧеков = 1 Тогда
ОписаниеРезультата="Нет связи с ККМ";
БылаОшибка=1;
ИначеЕсли Объект.УстройствоВключено = 0 Тогда
ОписаниеРезультата="ККМ не включена";
БылаОшибка=1;
ИначеЕсли Объект.КрышкаОткрыта = 1 Тогда
ОписаниеРезультата="Открыта крышка";
БылаОшибка=1;
ИначеЕсли Объект.НаличиеЧековойЛенты=0 Тогда
ОписаниеРезультата="Нет Чековой Ленты";
БылаОшибка=1;
ИначеЕсли Объект.НетБумаги = 1 Тогда
ОписаниеРезультата="Нет Бумаги";
БылаОшибка=1;
ИначеЕсли Объект.ОшибкаПерегревПечатающейГоловки = 1 Тогда
ОписаниеРезультата="Перегрев печатающей головки";
БылаОшибка=1;
Иначе
ОписаниеРезультата="Чек не закрыт";
БылаОшибка=1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если БылаОшибка=1 Тогда
ГлСформироватьСписокПараметровСбояККМ("При закрытии чека",ТекРезультат,ОписаниеРезультата, Объект, НомерНакладной);
Предупреждение("Ошибка ККМ : "+ТекРезультат+" - "+ОписаниеРезультата);
Возврат 0;
КонецЕсли;
Возврат 1;
Процедура ГлСформироватьСписокПараметровСбояККМ - это я веду список ошибок ККМ для передачи их в офис и дальнешего анализа
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
20000 руб.
28.03.2017 586004 5315 3840
39141 руб.
21.04.2017 113596 213 44
6100 руб.
31.07.2017 191486 638 612
1 стартмани
07.02.2021 12764 5 Kuzya_brаtsk 1
1 стартмани
27.01.2021 12209 21 victuan 2
2 стартмани
10.11.2020 13240 28 user1479046 11
1789 руб.
20.08.2020 34284 103 86