По теме открытия формы с параметрами, часто возникают вопросы, надеюсь данная статья поможет кому-либо.
Обычные формы
Для передачи параметра в обычную форму существует два способа.
Первый, менее распространенный, заключается в создании реквизита формы (этот реквизит, при необходимости, можно отобразить визуальным элементом).

Второй вариант используется значительно чаще. Его суть заключается в том, что в модуле открываемой формы нужно объявить экспортную переменную, а обработка этой переменной производится в событии «ПередОткрытием» открываемой формы:
1 | Перем Тест Экспорт; |
И для первого и для второго способа используется одинаковый код:
1 2 3 4 5 | Форма = Объект.ПолучитьФорму("Форма1"); Форма.Тест = "Тестовая строка"; //"Форма.Тест" - это экспортная переменная или реквизит Если НЕ Форма.Открыта() Тогда Форма.Открыть(); КонецЕсли; |
Управляемые формы
В управляемых формах появилась прекрасная возможность предавать параметры сразу при получении формы. Кроме этого, в управляемых формах появились стандартные параметры для различных объектов (справочники , документы и тд.), большим плюсом которых является отсутствие необходимости какой-либо обработки (задал параметр — получил результат). Список этих параметров, определяется типом объекта.
Например, параметр «ТекущееЗначение», позволяет позиционировать форму выбора справочника на определенном элементе.
1 2 3 | Параметры = Новый Структура("ТекущееЗначение", ТекЭлемент); ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора", Параметры); ВыбЭлемент = ФормаВыбора.ОткрытьМодально(); |
Для собственных параметров, потребуется обработка, которая выполняется в событии «ПриСозданииНаСервере» открываемой формы, в остальном механизм передачи параметра такой же.
Получение формы и передача параметра:
1 2 | Параметры = Новый Структура("тПараметр", ТекЭлемент); ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора", Параметры); |
Обработка передаваемого параметра в модуле открываемой формы:
1 2 3 4 5 6 | &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("тПараметр") Тогда //обработка параметра КонецЕсли; КонецПроцедуры |
На этом все.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
А кроме позиционирования — какие еще есть возможности связанные с передачей параметров при открытии формы?
Сайт хорош, а фон в виде сот — не хорошо.
Знак Врага.
Лучше -фракталы,