1с как обновить форму программно
Перейти к содержимому

1с как обновить форму программно

  • автор:

Обновление списков при интерактивных действиях пользователя

Область применения: управляемое приложение, мобильное приложение.

1. Платформа 1С:Предприятие по умолчанию обновляет содержимое динамических списков при выполнении пользователем стандартных команд по изменению элементов этого списка ( Записать , Провести , Пометить на удаление и т.п.) и при добавлении новых элементов. Но в ряде ниже перечисленных случаев такое обновление следует предусмотреть явно в прикладном коде.

2. Команды, которые изменяют объекты и размещаются в форме списка, должны заботиться об обновлении списка объектов после своего выполнения. Например, после изменения одного объекта рекомендуется вызывать метод ОповеститьОбИзменении :

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

ОбъектСсылка = ПараметрКоманды;
// Меняем объект
// .
ОповеститьОбИзменении(ОбъектСсылка);

При изменении нескольких объектов целесообразно обновлять список однократно, в конце операции:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

Для Каждого ОбъектСсылка Из ПараметрКоманды Цикл
// Меняем объект
// .
КонецЦикла;

ОповеститьОбИзменении(ТипЗнч(ПараметрКоманды[0]));

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

3.1. Если данные добавляются или изменяются командой, расположенной в форме динамического списка, то необходимо обновить список явно после выполнения команды.

3.2. Если данные изменяются в какой-либо другой форме (например, в форме объекта), то необходимо организовать обновление списка через оповещение. Для этого в каждой форме объекта, данные которого выводятся в динамическом списке, следует реализовать обработчик события ПослеЗаписи с использованием метода Оповестить :

Оповестить («Запись_», ПараметрыОповещения, ОбъектСсылка);

  • Запись_ — имя события, в котором — имя объекта, как оно задано в метаданных. Например, для документа «Расходная накладная» имя события будет «Запись_РасходнаяНакладная» .
  • ПараметрыОповещения – как правило, это параметр события ПослеЗаписи формы объекта. Состав свойств структуры может быть расширен исходя из потребностей прикладной логики.
  • ОбъектСсылка – ссылка на записываемый объект.

Затем в обработчике события Оповещение в форме динамического списка разместить код по обновлению динамического списка вида:

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если Врег(ИмяСобытия) = Врег(«Запись_РасходнаяНакладная»)
Или Врег(ИмяСобытия) = Врег(«Запись_НакладнаяНаПеремещение») Тогда
Элементы.СписокНакладных.Обновить();
КонецЕсли;

При этом имена событий следует проверять явным образом, чтобы исключить неоправданное обновление списка.

3.3. При изменении сразу нескольких объектов в параметре ОбъектСсылка метода Оповестить следует передавать значение Неопределено .

Оповестить(«Запись_РасходнаяНакладная», ПараметрыЗаписи, Неопределено);

1С 8.3 Как программно обновить данные управляемой формы объекта или формы списка

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

Элементы.Список.Обновить(); 

Обновить содержание элементов управления:

ЭтаФорма.ОбновитьОтображениеДанных(); 

Тэги

  • Блог пользователя Nicholas
  • Добавить комментарий

Комментарии

Аватар пользователя денис

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

ни одно не помогло

ни одно не помогло

Аватар пользователя Александр

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

Полная фигня

Аватар пользователя Александр

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

Подтверждаю, полная фигня.

Подтверждаю, полная фигня.

Аватар пользователя Nicholas

Nicholas Thu, 25/03/21

Зависит от того, что и откуда

Зависит от того, что и откуда вы хотите обновить.

Аватар пользователя Прямые руки

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

Спасибо, помогло

Аватар пользователя Андрей

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

«ЭтаФорма.Прочитать()» всё

«ЭтаФорма.Прочитать()» всё отлично работает

Аватар пользователя Гость

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

ЭтаФорма.Прочитать() :

ЭтаФорма.Прочитать() : Метод объекта не обнаружен (Прочитать)

Аватар пользователя Вячеслав

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

Спасибо! Очень помогло в

Спасибо! Очень помогло в разработке)\

Аватар пользователя Андрей

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

Работает на 8.3.18.1289, УФ,

Работает на 8.3.18.1289, УФ, ERP

Аватар пользователя Александр

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

Отлично — коротко и ясно. Все

Отлично — коротко и ясно. Все методы нормально работают в тех ситуациях, для которых они предназначены.

Аватар пользователя Алексей

Алексей (не проверено) Thu, 28/10/21

у меня в УНФ только вот так

у меня в УНФ только вот так заработало, видимо слишком много изменений в разных процедурах обновлялось

//Сохраним изменения
ЭтаФорма.Записать();
ПоказатьЗначение(,Объект.Ссылка);

1С 8.3 : Как обновить форму списка из формы элемента?

Распечатать

Есть форма со списком элементов справочника. При нажатии на список открывается форма с элементом из списка, но при сохранении элемента первая форма не обновляется.

Как программно обновить форму списка?

В форме элемента необходимо написать код:

 &НаКлиенте 
ПроцедураПослеЗаписи(ПараметрыЗаписи)
Оповестить("ОбновитьФормуСписка");
КонецПроцедуры

а, в форме списка добавить событие:

 &НаКлиенте 
Процедура ОбработкаОповещения(ИмяСобытия,Параметр, Источник)

Если ИмяСобытия= "ОбновитьФормуСписка" Тогда
ЭтаФорма.ОбновитьОтображениеДанных();
КонецЕсли;

КонецПроцедуры

Разместил: E_Migachev Версии: | 8.2 УП | 8.3 | Дата: 24.02.2015 Прочитано: 36281

Распечатать

Возможно, вас также заинтересует

Похожие FAQ

Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools — это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую «из коробки» применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих

Еще в этой же категории

Как обновить динамический список или реквизит на форме клиента? 26
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Как установить параметр динамического списка? 17
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Табличная часть ~ Как настроить отбор строк? 6
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство: в обычном приложении параметр для ОтборСтрок — Отбор. в управляемом Список НЕ модальных методов в 1С 4
Найдено в интернете но говорят что с диска ИТС. Как показать сообщение пользователю? методы: СообщениеПользователю и ПоказатьОповещениеПользователя 3
В 1С предполагается, что СообщениеПользователю выводятся для того, чтобы сообщить пользователю об ошибках. А для информирования о выполняемом действии рекомендуется использовать метод встроенного языка ПоказатьОповещениеПользователя() . Сооб Посмотреть все в категории Работа с Формой (Диалог) и её элементами

1С. Как обновить данные в форме (Управляемое приложение).

Допустим, мы делаем внешнюю обработку для модификации каких-то данных. Например, групповая перенумерация документов «Требование-накладная».

У нас создана форма обработки, в которой есть реквизит формы «СписокДокументов» с типом «ТаблицаЗначений». В эту таблицу мы выводим список ссылок на отобранные для перенумерации документы.

1С. Обновление реквизита формы.

Проводим перенумерацию и обнаруживаем, что данные в форме обработки не обновились. То есть, в системе документы успешно получили новые номера, а в форме обработки по-прежнему ображаются старые данные.

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

В нашем случае мы в модуле формы внешней обработки, в процедуре, выполняемой на клиенте, после завершения перенумерации добавляем код:

ОповеститьОбИзменении(Тип("ДокументСсылка.ТребованиеНакладная")); 

В результате выполнения этой функции обновится кэш представления ссылок указанного типа данных, и в форме обработки мы увидим обновлённые данные.

Также можно использовать метод:

ОбновитьОтображениеДаных() 
  • Управляемые формы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *