Имя: Пароль:
1C
 
Программное добавление ПолеНадписи (Управляемая форма)
0 padaril
 
07.06.11
17:55
Как программно добавлять (удалять) ПолеНадписи на форму?
пробовал что-то вроде:
Элемент = Элементы.Добавить("ААА", Тип("ПолеФормы"), Элементы.Группа4);
Элемент.Вид = ВидПоляФормы.ПолеНадписи;
Элемент.Заголовок = "Наименованиё";
1 NcSteel
 
07.06.11
17:56
А книгу прочитать ?
2 padaril
 
07.06.11
17:56
какую?
3 NcSteel
 
07.06.11
17:57
Разработка управляемого интерфейса
4 NcSteel
 
07.06.11
17:57
&НаСервере
Процедура ДобавитьПредставлениеТаблицыЗначенийВВидеПолейНаСервере(Знач перТаблицаОборудования)
   
   МаксимальныйИндексКолонокТаблицы = перТаблицаОборудования.Колонки.Количество() - 1;
   МаскимальныйИндексСтрокТаблицы = перТаблицаОборудования.Количество() - 1;
   
   Для НомерКолонки = 0 По МаксимальныйИндексКолонокТаблицы Цикл    
       
       Колонка = перТаблицаОборудования.Колонки[НомерКолонки];
       ГруппаВвода = Элементы.Добавить("ГруппаВвода" + НомерКолонки , Тип("ГруппаФормы"), Элементы.ГруппаТело);
       ГруппаВвода.Вид = ВидГруппыФормы.ОбычнаяГруппа;
       ГруппаВвода.Отображение = ОтображениеОбычнойГруппы.Нет;
       
       НовыйЭлемент = Элементы.Добавить(Колонка.Имя , Тип("ДекорацияФормы"), ГруппаВвода);
       НовыйЭлемент.Заголовок = Колонка.Заголовок;
       НовыйЭлемент.Вид = ВидДекорацииФормы.Надпись;
       
   КонецЦикла;
   
   Для НомерСтроки = 0 По МаскимальныйИндексСтрокТаблицы Цикл
       
       Для НомерКолонки  = 0 По МаксимальныйИндексКолонокТаблицы Цикл
           
           КолонкаТаблицы = перТаблицаОборудования.Колонки[НомерКолонки];
           СтрокаОборудования = перТаблицаОборудования[НомерСтроки];
           ТипЗначенияПоля = ТипЗнч(СтрокаОборудования[КолонкаТаблицы.Имя]);
           ИмяРеквизита = "" + КолонкаТаблицы.Имя + Формат(НомерСтроки, "ЧН=0; ЧГ=");
           ИмяЭлемента = "Поле" + КолонкаТаблицы.Имя + Формат(НомерСтроки, "ЧН=0; ЧГ=");
           ДоступностьЭлемента = (КолонкаТаблицы.Имя = "Значение" или КолонкаТаблицы.Имя = "ДатаПоказания");
           //Добавить реквизит.
           ТипыРеквизита = Новый Массив;
           ТипыРеквизита.Добавить(ТипЗнч(СтрокаОборудования[КолонкаТаблицы.Имя]));
           
           //МассивТипов = КолонкаТаблицы.ТипЗначения;
           ОписаниеТиповДляРеквизита = КолонкаТаблицы.ТипЗначения;//Новый ОписаниеТипов(ТипыРеквизита);
           //ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(МассивТипов);
           НовыйРеквизит = Новый РеквизитФормы(ИмяРеквизита,            //Имя
                                       ОписаниеТиповДляРеквизита,        //Тип
                                       ,                                //Путь
                                       КолонкаТаблицы.Имя,                //Заголовок
                                       Истина);                        //Сохраняемые данные
                                       
           ДобавляемыеРеквизиты = Новый Массив;
           ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
   
           ИзменитьРеквизиты(ДобавляемыеРеквизиты);
           
           //Добавить элемент формы и связать его с реквизитом.
           НовыйЭлемент = Элементы.Добавить(ИмяЭлемента , Тип("ПолеФормы"), Элементы["ГруппаВвода" + НомерКолонки]);
           НовыйЭлемент.Заголовок = "";
           НовыйЭлемент.ПутьКДанным = ИмяРеквизита;
           Если КолонкаТаблицы.Имя <> "Перекрут" Тогда
               НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
               //НовыйЭлемент.КнопкаОчистки = Истина;
           Иначе
               НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
           КонецЕсли;    
           НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
           
           НовыйЭлемент.Доступность = ДоступностьЭлемента;
           Если КолонкаТаблицы.Имя = "Значение" Тогда
               НовыйЭлемент.УстановитьДействие("ПриИзменении", "ОбработчикПриИзменении");    
           ИначеЕсли КолонкаТаблицы.Имя = "ДатаПоказания" Тогда
               НовыйЭлемент.УстановитьДействие("ПриИзменении", "ТекущаяДатаПриИзменении");    
           КонецЕсли;    
           
           //Заполним реквизит данными из ТЗ
           ЭтаФорма[ИмяРеквизита] = СтрокаОборудования[НомерКолонки];
           
       КонецЦикла;

   КонецЦикла;
   
КонецПроцедуры
5 padaril
 
07.06.11
18:03
и все же. почему не отображается то, что я написал?
6 padaril
 
07.06.11
18:03
выполняю в серверной части..
7 padaril
 
07.06.11
18:21
помогите!
ПутьКДанным обязательно указывать?
8 padaril
 
07.06.11
19:40
кто-нибудь сталкивался?
9 Smallrat
 
07.06.11
19:54
(7) Вроде обязательно.
если надо - могу кинуть что-то похожее работающее, только с добавлением поля табличного документа
10 NSerg
 
09.06.11
12:00
посмотри на форму в режиме предприятия(тонкий клиент) через "все действия" - "изменить форму" там будет понятно куда твои элементы вваливаются. думаю будет понятно, ну а по коду вроде всё в порядке, должно создавать
11 NSerg
 
09.06.11
12:03
Кстати, нафига так усложнять, создай просто ТЧ на форме и отобрази в них свои таблицы