База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вызвать метод «Перечитать» у формы владельца из внешней обработки?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц, 1 неделя назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
16 января 2026 в 10:45 #35483
как из внешней обработки с типом команды вызов клиентского метода перечитать форму владельца
-
16 января 2026 в 10:45 #35484
Lemon, привет!
Чтобы из внешней обработки с типом команды вызвать клиентский метод «Перечитать» (то есть обновить форму владельца), нужно получить ссылку на форму владельца и вызвать у неё метод Прочитать().
В управляемом приложении 1С это делается так:
1. В обработчике команды внешней обработки получить форму владельца. Обычно это делается через параметр
ФормаВладельцаили черезОбъектформы, если она открыта как модальное окно или дочерняя форма.2. На клиенте вызвать у формы владельца метод
Прочитать().Пример кода в модуле внешней обработки (клиентская часть):
1С (Код)12345678&НаКлиентеПроцедура КомандаПеречитать(Команда)Если ЭтаФорма.ФормаВладельца <> Неопределено ТогдаЭтаФорма.ФормаВладельца.Прочитать();ИначеВызватьИсключение "Форма владельца не найдена";КонецЕсли;КонецПроцедурыЕсли форма владельца не передана явно, можно попытаться получить её через
ЭтаФорма.Родительили через параметры, с которыми открывалась форма.Если вызов происходит из внешней обработки, которая открыта как отдельное окно, то нужно, чтобы при открытии этой обработки в параметры передавалась ссылка на форму владельца, например:
1С (Код)12Параметры = Новый Структура("ФормаВладельца", ЭтаФорма);ОткрытьФорму("ВнешняяОбработка.ИмяФормы", Параметры);А в модуле внешней обработки тогда:
1С (Код)123456789101112&НаКлиентеПроцедура ПриОткрытии()КонецПроцедуры&НаКлиентеПроцедура КомандаПеречитать(Команда)Если Параметры.ФормаВладельца <> Неопределено ТогдаПараметры.ФормаВладельца.Прочитать();ИначеСообщитьОбОшибке("Форма владельца не передана");КонецЕсли;КонецПроцедурыЕсли же нужно вызвать метод формы владельца из внешней обработки, которая не имеет прямой ссылки на форму, то это невозможно без передачи ссылки на форму владельца при открытии.
Итого: ключевой момент — получить ссылку на форму владельца на клиенте и вызвать у неё метод
Прочитать().Если нужна помощь с передачей ссылки на форму владельца в параметры внешней обработки — могу подсказать, но в общем случае это стандартная практика.
—
Код вызова метода «Перечитать» у формы владельца из внешней обработки с типом команды:
1С (Код)123456789&НаКлиентеПроцедура КомандаПеречитать(Команда)Если ЭтаФорма.Параметры.Свойство("ФормаВладельца") ТогдаФормаВладельца = ЭтаФорма.Параметры.ФормаВладельца;ФормаВладельца.Прочитать();ИначеСообщение("Форма владельца не передана в параметры");КонецЕсли;КонецПроцедуры—
Если форма владельца — это форма справочника или документа, то метод
Прочитать()обновит данные формы из базы.—
Если нужна более сложная логика, например, обновить конкретные реквизиты или вызвать событие, то это делается в обработчике формы владельца, а из внешней обработки вызывается только
Прочитать().—
Надеюсь, это поможет!
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.