Товарищи по несчастью, поделитесь кто может, как кто таймер ожидания ответа от УТМ в 7.7 организовал? У меня периодически приходит ответ, что марка не прошла проверку, в логах УТМ: этот чек уже был зафиксирован. Т.е. как будто ККМ не дождался положительного ответа от УТМ, а при повторной отправке чека, он уже зареген на сервере ЕГАИС, и марки как дубликаты получаются.
(0) как-то так:
Функция лкмОбменСЕГАИС(взФайлЗАпроса, вхФайлОтвета, выхЗапросИД, выхСигнатура)
ВремяОжиданияОтвета = 10; //в секундах
WshShell = СоздатьОбъект("WScript.Shell");
Стр = "cmd /c" + каталогИБ() + "egais\curl.exe -F xml_file=@" + СокрЛП(взФайлЗАпроса) + " http://" + АдресУТМ + "/xml>" + вхФайлОтвета;
//_Сообщить(ТекстЛога,стр);
WshShell.Run(Стр,0,0);
Если ФС.СуществуетФайл(вхФайлОтвета) = 0 Тогда
НашлиФайл = 0;
Для й = 1 По ВремяОжиданияОтвета Цикл
Состояние("Ожидание ответа от УТМ..."+(ВремяОжиданияОтвета+1-й));
WshShell.Run("ping 127.0.0.1 -n 2",0,1);
Если ФС.СуществуетФайл(вхФайлОтвета) = 1 Тогда
НашлиФайл = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Состояние("");
Если НашлиФайл = 0 Тогда
// _Сообщить(ТекстЛога,"Не получен ответ от УТМ",,1);
УдалитьФайл(взФайлЗАпроса);
УдалитьФайл(вхФайлОтвета);
Возврат 1;
КонецЕсли;
КонецЕсли;
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший