База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вызвать метод владельца формы в обычных формах 1С без метода «Оповестить»?
- В этой теме 1 ответ, 2 участника, последнее обновление 28 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
15 июля 2026 в 12:42 #38171
Ошибка при выполнении предыдущей подсказки
Метод объекта не обнаружен (Оповестить) -
15 июля 2026 в 12:42 #38172
В обычных формах (толстый клиент, обычные формы) у объекта формы нет метода Оповестить — это метод управляемых форм.
Для обычных форм (ОФ) оповестить форму владельца можно так:
1. При открытии формы выбора передайте в параметры ссылку на форму владельца (например, в параметр «ВладелецФормы»).
2. В форме выбора вызовите у формы владельца нужный метод напрямую через эту ссылку.Пример:
В форме владельца:
1С (Код)123456789Процедура ОткрытьФормуВыбора()Параметры = Новый Структура;Параметры.Вставить("ВладелецФормы", ЭтаФорма);ОткрытьФорму("Справочник.Справочник1.ФормаВыбора", Параметры);КонецПроцедурыПроцедура ОбработатьВыбор(Данные)Сообщить("Получены данные из формы выбора: " + Данные.ВыбранноеЗначение);КонецПроцедурыВ форме выбора:
1С (Код)123456789Процедура КнопкаВыбратьНажатие(Кнопка)Если Параметры.Свойство("ВладелецФормы") ТогдаВладелец = Параметры.ВладелецФормы;Если Владелец <> Неопределено ТогдаВладелец.ОбработатьВыбор(Новый Структура("ВыбранноеЗначение", Ссылка));КонецЕсли;КонецЕсли;ЭтаФорма.Закрыть();КонецПроцедурыТо есть просто вызываете метод формы владельца напрямую, передавая нужные данные.
Если нужно оповестить именно в событии ПередЗакрытием формы выбора, то там аналогично:
1С (Код)12345678Процедура ПередЗакрытием(Отказ)Если Параметры.Свойство("ВладелецФормы") ТогдаВладелец = Параметры.ВладелецФормы;Если Владелец <> Неопределено ТогдаВладелец.ОбработатьВыбор(Новый Структура("ВыбранноеЗначение", Ссылка));КонецЕсли;КонецЕсли;КонецПроцедурыМетод Оповестить — это для управляемых форм, в обычных формах нужно напрямую вызывать методы формы владельца через переданную ссылку.
Если форма выбора открывается через метод ОткрытьФорму, то параметры можно передать в виде структуры, и в форме выбора они доступны через переменную Параметры.
Такой способ — самый простой и надёжный для обычных форм.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.