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

Настройки тайм аута между печатью чеков ккм с эквайринга : Кассовые программы

29.03.2024 0:46


03.11.2016 09:19
root221
 
Shift, вот текст.

Цитата:
Функция ВыполнитьКомандуАРКОМ(НомерКоманды, Сумма, ОписаниеРезультата, КаталогОбменаЭКВ, НуженСлип,МассивСтрокСлипЧека,КодВалюты)

Отладка("Арком команда: "+Строка(НомерКоманды));

ИмяФайлаСлипа = СокрЛП(КаталогОбменаЭКВ)+"\cheq.out";

Попытка
УдалитьФайлы(ИмяФайлаСлипа);
Исключение
//none
КонецПопытки;

Попытка

АРЗапрос = Новый COMОбъект("ArcCom.SAPacketObj.1");
АРОтвет = Новый COMОбъект("ArcCom.SAPacketObj.1");
АР2 = Новый COMОбъект("ArcCom.PCPOSTConnectorObj.1");

Исключение

Отладка("Компоненты АРКОМ не установлены!");

Возврат 0;

КонецПопытки;

АРЗапрос.OperationCode = НомерКоманды;
//Коды хранятся в ops.ini
//[номер операции],[Класс],[номер в классе],[Название]
//1=4,128,ОПЛАТА
//2=0,224,ОТМЕНА ПОСЛ.
//3=4,130,ВОЗВРАТ
//10=0,160,ЗАКРЫТИЕ ПАКЕТА
//7=0,161,ЗАКРЫТИЕ СМЕНЫ
//12=0,162,ЗАКРЫТИЕ ДНЯ
//96=0,166,ТЕСТ СВЯЗИ
//97=0,167,ЗАГРУЗКА ПАРАМЕТРОВ
//98=0,50,МЕНЮ КАССИРА
//99=0,53,АДМИНИСТРАТИВНОЕ МЕНЮ
//100=0,204,TMS

Если Сумма<>0 Тогда
АРЗапрос.Amount = Сумма*100;
КонецЕсли;

АРЗапрос.CurrencyCode = КодВалюты;


Рез = АР2.Exchange(АРЗапрос,АРОтвет,15);
КодОшибки = АР2.ErrorCode;
ОпОшибки = АР2.ErrorDescription;
Ответ = Лев(СокрЛП(Строка(АРОтвет.ResponseCodeHost)),3);
ДопОтвет = СокрЛП(АРОтвет.TextResponse);
ВремяОжиданияСлипа = ?(НомерКоманды=7,5,3);


Отладка("АРКОМ:Ответ:"+Строка(Ответ));
Отладка("АРКОМ:Доп.ответ:"+Строка(ДопОтвет));
Отладка("АРКОМ:Результат выполнения:"+Строка(Рез));
Отладка("АРКОМ:Код ошибки:"+Строка(КодОшибки));

//Если (Число(Рез)=0)И(Число(КодОшибки)=0) Тогда
Если (Ответ="000")ИЛИ(Ответ="00") Тогда


ОписаниеРезультата = ДопОтвет;

Если Число(Ответ)=0 Тогда
Результат = 1;
Если НуженСлип=1 Тогда

Ждать(ВремяОжиданияСлипа);

МассивСтрокСлипЧека = ПрочитатьСлипЧекИзФайла(ИмяФайлаСлипа);


КонецЕсли;
Иначе
Результат = 0;
Если НуженСлип=1 Тогда
Ждать(ВремяОжиданияСлипа);

МассивСтрокСлипЧека = ПрочитатьСлипЧекИзФайла(ИмяФайлаСлипа);

КонецЕсли;
КонецЕсли;

Иначе
ОписаниеРезультата = "Ошибка системы: "+Строка(рез)+" код: "+Строка(КодОшибки)+" ответ: "+Ответ+" описание: "+ДопОтвет;
Отладка(ОписаниеРезультата);
Результат = 0;

ФайлСлипа = Новый Файл(ИмяФайлаСлипа);

Если (НуженСлип=1) Тогда
Ждать(ВремяОжиданияСлипа);

Если ФайлСлипа.Существует() Тогда
МассивСтрокСлипЧека = ПрочитатьСлипЧекИзФайла(ИмяФайлаСлипа);
КонецЕсли;

КонецЕсли;
КонецЕсли;

Попытка
УдалитьФайлы(СокрЛП(КаталогОбменаЭКВ)+"\output.dat");
Исключение
//none
КонецПопытки;

Попытка
УдалитьФайлы(СокрЛП(КаталогОбменаЭКВ)+"\cheq.out");
Исключение
//none
КонецПопытки;

АР2 = Неопределено;

Возврат Результат;


КонецФункции
03.11.2016 09:35
Shift
 
Судя по тексту, всё волшебство идёт дальше:
Функция ВыполнитьКомандуАРКОМ(НомерКоманды, Сумма, ОписаниеРезультата, КаталогОбменаЭКВ, НуженСлип,МассивСтрокСлипЧека,КодВалюты)
1. Выполняется Рез = АР2.Exchange(АРЗапрос,АРОтвет,15);
2. Если всё хорошо МассивСтрокСлипЧека = ПрочитатьСлипЧекИзФайла(ИмяФайлаСлипа);
Возврат из функции:
Функция ОплатитьПлатежнойКартой(Объект, Сумма, КодRRN, КодАвторизации, КодОперации, МассивСтрокСлипЧека, ШиринаЧека, КоличествоКопий) Экспорт
1. Вызыват предыдущую функцию и возвращает обратно МассивСтрокСлипЧека , а так же возвращает КоличествоКопий = 2;
Часовой пояс GMT +3, время: 00:46.

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