Нужно создать столько Колонок на форме в ТаблицеЗначений сколько есть Элементов Справочника
КодПроцедура Добавление()
МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ТаблицаЗначенийКолонок", Новый ОписаниеТипов("ТаблицаЗначений")));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("РобочаяРоль", Новый ОписаниеТипов("СправочникСсылка.РобочаяРоль"),"ТаблицаЗначенийКолонок" ,"Робочая роль"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники",Новый КвалификаторыЧисла(10,2)),"ТаблицаЗначенийКолонок" , "Сотрудник"));
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Линия", Новый ОписаниеТипов("СправочникСсылка.прЛинии",Новый КвалификаторыЧисла(10,2)),"ТаблицаЗначенийКолонок" , "Линия"));
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
МассивДобавляемыхРеквизитов.Очистить();
ТаблицаФормы = Элементы.Добавить("ТаблицаЗначенийКолонок", Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = "ТаблицаЗначенийКолонок";
ДобавитьКолонку("ТаблицаЗначенийКолонок", "РобочаяРоль", "РобочаяРоль");
ДобавитьКолонку("ТаблицаЗначенийКолонок", "Сотрудник", "Сотрудник");
Линия = Справочники.прЛинии.Выбрать();
Пока Линия.Следующий() Цикл
Список.Добавить(Линия.Ссылка);
КонецЦикла;
Для Каждого эл Из Список Цикл
эл.Представление = СтрЗаменить(эл," ","");
ДобавитьКолонку("ТаблицаЗначенийКолонок",эл.Представление,эл.Представление);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ДобавитьКолонку(ИмяТаблицы, ИмяКолонки, ЗаголовокКолонки)
НоваяКолонка = Элементы.Добавить(ИмяТаблицы + ИмяКолонки, Тип("ПолеФормы"), Элементы.ТаблицаЗначенийКолонок);
НоваяКолонка.Заголовок = ЗаголовокКолонки;
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.ПутьКДанным = ИмяТаблицы + "." + ИмяКолонки;
НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
КонецПроцедуры
...Показать
вот
НоваяКолонка.ПутьКДанным = ИмяТаблицы + "." + ИмяКолонки;
здесь когда доходит до Динамического добавления Колонок (из Справочника) получаю
Цитата
{Документ.РобочийТабель.Форма.ФормаДокумента.Форма(106)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)
НоваяКолонка.ПутьКДанным = ИмяТаблицы + "." + ИмяКолонки;
по причине:
Недопустимое значение
кстати, есть еще такой кусок
Линия = Справочники.прЛинии.Выбрать();
НовыеКолонки = Новый Массив;
Пока Линия.Следующий()Цикл
Список.Добавить(Линия.Ссылка);
КонецЦикла;
Для Каждого элеме Из Список Цикл
элеме.Представление = "К_"+СтрЗаменить(элеме," ","");;
НовыеКолонки.Добавить(Новый РеквизитФормы(элеме.Представление,
Новый ОписаниеТипов("СправочникСсылка.прЛинии"), , элеме.Значение));
КонецЦикла;
ИзменитьРеквизиты(НовыеКолонки);
ТаблицаФормы = Элементы.Добавить("ТаблицаРабочийТабель", Тип("ТаблицаФормы"));
ТаблицаФормы.ПутьКДанным = "ТаблицаЗначенийКолонок";
ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
Для Каждого Колонка Из НовыеКолонки Цикл
НовыйЭлемент = Элементы.Добавить(Колонка.Имя,Тип("ПолеФормы"),ЭтаФорма);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = Колонка.Имя;
НовыйЭлемент.ТолькоПросмотр = Ложь;
КонецЦикла;
и тут выводяться все колонки, но выводяться не в рядк, а в столбец и есл я
НовыйЭлемент = Элементы.Добавить(Колонка.Имя,Тип("ПолеФормы"),ЭтаФорма);
изменяю на
НовыйЭлемент = Элементы.Добавить(Колонка.Имя,Тип("ПолеФормы"),Элементы.ТаблицаЗначенийКолонок);
то уже и в столбец не выводит и показывает сообщение то, что в первом посте моем
Сообщение отредактировал Vofka - 11.01.16, 8:53