Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Таймаут для Метода ОЛЕ

Таймаут для Метода ОЛЕ
Я
   ugorchina
 
10.05.21 - 11:18
Всем привет!

вылезла проблема при работе с терминалом (вернее драйвером)

в общем у драйвера есть метод ПроверитьУн(СтруктураОтвет.УНТерминал,СуммаОплаты) я посылаю данный метод для того что бы терминал ответил мне кодом либо успех либо ошибка

очень часто стала появляться проблема при выполнении данного метода я попросту на нем зависаю и жду вечность и ничего не происходит (

обращался я к разработчику этого драйвера но он просит денег за доработку в нем логирования и т д

в общем суть такова можно  ли как то выполнять метод и ожидать от него ответа скажем в течении трех секунд?
 
 Партнерская программа EFSOL Oblako
   Cyberhawk
 
1 - 10.05.21 - 12:19
Может быть через ФЗ?
   ugorchina
 
2 - 10.05.21 - 12:34
Что есть ФЗ?
   Cyberhawk
 
3 - 10.05.21 - 15:39
   80ksa
 
4 - 10.05.21 - 16:53
(0)

1. Как понимаю это терминал оплаты от какого-то банка. Странно, что логирования нет. Хотя бы могла быть функция типа "проверка связи".
2. Все таки если терминал банка, что он ломится на свои сервера, проверяйте интернет и логи маршрутизатора. В настройках терминала должны быть прописаны эти сервера. Если терминал работает из 1с(интеграция), то должны быть конфигурационные файлы, либо в самом терминале, найдите инструкцию, может кто выложил.

У меня была проблема с задержкой при печати чека ККМ на кассе, чек сначала начинал вылазить, потом останавливался , потом завершался. Оказалось нет доступа к сервера АТОЛ , к личному кабинету или что-то еще. Т.е. на ОФД был доступ, а на другое он все выжила таймаут.
   ugorchina
 
5 - 10.05.21 - 17:20
по УДП нет возможности проверить вязь хоть и производ. предпалаег очто ответ от терминала не более6 секунд более считать что связи нет

а бибилу под него пил программер из ??? орг. вот и в библе нет ни логирования ни проверки связи (
   80ksa
 
6 - 12.05.21 - 09:11
(5) Хм. Не все слова разобрал. Я так понял, раз этот терминал подключен к 1С, значит это интеграция. В принципе можно отладчиком дойти до отправки команд в терминал через DLL и еще нужно вспомнить какая DLL отвечает в 1С за терминалы оплаты, она тоже возможно ведет лог в папке пользователя. я не работал с терминалами так плотно, но по ккм которые подключаются через Подключаемое оборудование -да. находил лог чисто производителя ККМ - в папке пользователя ОС.
есть еще описание на ИТС какие методы должны использовать DLL и терминал. Терминал то подключается в Подключаемом оборудовании стандартным списком драйверов или подгружаете свой (Загрузить драйвер)?
   80ksa
 
7 - 12.05.21 - 09:14
вот например здесь C:\Users\myuser\AppData\Roaming\1C\1cv8\ExtCompT у меня лежит библиотека производителя ККМ. файл DKViki_1C8_1.4.2.6_Win32.dll 

а здесь - логи производителя ККМ C:\Users\myuser\Documents\Dreamkas\1C
   Garykom
 
8 - 12.05.21 - 09:20
   ugorchina
 
9 - 12.05.21 - 09:21
(6) за выходные на шарпе набросал свой драйвер с логами и прочем!
теперь все работает и делает логи )
Думал будет сложно  оказалось нет!


в итоге два удп клиента в бибилотеке + 1 тсп слушатель 

1.удп клиент шлет пакеты терминалу и второй всегда слушает порт и принимает ответы

тсп же ждет от терминала пакеты с чеком
   Garykom
 
10 - 12.05.21 - 09:23
(7) какой то у тебя старый драйвер, смотри новый есть в (8)
   Garykom
 
11 - 12.05.21 - 09:24
(9) юморист ты бы хоть модель железки сказал
   ugorchina
 
12 - 12.05.21 - 09:32
(11) YARUS P2100 с прошивкой Платтон 1,0
   ugorchina
 
13 - 12.05.21 - 09:33
И Aisino V37
   ugorchina
 
14 - 12.05.21 - 09:37
драйвер который мне продали самописный местной конторой которая у нас держит обслуживание касс и терминалов

у них этот драйвер (да какой он драйвер) библиотека обычная с КОМ не имеет в себе ни логов ни даже проверки связи

хотя производитель прошивки дал мне руководство разработчика и там описан метод как проверить есть ли соединение или нет

Вот вырезка

Окончательное заключение об отсутствии связи с терминалом можно делать после 5-6 циклов (См. П.2.2.). При этом, в качестве корректного ответа можно принимать только пакет, содержащий в заголовке текущее значение циклического счетчика. Прочие пакеты должны игнорироваться, т.к. в сети может меняться их порядок – более ранний (неактуальный) ответ придет позже. Предложенный алгоритм полностью компенсирует сетевые аномалии, вызывающие потери пакетов и рекомендуется для любых UDP-based систем.

а вот и сам  П.2.2.

2.2.  Алгоритм функции информационного обмена с терминалом по протоколу UDP.

Была инициирована финансовая операция UN.
    Ответ от терминала «UN – В ПРОЦЕССЕ» может быть получен, либо пропущен – НЕ ВАЖНО. Дальнейший информационный обмен от этого НЕ ЗАВИСИТ.
ПО кассы:
1.    Наращивает счетчик команд и посылает запрос статуса текущей команды (UN).
1.1.    Ответ получен – «В ПРОЦЕССЕ»; тайм-аут 0,3 – 1 с.; переход к п.1.
1.2.    Ответ получен – «ВЫПОЛНЕНО»; Статус операции в state machine «ВЫПОЛНЕНО»; выход.
1.3.    Ответ не получен; тайм-аут 0,3 – 1 с.
1.3.1.    Количество повторов меньше 5 – переход к п.1.
1.3.2.    Количество повторов равно 5 – переход к п.2.
2.    Модальное окно кассиру «ПРОВЕРЬТЕ ПОДКЛЮЧЕНИЕ ТЕРМИНАЛА».
2.1.     Окно появилось 3-й раз подряд: добавить кнопку «ОТМЕНИТЬ ОПЕРАЦИЮ».
2.1.1.    Выбрано «ВВОД/ПРОДОЛЖИТЬ»; тайм-аут 0,3 – 1 с.; переход к п.1.
2.1.2.    Выбрано  «ОТМЕНИТЬ ОПЕРАЦИЮ» - Статус операции в state machine не меняется; выход.
Кассир должен быть проинструктирован относительно действий при появлении модального окна: перезагрузить терминал, проверить подключение Ethernet-кабеля. Если кассир выбрал отмену текущей операции, следует по восстановлению связи убедиться, что терминал не успел получить ответ от банка. Если успел – отменить операцию командой «ОТМЕНА».
ВНИМАНИЕ! Категорически не рекомендуется в ПО контроллера (в драйвере) использовать тайм-ауты выполнения оплаты по банковской карточке, по истечении которых считается, что оплата не выполнена.
   ugorchina
 
15 - 12.05.21 - 09:41
на шарпе библа получилась буквально в строк пятьдесят )

более того их библиотека возвращала мне результат и код ошибки в виде -1 ошибка бла бла

ни каких знаков что бы отделить код ошибки от ее описания (
а при тестах выяснил следующее

когда я начинаю пробивать оплату по пл карте ка ктолько приложил карту выдергиваю шнул Лан из порта

в этот моент получаю зависание на их методе и все ( а он должен был действовать по пункту П.2.2. и вернут ьмне ошибку о потере связи чего не происходит

я обратился к ним они типа давай плати бабосы и мы сделаем )

я говорю сделацте хотя бы логи опять плати и сделаем

нафиг надо я сам сделал свою ) и не буду парится тепреь )
   80ksa
 
16 - 17.05.21 - 09:21
(15) ну даже не знаю что добавить, хорошо, что нашлось решение.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.