Семионенко Дмитрий

195
Рейтинг

tur0k
Дмитрий Семионенко



  •   Регистрация: 02.09.2009 (14 лет назад)

  •   Был(а) на сайте: 12.04.2023

Подписчики 2

Группы

Профессиональный разработчик

Рейтинг 195

Передача параметров в управляемые и обычные формы

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free) Архив с данными Механизмы платформы 1С

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

01.07.2011    284568    1403    tur0k    46       

195

Комментарии

DevПередача параметров в управляемые и обычные формы#47 20.02.20 13:23
Это скорее правила "хорошего тона".
Чтобы следующий разработчик не смотрел код, а сразу мог увидеть список параметров формы и какого они типа
AdminКомпонента печати штрихкодов (тип не определен (addin.картинкаштрихкода.barcode))#2 29.08.19 3:23
Спасибо, все четко и по делу!
все запустилось и штрихкоды формируются
DevПередача параметров в управляемые и обычные формы#45 01.08.18 8:08
(42)
Смотрите обработку заполнения модуля объекта
DevПередача параметров в управляемые и обычные формы#44 01.08.18 8:05
Если вы используете переменную формы, то она должна быть Экспортная.
Если используете реквизит формы, то убедитесь что тип реквизита совпадает с типом данных который Вы передаете.
Ну а как работать с переменными я думаю вы знаете.
DevПередача параметров в управляемые и обычные формы#41 14.03.17 17:34
(38)ПриПовторном открытии никак, а в принципе данные в уже открытую форму можно передать через оповещение
DevПередача параметров в управляемые и обычные формы#40 14.03.17 17:33
(39)Посмотрите в синтаксис помощнике Интерфейс (управляемый)\Управляемая форма\Расширение документа\Параметры формы там есть описание параметра ключ + процедуру ОткрытьФорму()
DevПередача параметров в управляемые и обычные формы#29 15.11.13 9:22
(27) sumixam,
т.к. в управляемых формах передача контекста с клиента на сервер и обратно, то общий алгоритм будет примерно такой:
в основной форме обработки
Код
&НаКлиенте
Процедура ВыбратьВоВнешнейФорме(Команда)
   ПараметрыФормы = Новый Структура;
   ПараметрыФормы.Вставить("АдресХранилища",АдресХранилища);
       
   Результат = ОткрытьФормуМодально(Объект.ПутьКФормам+".ФормаВыбора",ПараметрыФормы,ЭтаФорма);
   Если Результат<>Неопределено Тогда
      ОбработатьНаСервере();
   КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ОбработатьНаСервере()

   СтруктураЗначений = ПолучитьИзВременногоХранилища(АдресХранилища);
   //Проверки на корректность формата переданных параметров
   Если ТипЗнч(СтруктураЗначений)<>Тип("Структура") Тогда
      Отказ = Истина;
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = ЭтаФорма.ИмяФормы+"[ЗагрузитьЗначенияЗамены] ожидается структура значений";
      Сообщение.Сообщить();
      Возврат;
   КонецЕсли;
   Значение = Неопределено;
   Если Не СтруктураЗначений.Свойство("ЗначенияВыбора",Значение) Тогда
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = ЭтаФорма.ИмяФормы+"[ЗагрузитьОбработатьНаСервере] в структуре значений ожидается значение с ключем ""ЗначенияВыбора""";
      Сообщение.Сообщить();
        Иначе
                //Обработка полученного значения
   КонецЕсли;
КонецПроцедуры // ОбработатьНаСервере()

В форме выбора код будет выглядеть примерно так:
Код
&НаКлиенте
Процедура ПеренестиРезультат(Команда)
        ТекущиеДанные = ЭлементыФормы.СписокВыбора.ТекущиеДанные;
        
        // возможно передать произвольные серриализуемые данные, но обернуть в вызов НаСервере
   СтруктураЗначений = Новый Структура;
   СтруктураЗначений.Вставить("ЗначенияВыбора",ТекущиеДанные.Ссылка);      
        ПоместитьВоВременноеХранилище(СтруктураЗначений,Параметры.АдресХранилища);
        
        Закрыть("ОК"); //в простейшем случае можно передать значение здесь
КонецПроцедуры

P.S.Опять же никто не запрещает пользоваться тем что форма выбора возвращает значение :)

Прикрепленные файлы:

Tur0k_Avatar.jpg
DevПередача параметров в управляемые и обычные формы#28 15.11.13 9:20
(27) sumixam,
т.к. в управляемых формах передача контекста с клиента на сервер и обратно, то общий алгоритм будет примерно такой:
в основной форме обработки
Код
&НаКлиенте
Процедура ВыбратьВоВнешнейФорме(Команда)
   ПараметрыФормы = Новый Структура;
   ПараметрыФормы.Вставить("АдресХранилища",АдресХранилища);
       
   Результат = ОткрытьФормуМодально(Объект.ПутьКФормам+".ФормаВыбора",ПараметрыФормы,ЭтаФорма);
   Если Результат<>Неопределено Тогда
      ОбработатьНаСервере();
   КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ОбработатьНаСервере()

   СтруктураЗначений = ПолучитьИзВременногоХранилища(АдресХранилища);
   //Проверки на корректность формата переданных параметров
   Если ТипЗнч(СтруктураЗначений)<>Тип("Структура") Тогда
      Отказ = Истина;
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = ЭтаФорма.ИмяФормы+"[ЗагрузитьЗначенияЗамены] ожидается структура значений";
      Сообщение.Сообщить();
      Возврат;
   КонецЕсли;
   Значение = Неопределено;
   Если Не СтруктураЗначений.Свойство("ЗначенияВыбора",Значение) Тогда
      Сообщение = Новый СообщениеПользователю;
      Сообщение.Текст = ЭтаФорма.ИмяФормы+"[ЗагрузитьОбработатьНаСервере] в структуре значений ожидается значение с ключем ""ЗначенияВыбора""";
      Сообщение.Сообщить();
        Иначе
                //Обработка полученного значения
   КонецЕсли;
КонецПроцедуры // ОбработатьНаСервере()


В форме выбора код будет выглядеть примерно так:
Код
&НаКлиенте
Процедура ПеренестиРезультат(Команда)
        ТекущиеДанные = ЭлементыФормы.СписокВыбора.ТекущиеДанные;
        
        // возможно передать произвольные серриализуемые данные, но обернуть в вызов НаСервере
   СтруктураЗначений = Новый Структура;
   СтруктураЗначений.Вставить("ЗначенияВыбора",ТекущиеДанные.Ссылка);      
        ПоместитьВоВременноеХранилище(СтруктураЗначений,Параметры.АдресХранилища);
        
        Закрыть("ОК"); //в простейшем случае можно передать значение здесь
КонецПроцедуры

P.S.Опять же никто не запрещает пользоваться тем что форма выбора возвращает значение :)
DevПередача параметров в управляемые и обычные формы#0 01.07.11 6:17
Данная статья описывает, как штатными средствами передать в качестве параметра значение при открытии управляемой формы 8.2 в сравнении с тем, как аналогичную операцию получалось реализовать в обычных формах.