|
v7: Не срабатывает таймаут в предупреждении? Баг, фича, или я чего-то накосячил? | ☑ | ||
---|---|---|---|---|
0
MWWRuza
гуру
03.12.22
✎
10:43
|
Добрый день!
Немного навороченная конструкция, но, что делать... Робот по запросу марок для списания из ЕГАИС... Марки можно запрашивать только в разрезе конукретной справки, раз в 10 минут. Такие ограничения в ЕГАИС, тут ничего не поделать. Нужно запросить несколько тысяч(!!! :-( ) марок... Сделал робота, который это делает в автоматическом режиме... Принцип такой: Внещняя обработка, в ней: В обработке ожидания, раз в 10 минут идет запрос к ЕГАИС по заранее полученному списку справок(процедуры/функции для этого в ГМ, старые, работают давно и успешно). При получении ответа от УТМ, запускается еще одна обработка ожидания, которая раз в 30 секунд дергает функцию, проверяющую ответ от сервера ЕГАИС, тоже из ГМ... Когда марки есть, то все отрабатывает как задумано - добавляются в заполняемый документ и все работает дальше. Но, конструкция получения марок в функции на сервере, обернута в Попытку. Так, как состав тегов в зависимости от результатов ответа разный. Вот типа так: Попытка Делаем то, что нужно Исключение Предупреждение("По справке " + СокрЛП(Справка) + " в ЕГАИС у Вас нет марок!", 3); КонецПопытки; Ну, казалось бы, что такого? Ну, повисит месага 3 секунды на экране и закроется. После чего все должно продолжить работать дальше. Запустил с вечера, вроде как работает... Пошел спать. Утром просыпаюсь, смотрю а на экране висит это предупреждение, и не закрывается... Несколько десятков марок в документ добавилось, и все встало на первой-же справке, по которой нет марок... Что за ерунда? Почему оно не закрылось по истечении таймаута 3 сек? Что мешает? PS Я конечно сделал костыль для обхода этого, добавил параметр "БезПред = 0" в эту функцию, но хочу понять, почему так происходит? PSS Обработки ожидания на ФормЕксе, если это важно... |
|||
1
Guk
03.12.22
✎
10:47
|
Добрый день!
ты с егаисом в 77 не через асинхронные вызовы работаешь? силён!... |
|||
2
MWWRuza
гуру
03.12.22
✎
11:10
|
Да в обычных процедурах работы вроде как и не было необходимости что-то выдумывать, магазинчики мелкие, и так все устраивает.
А тут, разовая задача, магаз закрывается, нужно марки просто списать. Но, по сути, этот "робот" работает асинхронно, через обработки ожидания, не блокирует ничего, хотя задача такая и не ставилась... |
|||
3
hogik
04.12.22
✎
12:29
|
Это Баг. Функция Предупреждение иногда зависает.
|
|||
4
kupec
04.12.22
✎
12:30
|
Почему нельзя сделать СООБЩИТЬ?
|
|||
5
MWWRuza
гуру
04.12.22
✎
15:11
|
Жа, спасибо, я так и подумал что баг :-(
(4) Почему нельзя? Так и сделал: Функция глПолучитьОтветМарки(ИдЗапроса, УТМ_URL, БезПред = 0) Экспорт *************** Попытка *************** Исключение Если БезПред = 0 Тогда Предупреждение("По справке " + СокрЛП(Справка) + " в ЕГАИС у Вас нет марок!", 3); Иначе Сообщить("По справке " + СокрЛП(Справка) + " в ЕГАИС у Вас нет марок!"); КонецЕсли; *************** КонецПопытки; Просто хотелось понять, почему так происходит... |
|||
6
victuan1
05.12.22
✎
05:54
|
Может из-за потери фокуса?
|
|||
7
MWWRuza
гуру
05.12.22
✎
13:00
|
Может... Х.З., какой там фокус, если предупреждение из функции в ГМ вызывается. По идее, ничего не нажали за 3 секунды, должен таймаут сработать. А оно висит до бесконечности... А... Кстати, пока оно висит, динамик блямкает, достаточно часто, с периодичностью примерно пол секунды. Может все-таки что-то с обработкой ожидания связано?
|
|||
8
MWWRuza
гуру
05.12.22
✎
13:16
|
Да фиг с ним... "Семерка еще сырая"(С)" :-)
Крутится такая обработка: https://cloud.mail.ru/public/VEqJ/6z6ZGQApA В случае отсутствия марок пишет номер справки и сколько не хватает в текстовик, параллельно в табло сообщает. То, по чем марки есть - в документ списания сохраняет. Периодически можно его отправлять в ЕГАИС, и вводить новый, пустой, перезапросив остатки заново. То, что без марок в лог попало - исключается из списка запрошенных, что-бы повтолно по 10 минут не тратить на то, что обработано :-) И ладно. Удовлетворительно :-) Но, "крутиться" ей еще 19 дней... Случай "особо-запущенный" :-( |
|||
9
MWWRuza
гуру
05.12.22
✎
13:24
|
Можно конечно через КвериФильтр(локальная база самого УТМ) сделать... Но, по опыту - не совсем он корректно работает... Куча ошибок. Документ заполненный марками с контролем через него, все равно кучу ошибок выдает при отправке в ЕГАИС... Хотя, вроде и "Настройки"(реально - это локальная база марок) обновлены, а все равно с сервером не совпадает.
|
|||
10
MWWRuza
гуру
06.12.22
✎
20:02
|
(9) Можно конечно через КвериФильтр(локальная база самого УТМ) сделать...
Не... Не хватило терпения ждать. Сделал. Это работает только по "новым" маркам, которые 150 символов. Те, которые старые, 68 символов - не находит в фильтре, не смотря на то, что были получены "помарочно". По новым ошибки были, но, не много - но почти 6000 марок и 2000 справок F2, порялка десятка. Справился. Осталось 127 справок, видимо большей частью "старые" марки. Теперь уже "роботом" добью, через запросы к ЕГАИС, раз в 10 минут - по другому, все равно никак. |
|||
11
victuan1
07.12.22
✎
05:44
|
(8) Это Предупреждения вызывается случаем не из другой модально открытой формы?
|
|||
12
victuan1
07.12.22
✎
05:46
|
(10) У меня аналогичное с КвериФильтром (только для новых марок) и запросом КвериБарКод (для любых) тоже сделано отдельной обработкой.
Нареканий на КвериФильтр у меня нет, работает четко и быстро. https://youtu.be/LYgMpMN36ZU |
|||
13
MWWRuza
гуру
07.12.22
✎
15:13
|
(11) Нет. В этой обработке вообще нет модальных окон.
Ну, по КвериФильтру достаточно терпимо отработало. По новым маркам всего по 2 справкам ошибки были(по одной справка не найдена в ЕГАИС при списании, а по второй - "необеспеченный расход"). Удалил их из документов списания, и все прошло. На количестве более 6000 марок, допустимая "погрешность" :-) А вот старые марки только запросом к серверу, КвериФильтр о них ничего не знает. Но, тоже их не много, на сегодняшний момент всего 15 справок осталось, дождемся :-) |
|||
14
MWWRuza
гуру
08.12.22
✎
11:51
|
Все... Закончилась эта "бодяга". Выявлены 92 справки, по которым на рег. 3 нет марок, и они все "новые", начинаются номера на 5 нулей, получались "помарочно", поэтому, списать их без указания марок самим не возможно.
Составили обращение в ФСРАР, с просьбой списать их в "0". PS Это последствия массовых сбоев в ЕГАИС конца 2021 начала 2022 года. Такое у всех тогда происходило. |
|||
15
MWWRuza
гуру
10.01.23
✎
17:59
|
(14) Составили обращение в ФСРАР, с просьбой списать их в "0".
Вспомнил старую тему :-) ФСРАР обращение обработали, все списали в 0. Не зря старался :-) Примерно за неделю. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |