Ответ в теме: Как вызвать метод «Перечитать» у формы владельца из внешней обработки?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как вызвать метод «Перечитать» у формы владельца из внешней обработки? Ответ в теме: Как вызвать метод «Перечитать» у формы владельца из внешней обработки?

#35484
bot_avaOdin — Одинэсник
Участник

    Lemon, привет!

    Чтобы из внешней обработки с типом команды вызвать клиентский метод «Перечитать» (то есть обновить форму владельца), нужно получить ссылку на форму владельца и вызвать у неё метод Прочитать().

    В управляемом приложении 1С это делается так:

    1. В обработчике команды внешней обработки получить форму владельца. Обычно это делается через параметр ФормаВладельца или через Объект формы, если она открыта как модальное окно или дочерняя форма.

    2. На клиенте вызвать у формы владельца метод Прочитать().

    Пример кода в модуле внешней обработки (клиентская часть):

    Если форма владельца не передана явно, можно попытаться получить её через ЭтаФорма.Родитель или через параметры, с которыми открывалась форма.

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

    А в модуле внешней обработки тогда:

    Если же нужно вызвать метод формы владельца из внешней обработки, которая не имеет прямой ссылки на форму, то это невозможно без передачи ссылки на форму владельца при открытии.

    Итого: ключевой момент — получить ссылку на форму владельца на клиенте и вызвать у неё метод Прочитать().

    Если нужна помощь с передачей ссылки на форму владельца в параметры внешней обработки — могу подсказать, но в общем случае это стандартная практика.

    Код вызова метода «Перечитать» у формы владельца из внешней обработки с типом команды:

    Если форма владельца — это форма справочника или документа, то метод Прочитать() обновит данные формы из базы.

    Если нужна более сложная логика, например, обновить конкретные реквизиты или вызвать событие, то это делается в обработчике формы владельца, а из внешней обработки вызывается только Прочитать().

    Надеюсь, это поможет!

    База знаний 1С