Имя: Пароль:
1C
1С v8
Обновление дин.списка (регистра сведений) у разных пользователей.
, ,
0 Darhon
 
30.07.15
06:30
Доброго утра, уважаемые форумчане. Подскажите следующее, пожалуйста.  Есть формаСписка регистра сведения.  Там выводятся события начиная с какой-то даты и по текущее время. Выводятся произвольным запросом в динамический список. Подключен обработчик ожидания где раз в 5 секунд происходит Элементы.Список.Обновить(). Если пользователь 1 меняет существующую запись регистра, то измненения у пользователя 2 появляются, а вот если добавляет новую, то их не видно, пока не нажмешь конопку обновить в действиях списка. Как решить данную проблему, и возможно ли вообще уйти от обработки ожидания а обновлять только когда есть изменения....Заранее спасибо :) И всем хорошего дня)
1 Darhon
 
30.07.15
06:37
+(0) C ОповеститьОбИзменении(Ключ)...что то я не разобрался как оно должно работать ))
2 Darhon
 
30.07.15
06:42
(+0) Наврал, при нажатии кнопки обновить в командах списка тоже ничего ен добавляется )
3 lxndr
 
30.07.15
06:43
а если проскроллить? Может, добавленное вне экрана?
4 Darhon
 
30.07.15
06:44
не....там для теста берется выборка в 6 записей))
5 Darhon
 
30.07.15
06:46
Рядом ставишь 2 окна, видно что в одном добавляешь записи, в другом без изменений (то есть в первом окне список на одну строку больше стал) меняешь любую запись (которая есть в обоих окнах программы) изменения появляются...Но новая позиция так и не появляется, пока не перевыполнишь произвольный запрос.
6 lxndr
 
30.07.15
06:51
попробуй в свойствах списка - элемент поставить значения для АвтоОбновление и ПериодАвтоОбновления
7 lxndr
 
30.07.15
06:51
*списка-элемента формы
8 Darhon
 
30.07.15
06:59
(7) Таже картина
9 Darhon
 
30.07.15
06:59
(7) Это было первое что я сделал )
10 Darhon
 
30.07.15
07:52
(10) записи добавляются программно, это может быть Важно...
11 Darhon
 
30.07.15
08:11
up
12 Darhon
 
30.07.15
08:19
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ОбновитьСписок" Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура СписокОбработкаЗаписиНового(НовыйОбъект, Источник, СтандартнаяОбработка)
Оповестить("ОбновитьСписок");
КонецПроцедуры

Тоже не помагает, он даже не входит в процедуру СписокОбработкаЗаписиНового
13 Остап Сулейманович
 
30.07.15
08:26
(12) Оповестить() работает только в пределах одного сеанса.
14 Остап Сулейманович
 
30.07.15
08:28
(4) "там для теста берется выборка в 6 записей"
Возможно новая запись не попадает в выборку по каким-нибудь условиям. Попробовать на время отладки убрать вообще все отборы и условия из запроса.
15 Darhon
 
30.07.15
08:28
Есть вариант принудительно выполнять произвольный запрос, раз в секунд 5, но это как-то ен айс мне кажется(
16 Darhon
 
30.07.15
08:29
(14) попробую...
17 Остап Сулейманович
 
30.07.15
08:33
(15) Это для каких задач нужна реакция с лагом не более 5-сек? Может быть для систем АСУ ТП?
Пользователь вообще успеет осознать, что произошло какое-то событие?
Или это обычные хотелки типа "хочу что бы все"? Ну так сделай с приемлимым лагом с технической точки зрения, а  отчитайся за 5 сек. Все равно в реале такой реакции ждать от юзера не приходится.
18 Darhon
 
30.07.15
08:36
запрос без условий....данные не добавляются на 2 форме.
19 Darhon
 
30.07.15
08:37
(17) Это список звонков телефонных с временем и статусом, поэтому запись формируется в момент снятия трубки оператором и должна быть видна у всех пользователей в идеале сразу же....5 сек это максимум на что согласны сотрудники )
20 Остап Сулейманович
 
30.07.15
08:41
(18) Покажи запрос.
21 Darhon
 
30.07.15
09:12
Запрос.Текст =
        "ВЫБРАТЬ
        |    Заказы.ИДЗаказа,
        |    Заказы.Время КАК Время,
        |    Заказы.Телефон,
        |    Заказы.Карта,
        |    Заказы.Льгота,
        |    Заказы.Ожидание
        |ИЗ
        |    РегистрСведений.Заказы КАК Заказы";