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