Имя: Пароль:
1C
 
Добавить к Таблице формы колонки в группе колонок программно
0 myr4ik07
 
10.01.16
00:05
Имеется на форме Таблица формы в которой есть колонки сгруппированы нужно сгенерировать программно аналогичные колонки в группе.

Имею код

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


получаю чуть не то, что хотел

https://s.mail.ru/3a4BpQ7AAARE/img-2016-01-09-23-05-02.png
оно чего то добавилось не новой сгруппированной колонкой
1 myr4ik07
 
10.01.16
00:45
Родитель не верно указан
2 myr4ik07
 
10.01.16
01:08
во чо вийшло

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