![]() |
![]() |
![]() |
|
Программно создать группы конолок и колонки на форме | ☑ | ||
---|---|---|---|---|
0
sprinter83
18.09.12
✎
17:10
|
Доброго времени суток.
Ни как ни могу понять в чём дело, помогите пожалуйста разобраться. Суть дела: есть форма справочника, в ней есть таблица "ТаблицаРедактирования" нужно в эту таблицу программно добавить Колонки и разместить их в определённые группы колонок, которые также создаются программно. Пишу следующий код // создаём новые группы колонок Сч = 1; СоответствиеИменГруппировок = Новый Соответствие; Для Каждого ТекЭлемент ИЗ ТаблицаГруппировок Цикл Если Не ТекЭлемент.Группировка = "" Тогда НовыйЭлемент = Элементы.Добавить("ГруппировкаКол" + Формат(Сч, "ЧЦ=3; ЧВН=; ЧГ="), Тип("ГруппаФормы"),Элементы.ТаблицаРедактирования); НовыйЭлемент.Заголовок = ТекЭлемент.Группировка; НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКнопок; СоответствиеИменГруппировок.Вставить(ТекЭлемент.Группировка, НовыйЭлемент); Сч = Сч + 1; КонецЕсли; КонецЦикла; // здесь всё отрабатывается правильно, в ТаблицаРедактирования добавляются новые ГруппыКолонок // Добавляем реквизиты Формы МассивРеквизитов = Новый Массив; ТипыРеквизита = Новый Массив; ТипыРеквизита.Добавить(Тип("Число")); ОписаниеТиповДляРеквизита = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(20, 4)); Сч = 1; Для Каждого ТекНастройка из ТЗНастройкиКолонок Цикл НовыйРеквизит = Новый РеквизитФормы("Значение" + Формат(Сч, "ЧЦ=3; ЧВН=; ЧГ="), ОписаниеТиповДляРеквизита, "ТаблицаРедактирования", "Значение" + Формат(Сч, "ЧЦ=3; ЧВН=; ЧГ="), Истина); Сч = Сч + 1; МассивРеквизитов.Добавить(НовыйРеквизит); КонецЦикла; ИзменитьРеквизиты(МассивРеквизитов); //Данный участок кода также отрабатывается без ошибок // Добавляем колонки на форму Для Сч = 1 по ВсегоРасчетов Цикл Если НЕ ТЗНастройкиКолонок[Сч - 1].Группировка = "" Тогда РодительЭлемента = СоответствиеИменГруппировок[ТЗНастройкиКолонок[Сч - 1].Группировка]; Иначе РодительЭлемента = Элементы.ТаблицаРедактирования; КонецЕсли; НовыйЭлемент = Элементы.Добавить("ТаблицаРедактированияЗначение" + Формат(Сч, "ЧЦ=3; ЧВН=; ЧГ="), Тип("ПолеФормы"), РодительЭлемента); // на этой строчке система начинает ругаться (Не допустимое значение параметров) НовыйЭлемент.ПутьКДанным = "ТаблицаРедактирования.Значение" + Формат(Сч, "ЧЦ=3; ЧВН=; ЧГ="); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.Заголовок = "" + ТЗНастройкиКолонок[Сч - 1].НаименованиеКолонки; КонецЦикла; ////////////////////////////////////////// При создании новых группировок колонок и реквизитов формы проблем не возникает. Ошибка выдаётся при попытке добавления в форму колонок в строчке НовыйЭлемент = Элементы.Добавить("ТаблицаРедактированияЗначение" + Формат(Сч, "ЧЦ=3; ЧВН=; ЧГ="), Тип("ПолеФормы"), РодительЭлемента); // на этой строчке система начинает ругаться (Не допустимое значение параметров) При чём если в качестве РодительЭлемента указан путь Элементы.ТаблицаРедактирования, то всё отлично добавляется, но при этом естественно колонки добавляются непосредственно в таблицу, а нужно чтобы добавлялись в нужную группировку колонки. Не совсем ясно в чём ошибка: в описании метода Добавить видим что третий параметр может быть <Родитель> (необязательный) Тип: ГруппаФормы; ТаблицаФормы; УправляемаяФорма. Родитель для добавляемого элемента. Если не указан, то добавляется на верхний уровень. При этом РодительЭлемента является именно ГруппойФормы, т.е. по типу абсолютно подходит. А в чём ошибке не ясно. |
|||
1
sprinter83
18.09.12
✎
17:56
|
Проблема устранена, всё негодные очепятки виноваты ))
При создании новой группы я указывал вид группы формы ГруппаКнопок, а нужно ГруппаКолонок :) Естественно система не могла поместить Поле формы в Группу кнопок. Т.е. в место НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКнопок; Нужно НовыйЭлемент.Вид = ВидГруппыФормы.ГруппаКолонок; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |