Имя: Пароль:
1C
1С v8
УФ.Как передать таб.значений на форму в реквизит с типом ДанныеФормыКоллекция?
0 боксер
 
23.06.15
11:26
Формирую отчет на СКД и вывожу его в таблицу значений "ТабРез"
У ТабРез могут быть разные колонки и ее надо отобразить на форме.
В объекте отчет создаю реквизит "ТЧ" и помещаю его на форму.
Чтобы ТЧ была видна создаю в нем реквизит табличной части "Данные"- без этого реквизита не отрисовывает на форме.

Такой код:
    ТабРез = новый ("ТаблицаЗначений");
    ПроцессорВывода.УстановитьОбъект(ТабРез);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    МассивДобавляемыхРеквизитов = Новый Массив;
    МассивУдаляемыхРеквизитов = Новый Массив;
    МассивКолонок = Новый Массив;
    ИдКоллекции="Отчет.тч";
    
    КоллФормы=РеквизитФормыВЗначение(ИдКоллекции);
    
    Для каждого ТекКол из КоллФормы.Колонки Цикл
        Если ТекКол.Имя<>"Данные" Тогда
            МассивУдаляемыхРеквизитов.Добавить(ИдКоллекции+"."+ТекКол.Имя);
        КонецЕсли;
    КонецЦикла;
    
    Для каждого ТекКол из ТабРез.Колонки Цикл
        МассивДобавляемыхРеквизитов.Добавить(
            Новый РеквизитФормы(ТекКол.Имя,ТекКол.ТипЗначения,ИдКоллекции));
        МассивКолонок.Добавить(ТекКол.Имя);
    КонецЦикла;
    
    // Добавим новые, удалим старые колонки
    ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);
    // Поместим значение в реквизит формы
    ЗначениеВРеквизитФормы(ТабРез,ИдКоллекции);    

после этого кода в отладчике смотрю отчет.тч- показывает нужную мне таблицу с данными (за исключением не нужной мне колонки "Данные")
но на форме отображается только одна не нужная мне колонка "Данные"
1 боксер
 
23.06.15
11:28
мозг уже взрывается от УФ, то что раньше можно было в две строки кода сделать тут целая проблема
2 leonidkorolev
 
23.06.15
11:34
Вроде как надо ещё программно и элементы формы создавать. Т.е. и реквизиты и элементы создаем программно полностью.
3 боксер
 
23.06.15
11:51
это просто пипец.
нашел как делается, спасибо автору
http://catalog.mista.ru/public/97796/
4 Гёдза
 
23.06.15
11:53
лучше делать
ТЗНаФорме.Загрузить(МояТЗ)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший