Обновление формы элемента справочника
Добрый день.
Помогите, пожалуйста понять что не правильно.
Есть форма, которая открывает другую. Во второй вводятся данные, сохраняются, но при закрытии второй формы в первой изменения не отражаются. А если я закрою и заново открою элемент, то данные будут записаны.
Хотелось бы сразу чтобы они обновлялись.
Я попробовала несколько способов, но так и не пришла к решению. В последней из попыток использовала:
Во второй форме:
А в первой:
Обновление не происходит. Что я делаю не так?
Помогите, пожалуйста понять что не правильно.
Есть форма, которая открывает другую. Во второй вводятся данные, сохраняются, но при закрытии второй формы в первой изменения не отражаются. А если я закрою и заново открою элемент, то данные будут записаны.
Хотелось бы сразу чтобы они обновлялись.
Я попробовала несколько способов, но так и не пришла к решению. В последней из попыток использовала:
Во второй форме:
&НаКлиенте
Процедура ПриЗакрытии()
Оповестить("ОбновитьФормуЭлемента");
КонецПроцедуры
А в первой:
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия,Параметр, Источник)
Если ИмяСобытия= "ОбновитьФормуЭлемента"
Тогда
ЭтаФорма.ОбновитьОтображениеДанных(Объект.ПолеHTMLДоступы);
КонецЕсли;
КонецПроцедуры
ПоказатьОбновление не происходит. Что я делаю не так?
По теме из базы знаний
- Конфигурация "Весовая ред. 3.0" для Платформы 8.3
- Программное управление обычными формами документов и справочников в УПП/КА
- Динамическое изменение формы: кнопочная форма выбора справочника
- Как вывести дополнительные реквизиты на форму списка справочника Графики работы сотрудников. Управляемые формы. Без снятия конфигурации с поддержки
- Методика обновления формы объекта данных при изменении объекта
Найденные решения
(24)
(22) Спасибо большое за помощь!
В моём случае правда пришлось сделать иначе.
У меня есть процедура
Сделала так
Не знаю насколько это правильно с точки зрения программирования, но работает)
(22) Спасибо большое за помощь!
В моём случае правда пришлось сделать иначе.
У меня есть процедура
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
---------
КонецПроцедуры
Сделала так
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия,Параметр, Источник)
Если ИмяСобытия= "ОбновитьФормуЭлемента" Тогда
ПриСозданииНаСервере(ложь, истина);
КонецЕсли;
КонецПроцедуры
ПоказатьНе знаю насколько это правильно с точки зрения программирования, но работает)
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Форма 1 - Объект 1 данные сформированы.
Открывается форма 2, Объект 2. изменяется реквизит МойHTMLДокумент. Сохраняется, закрывается.
Форма 1. Объект все еще 1 (не обновленный). Даем команду "Форма.ОбновитьОтображение". Данные для обновления берутся из Объект1, который все еще не обновлен.
Открывается форма 2, Объект 2. изменяется реквизит МойHTMLДокумент. Сохраняется, закрывается.
Форма 1. Объект все еще 1 (не обновленный). Даем команду "Форма.ОбновитьОтображение". Данные для обновления берутся из Объект1, который все еще не обновлен.
(15) Давайте, расскажу
У меня есть элемент справочника оборудование. Например компьютер.
Открываю его и хочу редактировать данные. Нажимаю на кнопку, открывается вторая форма где можно редактировать эти данные. Ввожу там какие-то записи, а потом сохранив закрываю.
И в первой форме должны показаться эти новые данные. Их нет. Закрываю этот элемент, открываю опять, данные есть) И вот это не очень нужное действие с открытием и закрытием я бы хотела исключить, чтобы пользователю было удобнее.
У меня есть элемент справочника оборудование. Например компьютер.
Открываю его и хочу редактировать данные. Нажимаю на кнопку, открывается вторая форма где можно редактировать эти данные. Ввожу там какие-то записи, а потом сохранив закрываю.
И в первой форме должны показаться эти новые данные. Их нет. Закрываю этот элемент, открываю опять, данные есть) И вот это не очень нужное действие с открытием и закрытием я бы хотела исключить, чтобы пользователю было удобнее.
(19)
тебе надо во второй форме, ввести данные, и параметром в обработке оповещения передать их в первую форму.
Там, этот новый текст (или что у тебя там), должен вставится в твое поле..
а сохранится в базу он должен когда, ты нажмешь ОК уже в первой форме, твоего справочника обороудование
примерно так
на первой
Нажимаю на кнопку, открывается вторая форма где можно редактировать эти данные. Ввожу там какие-то записи, а потом сохранив закрываю.
И в первой форме должны показаться эти новые данные
И в первой форме должны показаться эти новые данные
тебе надо во второй форме, ввести данные, и параметром в обработке оповещения передать их в первую форму.
Там, этот новый текст (или что у тебя там), должен вставится в твое поле..
а сохранится в базу он должен когда, ты нажмешь ОК уже в первой форме, твоего справочника обороудование
примерно так
&НаКлиенте
Процедура ПриЗакрытии()
Оповестить("ОбновитьФормуЭлемента", ПолеСДанными);
КонецПроцедуры
на первой
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия,Параметр, Источник)
Если ИмяСобытия= "ОбновитьФормуЭлемента"
Тогда
Объект.ПолеHTMLДоступы = парамер;
В первой форме.
Форма2 = ПолучитьФорму("ПутьКФорме",,ЭтаФорма);
КопироватьДанныеФормы(Объект,Форма2.Объект);
Форма2.Открыть();
Во второй форме
При Закрытии
КопироватьДанныеФормы(Объект, ЭтаФорма.Владелец.Объект);
Оповестить("Я все сделала!");
В первой форме
Обработка оповещения
Если ИмяСобытия = "Я все сделала!" тогда ЭтаФорма.Прочитать(); КонецЕсли;
Форма2 = ПолучитьФорму("ПутьКФорме",,ЭтаФорма);
КопироватьДанныеФормы(Объект,Форма2.Объект);
Форма2.Открыть();
Во второй форме
При Закрытии
КопироватьДанныеФормы(Объект, ЭтаФорма.Владелец.Объект);
Оповестить("Я все сделала!");
В первой форме
Обработка оповещения
Если ИмяСобытия = "Я все сделала!" тогда ЭтаФорма.Прочитать(); КонецЕсли;
(24)
(22) Спасибо большое за помощь!
В моём случае правда пришлось сделать иначе.
У меня есть процедура
Сделала так
Не знаю насколько это правильно с точки зрения программирования, но работает)
(22) Спасибо большое за помощь!
В моём случае правда пришлось сделать иначе.
У меня есть процедура
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
---------
КонецПроцедуры
Сделала так
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия,Параметр, Источник)
Если ИмяСобытия= "ОбновитьФормуЭлемента" Тогда
ПриСозданииНаСервере(ложь, истина);
КонецЕсли;
КонецПроцедуры
ПоказатьНе знаю насколько это правильно с точки зрения программирования, но работает)
(25) С точки зрения программирования это плохой стиль - явно вызывать обработчики событий. Если это сработало, значит, нужно посмотреть, какой код из "ПриСозданииНаСервере" обновляет данные формы. И вынести этот код в отдельный метод, например, ОбновитьДанныеФормы() или как-то так назвать. И вызывать этот метод в "ПриСозданииНаСервере" и в обработке оповещения
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)