Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Передача параметров в управляемые и обычные формы          
Vofka Подменю пользователя
сообщение 06.07.11, 18:19
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

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

Как передаются параметры в обычных формах

В обычных формах для передачи параметра было 2 возможности:
1) менее распространенный способ: в форме объекта на вкладке «Реквизиты» добавлялся реквизит, при необходимости определялся доступ визуальными средствами
2) более распространенный способ: в модуле формы объявлялась экспортная переменная и в обработчике «ПередОткрытием» значение обрабатывалось

в обоих случаях вызов формы выглядел примерно так:

Форма = Объект.ПолучитьФорму("ФормаВыбора",ВладелецФормы, КлючУникальности);
Форма.Параметр = ЗначениеПараметра;
Форма.Открыть();


Как передаются параметры в управляемых формах

В управляемых формах теперь есть возможность сразу передавать параметры при получении формы. Параметры передаются в виде структуры:

Параметры = Новый Структура("ТекущееЗначение",ПоследнийЭлемент);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",Параметры);
НайденыйЭлемент = ФормаВыбора.ОткрытьМодально();


Также у управляемой формы появились «расширения формы» (объект, справочник, документ, отчет). В зависимости от типа объекта определяется состав доступных параметров. Например, если в форме выбора справочника нужно позиционироваться на определенном элементе, то используется параметр «ТекущееЗначение». Большим плюсом является, что в самой форме не требуется писать обработчиков для предопределенных параметров, сокращает количество кода.

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

Для передачи специфического параметра манипуляций требуется сделать немного больше:

1) Определить в управляемой форме параметр.
В обработчике
ПриСозданииНаСервере
определить обработку данного параметра (обращение к переданным параметрам через свойство «Параметры», имеющее тип ДанныеФормыСтруктура)
2)Описать получение формы и передать значение нового параметра в параметрах функции
ПолучитьФорму
.
Таким образом код будет иметь вид:
- В месте получения формы

Параметры = Новый Структура("НовыйПараметр",ПоследнийЭлемент);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",Параметры);


- В модуле управляемой формы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("НовыйПараметр") Тогда
        // здесь код обработки параметра
    КонецЕсли;
КонецПроцедуры


Заключение

Возможно данная статья кому-то пригодится, с экономит время и убережет от лишнего кода. Для более детальной информации о полном списке параметров управляемой формы рекомендуется посмотреть справку «Интерфейс управляемый \ Управляемая форма».

[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: andrew76, dqwerty,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 7:32
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!