Обновить форму динамического списка со стороны сервера

1. Denis-PP 3 30.09.21 08:04 Сейчас в теме
Есть форма списка документа, динамический список с произвольным запросом, к основной таблице левым соединением присоединяю колонку "состояние" из другой таблицы. При изменении статуса оплаты хотелось бы сразу обновить форму списка, но так как изменяется не основная таблица то динамическое обновление не срабатывает, второе документ изменяющий статус оплаты он создается программно, из другой программы 1с, методы по обновлению формы, которые я нашел работают на клиенте, а мне нужно со стороны сервера как-то сделать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. Release 30.09.21 11:38 Сейчас в теме
(1) Подписка на событие + ОповеститьОбИзменении().
Не глянул, ОповеститьОбИзменении работает только на клиенте.
2. TormDV 30.09.21 08:20 Сейчас в теме
Утро доброе. Как вариант - под пользователем в настройке формы у дин. списка включить автообновление и поставить нужный период, 30 сек, например. Не совсем вызов клиента с сервера, но насколько мне известно, с сервера вызвать клиент нельзя. Всякие обработчики ожидания делают, которые по таймеру с клиента проверяют нужное.
Terabaytus; Dem0; +2 Ответить
3. Dem0 30.09.21 10:01 Сейчас в теме
С сервера клиент дернуть вроде как нельзя.
А вот если с клиента дернуть сервер и после этого вернувшись на клиент передернуть таблицу - пожалуйста.
Ну тут действительно только автообновление.
4. Азбука Морзе 105 30.09.21 10:07 Сейчас в теме
Не понятно причем тут клиент или сервер, если действие изменяющее статус происходит совсем в другой программе. Не важно где - на клиенте, на сервере. Тут нужен другой подход.
5. starik-2005 3039 30.09.21 11:00 Сейчас в теме
Самое простое - тупо обновлять список раз в 5 сек (есть изменения, нет изменений - не важно).
7. Denis-PP 3 30.09.21 13:17 Сейчас в теме
подписка на событие тоже только серверные процедуры выполняет
9. Release 30.09.21 18:16 Сейчас в теме
(7) это и так понятно, я почему-то считал, что ОповеститьОбИзменении() работает и на сервере, которую можно было бы вызвать в модуле подписки. Но как выяснил чуть посже, сверив с СП, что нет, потому и зачеркнул предложенное.
8. FatPanzer 30.09.21 15:03 Сейчас в теме
И сеанс какого клиента должен дернуть сервер? Если всего работает 50 пользюков, 10 сидят в этом динамическом списке, а еще двое сидят и вбивают оплаты из другой программы. Это разные сеансы. И у каждого сеанса свои отдельные клиентские и серверные контексты. Дернуть из одного сеанса сеансы других пользюков - невозможно.

Только автообновление динамического списка.
10. Release 30.09.21 18:46 Сейчас в теме
(8) Если ответ был на мой комментарий, то смысл в том, чтобы не дергать сервер каждый раз для получения возможно большого объема данных при обновлении данного списка. Что и происходит по идее при автообновлении по заданному периоду (хотя может в платформе какая-то оптимизация для этого имеется).

Другое дело, если бы можно было получить флаг необходимости обновления по событию и только тогда уже обновлять. Что собственно и происходит в толстом клиенте, если изменяется основная таблица динамического списка.

Конечно, такое реализовать можно и самостоятельно через обработчик ожидания, но нужно организовать где-то глобальное хранение флага (на сервере) изменения данных и потом дергать точно так же сервер (пусть и без контекста формы), чтобы получить значение этого флага. А потом уже, при необходимости, обновлять сам список. Как об этом кратко упоминалось в (2) и (3).
Поэтому я не стал расписывать это изначально, а просто зачеркнул свой предложенный вариант.
11. FatPanzer 30.09.21 18:52 Сейчас в теме
(10) Нет, это было автору.
но нужно организовать где-то глобальное хранение флага (на сервере) изменения данных и потом дергать точно так же сервер (пусть и без контекста формы), чтобы получить значение этого флага.
Ага, я обычно это делаю сравнением константы и параметра сеанса, в которых лежит ГУИД.
При запуске устанавливается параметр сеанса, равный константе.
При записи критических данных - константа изменяется.
При чтении критических данных - сравнивается параметр и константа, в случае несовпадения сбрасывается кэш и параметр сеанса опять привязывается к константе. Далее производим чтение через модуль с повторным использованием (кэшируемый).
12. Release 30.09.21 19:04 Сейчас в теме
(11) Тогда извиняюсь, если вдруг как-то всё же задел. :)
13. Denis-PP 3 30.09.21 19:33 Сейчас в теме
Для меня наверное выход автообновление
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот