вторник, 20 марта 2018 г.

Вывод результатов запроса в таблицу значений на форме (программное создание таблицы значений)

Вывод результатов запроса в таблицу значений на форме (программное создание таблицы значений) http://softproc.ru/public/574802/


Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        | Сотрудники.Наименование КАК Наименование
        |ИЗ
        | Справочник.Сотрудники КАК Сотрудники"; 
    Таблица = Запрос.Выполнить().Выгрузить();
 // добавим таблицу: сначала саму таблицу, потом колонку.
 Реквизиты = Новый Массив;
 Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений")));
 Для Каждого Ст ИЗ Таблица.Колонки Цикл
  Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме"));
 КонецЦикла;

 // добавим реквизиты на форму
 ИзменитьРеквизиты(Реквизиты);

 // добавим элементы формы
 Таб = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"));
 Таб.ПутьКДанным = "ТаблицаНаФорме";

 // запретим менять положение строк и сами строки, отключим командную панель
 Таб.ИзменятьСоставСтрок = Ложь;
 Таб.ИзменятьПорядокСтрок = Ложь;
 Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;

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

 // заполним таблицу
 ЗначениеВРеквизитФормы(Таблица, "ТаблицаНаФорме");

Комментариев нет: