Имя: Пароль:
1C
1С v8
Таймаут для Метода ОЛЕ
0 ugorchina
 
10.05.21
11:18
Всем привет!

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

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

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

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

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

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

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

а бибилу под него пил программер из ??? орг. вот и в библе нет ни логирования ни проверки связи (
6 80ksa
 
12.05.21
09:11
(5) Хм. Не все слова разобрал. Я так понял, раз этот терминал подключен к 1С, значит это интеграция. В принципе можно отладчиком дойти до отправки команд в терминал через DLL и еще нужно вспомнить какая DLL отвечает в 1С за терминалы оплаты, она тоже возможно ведет лог в папке пользователя. я не работал с терминалами так плотно, но по ккм которые подключаются через Подключаемое оборудование -да. находил лог чисто производителя ККМ - в папке пользователя ОС.
есть еще описание на ИТС какие методы должны использовать DLL и терминал. Терминал то подключается в Подключаемом оборудовании стандартным списком драйверов или подгружаете свой (Загрузить драйвер)?
7 80ksa
 
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
8 Garykom
 
гуру
12.05.21
09:20
9 ugorchina
 
12.05.21
09:21
(6) за выходные на шарпе набросал свой драйвер с логами и прочем!
теперь все работает и делает логи )

Думал будет сложно  оказалось нет!

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

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

тсп же ждет от терминала пакеты с чеком
10 Garykom
 
гуру
12.05.21
09:23
(7) какой то у тебя старый драйвер, смотри новый есть в (8)
11 Garykom
 
гуру
12.05.21
09:24
(9) юморист ты бы хоть модель железки сказал
12 ugorchina
 
12.05.21
09:32
(11) YARUS P2100 с прошивкой Платтон 1,0
13 ugorchina
 
12.05.21
09:33
И Aisino V37
14 ugorchina
 
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-кабеля. Если кассир выбрал отмену текущей операции, следует по восстановлению связи убедиться, что терминал не успел получить ответ от банка. Если успел – отменить операцию командой «ОТМЕНА».
ВНИМАНИЕ! Категорически не рекомендуется в ПО контроллера (в драйвере) использовать тайм-ауты выполнения оплаты по банковской карточке, по истечении которых считается, что оплата не выполнена.
15 ugorchina
 
12.05.21
09:41
на шарпе библа получилась буквально в строк пятьдесят )

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

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

а при тестах выяснил следующее

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

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

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

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

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