Имя: Пароль:
1C
1С v8
Обычная форма, как прочитать параметр переданный при открытии?
0 pvase
 
12.04.21
09:22
Пишу так в форме при начале выбора элемента:
    СтандартнаяОбработка = Ложь;
    ЗначениеОтбора = Новый Структура("ГруппаОС", ГруппаОС);
    ОткрытьФорму("Справочник.ПодгруппыОС.ФормаВыбора",ЗначениеОтбора,Элемент);
Как теперь в форме, которую открыл прочитать этот параметр?

p.s. Извините за может очень простой вопрос, с обычными формами практически не работал, а тут вдруг надо доделать.
1 Garykom
 
гуру
12.04.21
09:28
(0) ты 7-чник?
2 Garykom
 
гуру
12.04.21
09:29
(1)+ Как бы в 8-ке УФ принято было форму создавать в переменную и хреначь параметря а потом открывай
3 программистище
 
12.04.21
09:58
(0) в присоздании
Параметры.Свойство("ГруппаОС", ГруппаОС)
4 pvase
 
12.04.21
10:12
(2) С УФ - все понятно, а вот с обычными формами получилась проблемка.
(1) Я сразу стал разрабатывать в УФ после 7-ки, минуя ввесь этот ужас в обычными формами.
(3) Спасибо, но в обычной форме нет процедуры ПриСоздании, также ругается:
{Справочник.ПодгруппыОС.Форма.ФормаВыбора.Форма(4,2)}: Переменная не определена (Параметры)
5 pvase
 
12.04.21
10:14
Написал так:
Процедура ПриОткрытии()
    Перем ГруппаОСОтбор;
    Если Параметры.Свойство("ГруппаОС") тогда
        Параметры.Свойство("ГруппаОС", ГруппаОСОтбор);
        СправочникСписок.Отбор.ГруппаОС.УстановитьЗначение(ГруппаОСОтбор);
    КонецЕсли;
КонецПроцедуры

В интернете нарыл, что надо реквизит создавать или глобальную переменную. Неужели в обычным форма все так сложно?
6 youalex
 
12.04.21
10:47
В ОФ ты можешь получить форму, установить отбор в списке напрямую, и уже потом ее открыть
Как-то так:
ФормаВыбора = Справочник.ПодгруппыОС.ПолучитьФорму(Элемент);
ФормаВыбора.СправочникСписок.Отбор.ГруппаОС.Установить(ЗначениеОтбора);
ФормаВыбора.ОткрытьМодально()
7 youalex
 
12.04.21
10:48
(6) * Справочник.ПодгруппыОС.ПолучитьФормуВыбора(Элемент)
8 pvase
 
12.04.21
10:53
Спасибо. Решил так:
Процедура ПодгруппаОСНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Форма = ПолучитьФорму("Справочник.ПодгруппыОС.ФормаВыбора",,Элемент);
    Форма.ГруппаОСОтбор = ГруппаОС;
    Форма.НачальноеЗначениеВыбора = ПодгруппаОС;
    Форма.Открыть();
КонецПроцедуры

А Форме создал реквизит и использую его:

Процедура ПриОткрытии()
    Если ЗначениеЗаполнено(ГруппаОСОтбор) Тогда
        СправочникСписок.Отбор.ГруппаОС.Использование = Истина;
        СправочникСписок.Отбор.ГруппаОС.Значение = ГруппаОСОтбор;
    КонецЕсли;
КонецПроцедуры