Имя: Пароль:
1C
 
Как отслеживать запись новых документов во всех сеансах?
0 Web00001
 
17.01.24
07:27
Всем привет! Пишу АРМ, разные сотрудники работают с разным набором документов из разных мест нашей планеты. Хотелось бы опитмизировать запросы к БД и трафик, кешируя полученный список документов. Но в то же время, нельзя упустить, что список документов может изменяться и не обязательно самим пользователем. Есть подписка на событие в которой я могу отслеживать изменение документов. Но как потом разнести эти изменения по всем остальным сеансам?
1 Ненавижу 1С
 
17.01.24
08:34
(0) космические корабли бороздят просторы большого театра?
2 Кондер
 
17.01.24
09:06
Версионирование... Хотя ты просто хочешь быть владычицей морской, а быть тебе у разбитого корыта, жадная и склочная старуха
3 mikecool
 
17.01.24
09:26
"Но как потом разнести эти изменения по всем остальным сеансам? " так они сами разлетятся, или ты не дин списки используешь? и что в твоем понятии сеанс?
4 viraboy
 
17.01.24
09:36
План обмена или РС и фоновое задание на клиенте, которое проверяет зарегистрированные изменения
5 Волшебник
 
17.01.24
09:49
(0) Обработчик ожидания каждые 15 минут, который обновляет список целиком или подгружает только изменения. Как хранить изменения, решать Вам.
6 AlexeyKh
 
17.01.24
09:58
"Но как потом разнести эти изменения по всем остальным сеансам?"
не надо ни чего разносить! на то она и платформа!
просто в сеансах настраивайте нужный период обновления
по умолчанию вроде 60 сек. задано,
поставьте 10 сек
где бы не ввели/создали новые документы
через 10 сек он появится в саисках у ВСЕХ пользователей/сеансах!
7 Волшебник
 
17.01.24
10:00
(6) У него свой АРМ
8 Web00001
 
17.01.24
14:15
(5)15 минут это очень много, хотелось бы подписаться на изменения и что-то бы дернуло форму, как например ОбработкаОповещения. Но в тот момент когда переписали документ или справочник. Чтобы я перерисовал изменения в ту же секунду.

(4)РС и фоновое задание пахнет диким костылем. Но пока это единственный вариант. Берем список всех активных пользователей и пишем данные в регистр. Когда срабатывает подписка, получаем активных пользователей и каждому добавляем событие. А тех кто покинул 1С - удаляем. Клиент поняв что надо обработать изменения, обрабатывает и удаляет их из регистра. Костыль конечно... Но пока не придумал, как еще решить такую задачу.
9 Волшебник
 
17.01.24
14:19
(8) Создайте свой тг-канал, в который отправляйте push-уведомления.
10 Web00001
 
17.01.24
14:22
(9)Тут должна быть приписка - "в порядке бреда разумеется"
11 Волшебник
 
17.01.24
14:32
(10) Ну разумеется. Пока пользователи работают в одной базе, то нечего городить огород из веб-серверов и пуш-уведомлений.
12 dmt
 
17.01.24
16:05
(8) система взаимодействия может "дернуть" клиента
13 Лефмихалыч
 
17.01.24
16:46
(0) а ты замеры провел и имеешь объективные подтверждения в цифрах своей гипотезы, что надо кэшировать документы и постоянное чтение документов порождает какие-то тормоза? Или это просто тебе интересно решать именно эту задачу и поэтому ты ее решаешь?
14 lodger
 
17.01.24
17:02
(7) в свой АРМ можно поставить свой ДинамическийСписок.
15 Web00001
 
18.01.24
06:13
(13)Замеры на стороне клиентов проводить немного проблематично в силу ряда причин(загруженность операторов, разные часовые пояса, разные платформы, проблемы с удаленным доступом и тд). Но они иногда записывают видосы) как у них работает. Сейчас уже переписано много и стало сильно лучше. Но по дороге все равно хочется сделать максимально оптимально.
(14)Именно группировки в динамических списках и стали причиной начала работ по оптимизации. Это было первое, что пришлось выкинуть и что сделало работу со списками намного более комфортной.
16 Web00001
 
18.01.24
06:17
(12)Предлагаешь рад этого поставить\настроить\поддерживать систему взаимодействия?
17 dmt
 
18.01.24
08:02
(16) не осилишь или что, надо чтоб тебе вареники сами в рот запрыгивали?
18 Web00001
 
18.01.24
08:44
(17)Не считаю это разумным. Особенно когда его надо еще и купить для этого.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.