Здравствуйте!
Есть динамический список на форме. На этой же форме есть Реквизит1.
В событии При активации строки в реквизит1 на форме устанавливается ссылка на выделенный документ.
Есть поле на форме, у которого путь к данным Реквизит1.табличнаяЧасть1 корректно отображает все.
Если менять документ в этом сеансе, то все обновляется. И просто при переключении на другую строку ТЧ отображается именно того документа, который выделен.
Далее, в другом сеансе Пользователь2 меняет документ (и табличную часть)
У Пользователя1 в это время на форме ничего не меняется. (Открыта форма списка документов.) При нажатии F5 в самом списке реквизиты шапки измененного документа видно что меняются
А вот элемент хранящий Реквизит1.табличнаяЧасть1 не обновляется.
Почему? Или может я в принципе реализую это неправильно?
Смысл в том чтобы не открывая документ видеть его табличную часть (на котором стоит курсор).
И дальше при F5 или отлавливая изменение документов этого типа в другом сеансе или по таймеру обновлять отображение в открытой форме
Платформа 8.3.18, документ добавлен в расширении
Есть динамический список на форме. На этой же форме есть Реквизит1.
В событии При активации строки в реквизит1 на форме устанавливается ссылка на выделенный документ.
Есть поле на форме, у которого путь к данным Реквизит1.табличнаяЧасть1 корректно отображает все.
Если менять документ в этом сеансе, то все обновляется. И просто при переключении на другую строку ТЧ отображается именно того документа, который выделен.
Далее, в другом сеансе Пользователь2 меняет документ (и табличную часть)
У Пользователя1 в это время на форме ничего не меняется. (Открыта форма списка документов.) При нажатии F5 в самом списке реквизиты шапки измененного документа видно что меняются
А вот элемент хранящий Реквизит1.табличнаяЧасть1 не обновляется.
Почему? Или может я в принципе реализую это неправильно?
Смысл в том чтобы не открывая документ видеть его табличную часть (на котором стоит курсор).
И дальше при F5 или отлавливая изменение документов этого типа в другом сеансе или по таймеру обновлять отображение в открытой форме
Платформа 8.3.18, документ добавлен в расширении
По теме из базы знаний
- [Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)
- Управление доступом к формам и элементам форм «УФОРМ-ЮГ» (БП, БП-КОРП, ЕРП, УНФ, УТ, КА, УХ) [Расширение]
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
- Архив элементов
- Блокировка элементов справочников от изменений
Найденные решения
&НаСервере
Процедура ОбновитьСписокТЗНаСервере()
Если Ссылка = Документы.Документ1.ПустаяСсылка() Тогда
Если ТЗ.Количество() <> 0 Тогда
ТЗ.Очистить();
КонецЕсли;
Иначе
ТЗ.Загрузить(Ссылка.ТабличнаяЧасть1.Выгрузить());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписокТЗ() Экспорт
ОбновитьСписокТЗНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Ссылка = Элемент.ТекущаяСтрока;
ОбновитьСписокТЗ();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ОбновитьСписокТЗ", 3);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ОтключитьОбработчикОжидания("ОбновитьСписокТЗ");
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(9) я так пробовала, работает. Только мне показалось что медленно при открытии и при F5. Вернула все назад, все равно медленно. Наверное не из-за этого.
Но в Элементе ТабличнаяЧасть1 отображаются строки не по порядку, со случайной сортировкой (может не случайной, но не той что в документе).
Не нашла как задать сортировку в Элементы.Список.ТекущиеДанные.Ссылка.ТабличнаяЧасть1.
Но в Элементе ТабличнаяЧасть1 отображаются строки не по порядку, со случайной сортировкой (может не случайной, но не той что в документе).
Не нашла как задать сортировку в Элементы.Список.ТекущиеДанные.Ссылка.ТабличнаяЧасть1.
Для обновления по таймеру можно вызвать команду ПодключитьОработчикОжидания(ИмяЭкспортнойПроцедурыНаКлиенте, ВремяВСекундах).В этой процедуре обновляем динамический список и вызываем процедуру при активизации строки
Элементы.ДинамическийСписок.Обновить();
ДинамическийСписокПриАктивизацииСтроки();
Элементы.ДинамическийСписок.Обновить();
ДинамическийСписокПриАктивизацииСтроки();
Как будто форма считала до изменения и все, эти данные и показывает и когда переключаю на другую строку или возвращаю на эту, ТЧ меняется, но показывает то что было до изменения.
Если зайти в тот документ или даже в соседний от Пользователя в текущем сеансе и просто перепровести, то тч обновляется и показывает верно.
Если зайти в тот документ или даже в соседний от Пользователя в текущем сеансе и просто перепровести, то тч обновляется и показывает верно.
&НаСервере
Процедура ОбновитьСписокТЗНаСервере()
Если Ссылка = Документы.Документ1.ПустаяСсылка() Тогда
Если ТЗ.Количество() <> 0 Тогда
ТЗ.Очистить();
КонецЕсли;
Иначе
ТЗ.Загрузить(Ссылка.ТабличнаяЧасть1.Выгрузить());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписокТЗ() Экспорт
ОбновитьСписокТЗНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Ссылка = Элемент.ТекущаяСтрока;
ОбновитьСписокТЗ();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ОбновитьСписокТЗ", 3);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ОтключитьОбработчикОжидания("ОбновитьСписокТЗ");
КонецПроцедуры
Показать
(7) похоже что это сработает.
Добавила в реквизиты формы списка новый реквизит с типом "(ТаблицаЗначений)", поместила на форму.
При активации стороки, в него считывает актуальные данные.)
Хотя пока что в самом динамическом списке при этом пока не нажмешь обновить отображает старые данные шапки.
Теперь или по таймеру или по таймеру + с условием по датам попробую.
Недавно, вроде на инфостарте, находила вариант - через регистр сведений с датой.
Попробую создать не периодический регистр сведений с измерениями "пользователь" и ресурсом "ДатаИзменения".
И в форме списка документов реквизит "ДатаИзмененияНаФорме"
В событии ПослеЗаписи в модуле документа можно будет добавлять или изменять запись в этом регистре по автору.
И дальше по таймеру и при активации строки, на сервере сверять наибольшую запись по дате, где пользователь не равен текущему с датой в реквизите формы. И если вторая меньше обновлять список
Спасибо! Кажется все теперь должно работать!
Добавила в реквизиты формы списка новый реквизит с типом "(ТаблицаЗначений)", поместила на форму.
При активации стороки, в него считывает актуальные данные.)
Хотя пока что в самом динамическом списке при этом пока не нажмешь обновить отображает старые данные шапки.
Теперь или по таймеру или по таймеру + с условием по датам попробую.
Недавно, вроде на инфостарте, находила вариант - через регистр сведений с датой.
Попробую создать не периодический регистр сведений с измерениями "пользователь" и ресурсом "ДатаИзменения".
И в форме списка документов реквизит "ДатаИзмененияНаФорме"
В событии ПослеЗаписи в модуле документа можно будет добавлять или изменять запись в этом регистре по автору.
И дальше по таймеру и при активации строки, на сервере сверять наибольшую запись по дате, где пользователь не равен текущему с датой в реквизите формы. И если вторая меньше обновлять список
Спасибо! Кажется все теперь должно работать!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот