Существует несколько вариантов передачи данных между формами в режиме обычного приложения 1С предприятия
Быстрый переход
Список способов
- Непосредственная запись в реквизиты формы
- Оповещение формы
- Оповещение владельца формы (о выборе, о записи)
- Оповещение подчиненным формам (об активизации строки, объекта)
- Оповещение об изменении
- Через объекты посредники (справочники, регистры сведений, файлы)
Механизм работы в первом случае:
- получается объект типа «Форма», например через метод Справочники.Контрагенты.ПолучитьФорму () или ЭтаФорма.Владелец (если форма является подчиненной и владелец задан)
- запись в известные заранее реквизиты формы
Форма не дает средств для перебора доступных реквизитов. Поэтому в момент записи в отсутствующий реквизит возможна ошибка, например, в случае, если формой владельцем оказалась форма отличная от ожидаемой. Тип передаваемого значения определяется доступным типом реквизита, т.е. если тип реквизита «ссылка на справочник», то передать строку не получится, либо необходимо использовать другой реквизит. Если проблем с типами нет (в частности через тип строки без ограничения длины, возможно передать любые типы данных воспользовавшись ЗначениеВСтрокуВнутр()) то между формами Владелец-Подчиненная форма возможен двухсторонний обмен.
Метод Оповестить() второго способа
Является самым универсальным для обмена, поскольку предоставляет возможности:
- Передавать сообщение всем созданным и открытым формам («широковещательное» оповещение) с подключенным событием ОбработкаОповещения
- Передавать данные условно произвольного типа
- Позволяет идентифицировать получателя и источника, но не ограничивает по ним
- Работает и в формах управляемого приложения
Обмен через объекты-посредники:
- Требует наличия объекта, доступа к нему
- Не вызывает события изменения как и в первом случае
- Требует периодического считывания данных для проверки
- Позволяет передавать известные заранее типы значений
Используется, например, при организации чатов, оповещениях пользователей об обновлениях
Остальные методы:
ОповеститьОбАктивизации, ОповеститьОбАктивизацииОбъекта, ОповеститьОбИзменении, ОповеститьОВыборе, ОповеститьОЗаписиНового, ОповеститьОЗаписиНовогоОбъекта являются узкоспециализированными и односторонними (владельцу формы, подчиненным формам)
Не экономьте на рекламе, охране и страховании.