Имя: Пароль:
1C
 
Программное добавление реквизитов формы
0 galimovmaks
 
29.09.14
08:31
Есть иерархический справочник. От его состава надо добавить реквизиты на форму. Выполняю алгоритм

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ВыборкаГруппа = Справочники.илСервисныеРаботы.ВыбратьИерархически();
        
        ДобавляемыеРеквизиты = Новый Массив;
        
        Пока ВыборкаГруппа.Следующий() Цикл
            
            Если ВыборкаГруппа.Актуально = Ложь Тогда
                Продолжить;
            КонецЕсли;
            
            Если ЗначениеЗаполнено(ВыборкаГруппа.Родитель) Тогда
                Продолжить;
            КонецЕсли;
            
            Группа = Новый РеквизитФормы(ВыборкаГруппа.УникальноеИмяРеквизита, Новый ОписаниеТипов("Строка"), , ,Истина);
            
            ДобавляемыеРеквизиты.Добавить(Группа);
            
            Выборка = Справочники.илСервисныеРаботы.Выбрать(ВыборкаГруппа.Ссылка);
            
            Пока Выборка.Следующий() Цикл
                
                Если Выборка.Актуально = Ложь Тогда
                    Продолжить;
                КонецЕсли;
                МассивТипов = Новый Массив;
                МассивТипов.Добавить(ТипЗнч(Выборка.Тип));
                Реквизит = Новый РеквизитФормы(Выборка.УникальноеИмяРеквизита, Новый ОписаниеТипов(МассивТипов), , ,Истина);
            
                ДобавляемыеРеквизиты.Добавить(Реквизит);
                
            КонецЦикла;
        КонецЦикла;
        
        ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
        
            
КонецПроцедуры


В отладчике в форме видны реквизиты, а на форме не отображаются. Подскажите, где ошибка?
1 ОбычныйЧеловек
 
29.09.14
08:50
(0) А если ошибки нету? :)
Реквизиты то ты добавил, а вот "Элементы" на форму нет...
2 skunk
 
29.09.14
08:59
ЭлементыФормы.Добавить(Тип("....
3 galimovmaks
 
29.09.14
09:07
(2) вот добавляю

ЭтаФорма.Элементы.Добавить(Имя, Тип(ТипРеквизита), Элементы.СервисныеРаботы);

Имя- имя элемента
Элементы.СервисныеРаботы - тип ГруппаФормы (куда надо добавить элементы)

выдает ошибку НедопустимоеЗначениеПараметров
4 skunk
 
29.09.14
09:16
первым реквизитом не имя а тип элемента
5 skunk
 
29.09.14
09:17
ЭлементыФормы (Controls)
Добавить (Add)
Синтаксис:

Добавить(<Тип>, <Имя>, <Видимость>, <ПоместитьНа>)
6 galimovmaks
 
29.09.14
09:17
(4)
Синтаксис:

Добавить(<Имя>, <ТипЭлемента>, <Родитель>)
Параметры:

<Имя> (обязательный)

Тип: Строка.
Уникальное имя добавляемого элемента.
<ТипЭлемента> (обязательный)

Тип: Тип.
Тип добавляемого элемента.
<Родитель> (необязательный)

Тип: ГруппаФормы; ТаблицаФормы; УправляемаяФорма.
Родитель для добавляемого элемента.
Если не указан, то добавляется на верхний уровень.
Возвращаемое значение:

Тип: ДекорацияФормы; ГруппаФормы; КнопкаФормы; ТаблицаФормы; ПолеФормы.

Описание:

Добавляет элемент в коллекцию.

Доступность:

Сервер, мобильное приложение(сервер).
7 skunk
 
29.09.14
09:25
пнОсновная = ЭлементыФормы.пнОснонвая;
ЭлементыФормы.Добавить(Тип("Надпись"), "лбМетка" + стрНомерВкладки, Истина, пнОсновная);
8 hhhh
 
29.09.14
09:29
(7) ЭлементыФормы - это для обычных форм
(6) наверно, тип не тот указываете.
9 galimovmaks
 
29.09.14
09:37
(8) да. тип не тот. Исправил
Элемент = ЭтаФорма.Элементы.Добавить(Имя, Тип("ПолеФормы"), ЭтаФорма.Элементы["СервисныеРаботы"]);
    
    Элемент.Видимость = Истина;

Форма открывается, а элемент все равно не виден..
10 galimovmaks
 
29.09.14
09:47
Указал путь к данным. заработало