Имя: Пароль:
1C
1С v8
Таблица значений в отчете УФ
0 zenon46
 
02.08.22
16:35
Доброго дня!
Имеется внешний отчет, у него есть реквизит "Таблица" - ТаблицаЗначений, выкинул таблицу на форме, ест-но она без колонок, в модуле форме НаСервере есть обработчик считывания внешнего Xbase файла, обработчик возвращает "ТаблицуЗначений" - так вот как эту "ТаблицуЗначений" загрузить в "Таблицу" на форме что бы она стала видна пользователю ?
1 vicof
 
02.08.22
16:37
ЗначениеВРеквизитФормы?
2 6awkup_true
 
02.08.22
16:40
(1) не прокатит - колонок то у него нет. нужно программно создать колонки тч, элементы формы, загрузить значения
3 zenon46
 
02.08.22
16:41
(1) пробовал - ошибка
4 6awkup_true
 
02.08.22
16:45
как пример. создает таблицу по дням с значением булево

//Изменяет состав колонок табличной части    
МассивРеквизитов = Новый Массив;
Для Счетчик= 1 По 10 Цикл
НоваяКолонка = Новый РеквизитФормы("Д" + Счетчик, Новый ОписаниеТипов("Булево"), "ТабличнаяЧастьФормы");
НоваяКолонка.Заголовок = Счетчик;
МассивРеквизитов.Добавить(НоваяКолонка);    
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);
ТЗ_рез = РеквизитФормыВЗначение("ТабличнаяЧастьФормы");


//Заполняешь тут таблицу по своим данным
      
    
//Создает колонки на форме.  
       ЭлементТЗ = Элементы.ТабличнаяЧастьПоДням;
    Для Каждого Колонка ИЗ ТЗ_рез.Колонки Цикл
        НовыйЭлементФормы = Элементы.Добавить(""+Колонка.Имя, Тип("ПолеФормы"), ЭлементТЗ);
            НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
            НовыйЭлементФормы.ПутьКДанным = "ТабличнаяЧастьФормы." + Колонка.Имя;
    КонецЦикла;
5 6awkup_true
 
02.08.22
16:46
МассивРеквизитов = Новый Массив;
Для Счетчик= 1 По 10 Цикл
НоваяКолонка = Новый РеквизитФормы("Д" + Счетчик, Новый ОписаниеТипов("Булево"), "ТабличнаяЧастьФормы");
НоваяКолонка.Заголовок = Счетчик;
МассивРеквизитов.Добавить(НоваяКолонка);    
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);
ТЗ_рез = РеквизитФормыВЗначение("ТабличнаяЧастьФормы");


//Заполняешь тут таблицу по своим данным

      
    
//Создает колонки на форме.  

       ЭлементТЗ = Элементы.ТабличнаяЧастьФормы;
    Для Каждого Колонка ИЗ ТЗ_рез.Колонки Цикл
        НовыйЭлементФормы = Элементы.Добавить(""+Колонка.Имя, Тип("ПолеФормы"), ЭлементТЗ);
            НовыйЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
            НовыйЭлементФормы.ПутьКДанным = "ТабличнаяЧастьФормы." + Колонка.Имя;
    КонецЦикла;
6 6awkup_true
 
02.08.22
16:49
перед созданием колонок еще нужно запихать данные в таблицу
ЗначениеВРеквизитФормы(ТЗ_рез, "ТабличнаяЧастьФормы");  

потом создаешь колонки
7 zenon46
 
02.08.22
17:11
Сделал в итоге вот так :

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

     ЗначениеВРеквизитФормы(таблицаЗначений,"Таблица");
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан