1С передать переменную в другую форму

Как из одной формы открыть другую, передав параметры, и получить обратно результат?

1. ОткрытьМодально, параметр закрытия, метод Закрыть

2. Реквизиты формы (или свойства расширения формы)

Реквизиты формы видимы снаружи как свойства объекта Форма. Их можно создать столько сколько нужно и присвоить им нужный тип.

3. Через ЭлементыФормы (не очень красиво)

5. Экспортные переменные модулей форм

Они становятся видимы снаружи, примерно как реквизиты форм:

6. Экспортные переменные модуля объекта, если он является основным реквизитом формы

Например, есть форма элемента справочника, т.е. ее основной реквизит имеет тип "СправочникОбъект.Номенклатура". Тогда экспортная переменная в модуле объекта расширяет контекст модуля формы и становится видна снаружи.

7. Глобальные переменные (экспортные переменные модуля приложения)

9. СохранитьЗначение, ВосстановитьЗначение

10. Параметры сеанса

Обратите внимание! Попытка прочитать неинициализированный параметр сеанса приводит к ошибке! Поэтому нужно инициализировать все параметры сеанса раньше, например, еще в процедуре ПриНачалеРаботыСистемы.

11. Объекты базы данных (справочники, константы, регистры сведений и т.д.)

Программирование системы 02.08.2016 14:31 9434

При закрытии формы может потребоваться вернуть из нее некоторые значения. Например, при нажатии на кнопку основной формы, открывается другая произвольная форма. После выполнения необходимых действий дополнительная форма закрывается, а в основную передается значение.

Открытие формы

Необходимо модально открыть произвольную форму с помощью функции ОткрытьФормуМодально().

Закрытие формы с возвратом значения

У открытой формы необходимо вызвать встроенный метод Закрыть(), который на вход принимает возвращаемое значение. Тип возвращаемого значения произвольный. В данном примере возвращается структура.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Задача

У нас есть обработка с вот такой основной формой:

Из этой формы нам нужно открыть некоторую дополнительную форму, при этом текст из поля формы должен передаваться в открываемую форму. Дополнительная форма имеет следующий вид:

Таким образом, при на нажатии на кнопку "Выполнить открывается дополнительная форма с уже введенным текстом в поле:

Рассмотрим способ решения подобной задачи.

Решение

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

1. Использование глобальной экспортной переменной модуля формы.

В основную форму для процедуры-обработчика кнопки "Выполнить" добавим следующий программный код:

Переменная текст добавлена в модуль открываемой формы вместе с обработчиком события "ПередОткрытием":

Задача решена, причем достаточно просто!

2. Использование реквизита формы.

Для второго способа нам даже не нужно переписывать обработчики кнопки "Выполнить" и "ПередОткрытием". Все, что необходимо — это добавить в открываемую форму реквизит "Текст" с типом строка.

Выводы

В управляемых формах передавать параметры намного проще. В обычных формах в большинстве случаев используется описанный подход.

Обработку с примером из статьи Вы можете скачать по ссылке .


[an error occurred while processing the directive]
Карта сайта