Имя: Пароль:
1C
1С v8
Вывести таблицу на форме.
0 bard666
 
06.03.15
09:47
Понимаю, что уже не раз мусолили тему, но никак не допру что делаю не так или что не доделываю.
Цель. Есль некие файлы dbf с различным количеством колонок и строк. Требуется его взять, прочитать и показать на форме в виде таблицы. Платформа 8.2, форма обычная. На форме создал поле табличного документа ТаблицаDBF. Сделал реквизит Таблица2 с типом ТаблицаЗначений.


Код такой:



БД = Новый XBase;
БД.ОткрытьФайл(ПутьКФайлу + "exp_01.dbf");

БД.Первая();
к = 1;
//Если уже было заполнение чистим колонки
Таблица2.Колонки.Очистить();
//Создаем колонки в ТЗ
Пока БД.поля.Найти("F" + к) <> Неопределено Цикл
    
    Таблица2.Колонки.Добавить("F" + к);
    к = к + 1;
        
КонецЦикла;
//Определяем число колонок
ЧислоКолонок = Таблица2.Колонки.Количество();
//Заполняем ТЗ
Пока Истина Цикл
        
    к = 1;
    НоваяСтрока = Таблица2.Добавить();
    Пока к <= ЧислоКолонок Цикл
        НоваяСтрока["F" + к] = БД["F" + к];
        к = к + 1;
    КонецЦикла;
        
    Если Не Бд.Следующая() Тогда
        Прервать;
    КонецЕсли;                  
        
КонецЦикла;

//Создаем элемент формы
Таб = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "ТабDBF", Истина, ЭлементыФормы.ТаблицаDBF);
Таб.Значение = Таблица2;
    
Таб.Верх = 264;
Таб.Лево = 8;
Таб.Ширина = ЭлементыФормы.ТаблицаDBF.Ширина;
Таб.Высота = ЭлементыФормы.ТаблицаDBF.Высота;
Таб.ТолькоПросмотр = Ложь;
    
Таб.СоздатьКолонки();
Таб.ОбновитьСтроки();






Таблица2 заполняется, в Значение переносится, колонки у элемента формы создаются, но данные на форме не отображаются. Что не так?
1 D_E_S_131
 
06.03.15
09:55
А нельзя на форму сразу добавить табличное поле?
2 bard666
 
06.03.15
10:32
Можно, конечно, но как туда программно прописать колонки и заполнить строки?
3 salvator
 
06.03.15
10:35
ЭлементыФормы.ТабличноеПоле.Значение = ТЗ;
ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
4 bard666
 
06.03.15
10:38
(3) ***ть как все просто)))
Огромное спасибо! Вопрос решен
5 D_E_S_131
 
06.03.15
10:39
(4) При чем ты по сути так и делал, только с созданием нового элемента все заморочил.
6 bard666
 
06.03.15
10:46
(5) а ларчик просто открывался))
AdBlock убивает бесплатный контент. 1Сергей