Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обновить данные реквизита формы владельца при изменении реквизита из справочника
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Constantus
Приветствую, Форумчане!
УПП 1.2, обычные формы, переписанный

На документе "РегистрацияКарты" имеется реквизит "Спецификация" с ссылкой на справочник "Спецификация"
Есть ситуации, когда в выбранную спецификацию внести изменения в самом документе.

При нажатии на лупу этого реквизита открываю форму с передачей владельца формы

ПроцедураСпецификацияОткрытие(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

Форма = Спецификация.ПолучитьФорму("ФормаЭлемента");
Форма.ВладелецФормы = ЭтаФорма;
Форма.Открыть();

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


Далее в наименование "Спецификации" вношу изменения, сохраняю справочник и закрываю.

Как теперь в основной форме документа внести обновления наименования этого справочника после его закрытия?

Наименование то изменено, но на форме документа висит прежнее название справочника...
denis84
Constantus @ Сегодня, 13:20 необходимо зарегистрироваться для просмотра ссылки ,
 ЭтаФорма.Прочитать();


вот ссылка можно глунуть тут: необходимо зарегистрироваться для просмотра ссылки
Constantus
denis84 @ Сегодня, 16:42 необходимо зарегистрироваться для просмотра ссылки ,
Прочитать() так обновляет форму, что эта форма вообще пустой становиться.

Забыл самое главное сказать, что документ "РегистрацияКарты" создается программно и на момент изменения Спецификации еще не записан.

Т.е. Открывается новый заполненный данными документ, но не записанный.
Далее выбирается реквизит Спецификация (он существует), вносят туда изменения и измененный должен вернуться в незаписанный документ

Прошлось делать через оповещение

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

Если ИмяСобытия = "ТакоеТо" Тогда
Спецификация = Спецификация;
КонецЕсли;

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

Так сработало, но насколько это правильно, если отбросить принципа "и так сойдет раз сработало..."?
Vofka
Цитата(Constantus @ 28.10.21, 14:14) необходимо зарегистрироваться для просмотра ссылки
Прошлось делать через оповещение

Оповещение как раз для этого сделано, что бы обмениваться сообщениями между открытыми формами. Правда в самом обработчике код как-то интересно выглядит:
Спецификация = Спецификация;
awp
Constantus @ Сегодня, 13:20 необходимо зарегистрироваться для просмотра ссылки ,
ПроцедураСпецификацияОткрытие(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

Форма = Спецификация.ПолучитьФорму("ФормаЭлемента");
Форма.ВладелецФормы = ЭтаФорма;

ВыбЭлемент = Форма.ОткрытьМодально();
Если ЗначениеЗаполнено(ВыбЭлемент) Тогда
     Элемент.Значение = ВыбЭлемент;
КонецЕсли;

КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.