Заполняем (описываем набор данных и поля) схему компоновки данных из таблицы значений

2 SDV 26 5
// Функция - Схема компоновки данных из таблицы значений
//  Формирует Схему компоновки, добавляет туда НаборДанных заполненный в соответствии
//  с колонками Таблицы.
//  Использование: открываю эту Схему конструктором, поднастраиваю и сохраняю в xml.
//   Избавляет от необходимости вручную описывать Поля и их Типы
//
// Параметры:
//  Таблица           - ТаблицаЗначений - Обязательно с определенными типами колонок.
//      Можно использовать ТипизированнаяТаблицаЗначений()
//  Наименование - Строка - Название будущего набора данных
//
// Возвращаемое значение:
//  СхемаКомпоновкиДанных
//
// Пример:
//  Схема = СхемаКомпоновкиДанныхИзТаблицыЗначений(Таблица, "Звонки");
//  Конструктор = Новый КонструкторСхемыКомпоновкиДанных(Схема);
//  Конструктор.Редактировать(ЭтаФорма);
//
Функция СхемаКомпоновкиДанныхИзТаблицыЗначений(Таблица, Наименование) Экспорт
     Схема = Новый СхемаКомпоновкиДанных;
     //Схема.ИсточникиДанных
     Источник = Схема.ИсточникиДанных.Добавить();
     Источник.Имя = "ИсточникДанных";
     Источник.СтрокаСоединения = "";
     Источник.ТипИсточникаДанных = "Local";

     НаборДанных = НаборДанныхИзТаблицыЗначений(Схема, Таблица, Наименование);
     Возврат Схема;
КонецФункции


// Функция - Набор данных из таблицы значений
//     Добавляет НаборДанных в Схему, создаёт поля соответствующие колонкам Таблицы
//     Памятка: чтобы подсунуть Таблицу используй ПриКомпоновкеРезультата()
//     ПроцессорКомпоновкиДанных.Инициализировать(..., НаборыДанных , ..., ...);
//
// Параметры:
//  Схема           - СхемаКомпоновкиДанных
//  Таблица           - ТаблицаЗначений - Обязательно с определенными типами колонок.
//      Можно использовать ТипизированнаяТаблицаЗначений().
//  Наименование - Строка - Название будущего набора данных
//
// Возвращаемое значение:
//  НаборДанныхОбъектСхемыКомпоновкиДанных
//
Функция НаборДанныхИзТаблицыЗначений(Схема, Таблица, Наименование) Экспорт
     
     //Схема = Новый СхемаКомпоновкиДанных; //Убрать
     НаборДанных = Схема.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
     НаборДанных.Имя = Наименование;
     НаборДанных.ИмяОбъекта = Наименование;
     НаборДанных.ИсточникДанных = Схема.ИсточникиДанных[0].Имя;
     //НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
     
     Для Каждого Колонка Из Таблица.Колонки Цикл
          ДобавленноеПоле = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
          ДобавленноеПоле.Заголовок = Колонка.Имя;
          ДобавленноеПоле.ПутьКДанным = Колонка.Имя;
          ДобавленноеПоле.Поле = Колонка.Имя;
          ДобавленноеПоле.ТипЗначения = Новый ОписаниеТипов(Колонка.ТипЗначения);
     КонецЦикла;

     Возврат НаборДанных;
          
КонецФункции
{28} Переменной НаборДанных присвоено значение, но оно нигде не используется
OneTracker - трекер учета рабочего времени программиста 1С

Комментарии

Похожие публикации

Создать отбор в скд

ДобавитьИтераторТаблице

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

Вывод данных СКД в таблицу значений (дерево)

Модератору