Вывод произвольной таблицы значений в табличный документ

5 Comments

  1. necropunk

    А как именно выводится? Я обычно просто использую

    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
    Построитель.Выполнить();
    Построитель.Вывести();
    
    Reply
  2. kuzyara

    (2) А как избавиться от отступов?

    Чтобы сразу с первой ячейки значения шли?

    Reply
  3. ZhiharevDmitriy

    (3) Можно так:

    // Получить табличный документ на основании таблицы значений
    //
    // Параметры:
    //  Таблица — ТаблицаЗначений
    //
    // Возвращаемое значение:
    //  ТабличныйДокумент
    //
    Функция ПолучитьТабличныйДокумент(Таблица)
    ТабДокумент = Новый ТабличныйДокумент;
    
    // Выводим заголовок таблицы
    КолонкаИндекс = 0;
    Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
    Колонка = Таблица.Колонки[КолонкаИндекс];
    ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;
    КолонкаИндекс = КолонкаИндекс + 1;
    КонецЦикла;
    
    // Выводим строки таблицы
    СтрокаИндекс = 0;
    Пока СтрокаИндекс < Таблица.Количество() Цикл
    Таблица_Строка = Таблица[СтрокаИндекс];
    КолонкаИндекс = 0;
    Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
    Колонка = Таблица.Колонки[КолонкаИндекс];
    ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 2, СтрокаИндекс + 2, КолонкаИндекс + 2).Текст = Таблица_Строка[Колонка.Имя];  // + 2, т.к. в первой строке выведен заголовок
    КолонкаИндекс = КолонкаИндекс + 1;
    КонецЦикла;
    СтрокаИндекс = СтрокаИндекс + 1;
    КонецЦикла;
    
    Возврат ТабДокумент;
    КонецФункции

    Показать

    Reply
  4. ZhiharevDmitriy

    (4) Исправленная функция:

    // Получить табличный документ на основании таблицы значений
    //
    // Параметры:
    //  Таблица  — ТаблицаЗначений
    //
    // Возвращаемое значение:
    //  ТабличныйДокумент
    //
    Функция ПолучитьТабличныйДокумент(Таблица) Экспорт
    ТабДокумент = Новый ТабличныйДокумент;
    
    // Выводим заголовок таблицы
    КолонкаИндекс = 0;
    Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
    Колонка = Таблица.Колонки[КолонкаИндекс];
    ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;
    КолонкаИндекс = КолонкаИндекс + 1;
    КонецЦикла;
    
    // Выводим строки таблицы
    СтрокаИндекс = 0;
    Пока СтрокаИндекс < Таблица.Количество() Цикл
    Таблица_Строка = Таблица[СтрокаИндекс];
    КолонкаИндекс = 0;
    Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
    Колонка = Таблица.Колонки[КолонкаИндекс];
    ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 1, СтрокаИндекс + 2, КолонкаИндекс + 1).Текст = Формат(Таблица_Строка[Колонка.Имя], «ЧГ=0»);
    КолонкаИндекс = КолонкаИндекс + 1;
    КонецЦикла;
    СтрокаИндекс = СтрокаИндекс + 1;
    КонецЦикла;
    
    Возврат ТабДокумент;
    КонецФункции

    Показать

    Reply
  5. mikl79

    (2), при отображении на экране в отличии от функции в (5):

    1) не выводит сетку;

    2) не отображает не простые типы данных, например, массив, стукртура

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *