+23
Как обновить динамический список или реквизит на форме клиента?
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закрыть форму и открыть снова — все обновится
НО если нужно обновить сразу в открытой форме, то используйте код:
Код 1C v 8.3
&НаКлиенте
Процедура ОбработатьВыборФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Если Не Результат Тогда
Возврат;
КонецЕсли;
// Много кода обработки
//...
//...
//...
// ОБНОВИМ динамический список файлы
Элементы.Файлы.Обновить();
// для обновления Реквизитов
ЭтаФорма.Прочитать();
// Обновление данных
ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры
Обновить() — Обновляет данные в таблице.
Прочитать() — Обновляет объект управляемой формы.
ОбновитьОтображениеДанных() — В принудительном порядке обновляет содержание элементов управления. Полезен при изменении значений реквизитов формы вне формы, в тот момент, когда форма отображается на экране.
УправляемаяФорма (ManagedForm)
ОбновитьОтображениеДанных (RefreshDataRepresentation)
Синтаксис:
ОбновитьОтображениеДанных(<ОбновлятьЭлементы>)
Параметры:
<ОбновлятьЭлементы> (необязательный)
Тип: ГруппаФормы; ТаблицаФормы; ПолеФормы; Массив.
Если параметр задан, то установка значений (и обновление) будет выполняться только для тех элементов, которые заданы в параметре. Если в качестве значения передан пустой массив, то ни для каких элементов формы установка значений выполнена не будет.
После вызова метода признак необходимости установки значений и обновления для элементов формы сбрасывается: если после вызова метода никакие данные формы не меняются, то ни для никаких элементов, кроме указанных, текст обновлен не будет.
Если параметр имеет значение типа Массив, то элементами массива могут быть только значения типа ГруппаФормы, ТаблицаФормы, ПолеФормы.
Если массив содержит значение другого типа, то будет выдано исключение о неверном типе параметра.
Вызов метода ОбновитьОтображениеДанных с параметром <ОбновлятьЭлементы> имеет смысл только внутри обработчика ВнешнееСобытие, обработчиков ожидания формы и обработчика ОбработкаОповещения.
В обработчиках других событий вызов этого метода с параметром аналогичен вызову без параметра (при необходимости данные будут установлены всем элементам управления).
Описание:
В принудительном порядке обновляет содержание элементов управления.
Полезен при изменении значений реквизитов формы вне формы, в тот момент, когда форма отображается на экране.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:
В веб-клиенте обновление элементов управления происходит не сразу, а после окончания выполнения кода на встроенном языке.
Может это поможет?
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закрыть форму и открыть снова — все обновится но если нужно обновить сразу в открытой форме, то используйте код:
&НаКлиенте
Процедура ОбработкаДанныхКлиент() Экспорт
//Обрабатываем на сервере, например создаем записи в регистре сведений
//................
ОбработкаДанныхСервер();
//................
//Обновление динамического списка на форме
Элементы.Список.Обновить();
//Обновим реквизиты
ЭтаФорма.Прочитать();
// Обновление данных
ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры
Обновить() — Обновляет данные в таблице.
Прочитать() — Обновляет объект управляемой формы.
ОбновитьОтображениеДанных() — В принудительном порядке обновляет содержание элементов управления. Полезен при изменении значений реквизитов формы вне формы, в тот момент, когда форма отображается на экране.
You have no rights to post comments
Допустим, мы делаем внешнюю обработку для модификации каких-то данных. Например, групповая перенумерация документов «Требование-накладная».
У нас создана форма обработки, в которой есть реквизит формы «СписокДокументов» с типом «ТаблицаЗначений». В эту таблицу мы выводим список ссылок на отобранные для перенумерации документы.
Проводим перенумерацию и обнаруживаем, что данные в форме обработки не обновились. То есть, в системе документы успешно получили новые номера, а в форме обработки по-прежнему ображаются старые данные.
Чтобы обновить данные в форме, нужно использовать функцию глобального контекста:
ОповеститьОбИзменении(<Ссылка>)
В нашем случае мы в модуле формы внешней обработки, в процедуре, выполняемой на клиенте, после завершения перенумерации добавляем код:
ОповеститьОбИзменении(Тип("ДокументСсылка.ТребованиеНакладная"));
В результате выполнения этой функции обновится кэш представления ссылок указанного типа данных, и в форме обработки мы увидим обновлённые данные.
Также можно использовать метод:
ОбновитьОтображениеДаных()
- Главная
- Статьи
- 1С
- 1С 7.7
- 1С:ЗиК
- 1С 8
- Вопросы и ответы для подготовки к тестированию «1С:Профессионал» по теме «Платформа 8.3»
- 1С:КА
- 1С:ЗУП
- 1С:БП
- УТ11
- 1С:ERP
- Расширения конфигурации
- 1С-Битрикс
- 1С:Юмор
- 1С:Рецепт
- СКД
- Конвертация данных
- обновление конфигурации
- обмен данными
- Перенос данных
- 1С 7.7
- Промокоды
- Outlook
- SQL
- Web
- Sony Vegas
- Прочее
- 1С
- Услуги
- Web
- Контакты
- Скачать
23 Mar
Обновить данные формы:
ЭтаФорма.Прочитать();
Обновить данные списка (динамического списка) на форме:
Элементы.Список.Обновить();
Обновить содержание элементов управления:
ЭтаФорма.ОбновитьОтображениеДанных();
- Блог пользователя Nicholas
- Добавить комментарий
Комментарии

денис (не проверено)Thu, 07/01/21
- ответить

Александр (не проверено)Thu, 18/03/21
- ответить

Александр (не проверено)Thu, 18/03/21
- ответить
- ответить

Прямые руки (не проверено)Wed, 28/04/21
- ответить

Андрей (не проверено)Fri, 07/05/21
- ответить

Гость (не проверено)Fri, 21/05/21
- ответить

Вячеслав (не проверено)Tue, 25/05/21
- ответить

Андрей (не проверено)Tue, 01/06/21
- ответить

Александр (не проверено)Thu, 28/10/21
- ответить

Алексей (не проверено)Thu, 28/10/21
у меня в УНФ только вот так
у меня в УНФ только вот так заработало, видимо слишком много изменений в разных процедурах обновлялось
//Сохраним изменения
ЭтаФорма.Записать();
ПоказатьЗначение(,Объект.Ссылка);
- ответить

Марина (не проверено)Thu, 10/11/22
Супер! Супер! Супер! Спасибо!
Супер! Супер! Супер! Спасибо! Надо было в обработке заполнения поменять открытый объект и потом перечитать его форму
- ответить

Сергей (не проверено)Thu, 02/02/23
- ответить
Добавить комментарий
Реклама
© 2010-2022, Nicholas Mikuslas. При полном или частичном использовании материалов сайта, активная ссылка на mikuslas.ru обязательна.




