Не отрабатывает ОбработкаОповещения #776682


#0 by richin
Добрый день. 1с 8.2. обычное приложение Есть внешняя обработка, которая запускается у нескольких пользователей: под админом в ней выполняются различные записи в документы и справочники, а у пользователей по Оповещению - выполняются открытия форм, изменение инфы на форме их, этой же обработки и т.д. Но...не работает :) В конфигураторе под админом - в отладчике вижу событие нужное, а вот у пользователей, в ихних запущенных клиентах - обработка оповещения вообще не отрабатывает. Подскажите, что я делаю не так?
#1 by richin
Работает ли вообще Оповестить на эту же внешнюю обработку, запущенную у другого пользователя?
#2 by Beretta
Нет
#3 by richin
а как тогда можно среагировать на Оповещение из внешней обработки в другой этой же открытой форме, но у пользователя?
#4 by richin
а что если подтянуть эту внешнюю обработку к обработкам конфиги? Так будет работать?
#5 by Beretta
Нет. Без внешних компонент организовать взаимодействие пользователь-пользователь можно только через базу или иной общий источник сведений.
#6 by richin
Загрузил обработку в базу - у админа отрабатывают действия по оповещению, но всё равно на стороне пользователя ничего не происходит при этой открытой загруженной обработке. Может как то решить это подключением обработчика ожидания..или кто его знает, как ещё можно
#7 by richin
Вообще не пойму, почему не работает Оповестить и ОбработкаОповещения для одной и той же формы обработки у разных пользователей. Должно ведь отрабатывать события
#8 by Beretta
Почему должно?
#9 by richin
Описание: Посылает оповещение всем созданным формам и всем подключенным через метод ПодключитьОбработчикОповещения процедурам модуля управляемого приложения (модуля обычного приложения) или общего модуля. Если для формы задана процедура-обработчик события ОбработкаОповещения, то она будет запущена, в процедуру будут переданы указанные параметры. Данный механизм может, например, применяться для организации обмена сообщениями между открытыми формами. ну вроде бы как написано
#10 by richin
или это работает только в рамках данного запущенного клиента?? :( т.е. в данном случае у админа
#11 by Beretta
Да
#12 by richin
Теперь всё ясно, спасибо.
#13 by Фрэнки
не просто у админа, а только в одном сеансе. Вот в одной сессии/сеансе открыто множество окон и нужно инфу между ними синхронизировать - работает. А если между разными сеансами, то там нужно ставить обработки ожидания, которые будут считывать, допустим регистр сведений в поиске новых сообщений. А перед отправкой сообщений можно проверить списки и сделать записи в РС только в адрес активных сеансовпользователей. Вариантов много можно придумать.
#14 by richin
Понятно, буду пробовать. Спасибо
#15 by Фрэнки
кстати, обращает на себя внимание запрет на запуск под одним пользователем нескольких сеансов одновременно. Это делается, в том числе, для корректной обработки новых сообщений и выставления/снятия флагов прочитано на них.
#16 by richin
А я почему то считал, что Оповестить, работает для всех запущенных сеансов 1с :) Жаль..очень жаль, что не так)
#17 by richin
ПРоблема в том, что нужно быстро получить новую информацию (по входящему внешнему событию), которую получает админ,  и отрисовать её на запущенных формах обработки у пользователей. А считывание информации - "слегка" затянутый процесс, ведь её ещё нужно сначала записать куда то :((( А так вот, событием с параметрами - было бы очень удобно и быстро сделать это
#18 by Фрэнки
нет, быстро не получится. Даже если посмотришь, как работает оповещение между окнами в одном сеансе, то все равно происходит обновление/опрос процедуры обработки оповещения в рамках получения этим окном фокуса. Т.е. будет открыто два-три окна. Открыл еще какое-то и оно отправило сообщения разные в разные окна, но само продолжает работать - те окна ничего не отобразят, пока им не отдадут обработчик ожидания (он дефолтно ко всем окнам привязывается) Точно также в любом другом сеансе. Будет запущено пользователем обработка ожидания в постоянно открытой обработке "Рабочий стол на складе", значит все сообщения этому рабочему столу дойдут в том обработчике. А будет запущен отчет или расчет минут на 10, так и не получишь ничего до окончания текущего действия.
#19 by Фрэнки
если речь про "отрисовывать", то для постоянной готовности к рисованию на всех этих клиентах нельзя открывать иных форм. Если же не рисовать, а действовать, то надо фоновый процесс запускать. И ясно, что интерактивная реакция для фонового действия противопоказана.
#20 by richin
Жаль:( Значит мне при старте клиента нужно делать обработчикОжидания какой то процедуры, которая ежесекундно будет проверять значения регистра/документа на обновление данных, и при удовлетворительном условии заполнять эти данные на форме обработки пользователя. и других вариантов нет ? :(
#21 by Зая Бусечка
Есть. Применить древнеславянское заклинание.
#22 by Фрэнки
ну почему же нет? А если посмотреть, как в типовом решении сделано, допустим, В Документообороте, который обрабатывает получение сеансами пользователя новых почтовых сообщений? В типовой БП 3.0 боковая панель задач пользователю тоже что-то получает... Может быть у ваших клиентов, кому все это поставить нужно, сама постановка задач пользователю нужна другая немного, но еще не продумали до конца... Ведь им что-то нужно конкретное, не просто цифры где-то сверху или сбоку новые нарисовывать, с той же примерно пользой, как под потолком в комнатах часы на своем табло высвечивают такие же. Скорей всего, на новые данные у ответственных лиц должны быть новые задачи, с реакциями на них. А механизм задач в обновленных версиях платформы весьма и весьма свеж. Ну как минимум, просто красив :)
#23 by hhhh
да нет, работает всё и без фокуса. Я передавал данные между формами в режиме обмена встречными оповещениями. Данные приходили от формы, которая вроде и не в фокусе.
#24 by Фрэнки
понятно, что заморачиваться со сложными тестами никто не будет, но если в той точке вызова процедуры, которая отправляет данные из формы, поставить длительно работающую процедуру, то никакие другие процедуры не начнут работать в данном сеансе, так ведь?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С