Записки программиста 1с

Набор данных 1с

Набор данных 1с используется для работы с различными вариантами объектов системы 1с .

Набор данных в 1с
Наборы данных 1с.

Типы наборов данных СКД

Рассмотрим, какие типы наборов данных можно создать в схеме компоновки данных:

  • Набор данных запрос – произвольный запрос к базе данных (самый распространенный вариант),
  • Набор данных объект – произвольный, внешний набор данных (например таблица значений),
  • Набор данных объединение – объединение нескольких наборов данных в один результирующий.

Использование набора данных – запрос 1с

Запрос 1с позволяет выбрать данные из БД.

Набор данных – объединение

Набор данных – объединение предназначен для разработки отчета, содержащего объединенную информацию из различных наборов данных. Такой набор содержит два или более подчиненных набора данных, но информация в них не связывается, а объединяется.

Может быть построена разветвленная структура объединений наборов данных. Отдельные наборы можно перетаскивать мышкой по структуре.

Существует ограничение: подчиненные наборы могут быть только у наборов данных объединение.

Набор данных -объект 1с

 Создавая набор данных этого типа, необходимо описать только выходные поля этого набора и его наименование:

Сам механизм для формирования данных необходимо описывать программно, и передавать процессору компоновки. Такие внешние данные могут быть следующих видов:

  • Таблица значений,
  • Выборка из результата запроса,
  • Область ячеек табличного документа,
  • Набор записей регистров,
  • Любой объект конфигурации или его табличная часть.

Наиболее распространенный тип внешних данных – это таблица значений. Ниже пример программного кода для передачи внешних данных процессору компоновки:

ТЗ = новый ТаблицаЗначений;
…
ВнешниеНаборы = новый Структура;
ВнешниеНаборы.Вставить("ИмяНабораДанных", ТЗ);
ПроцессорКомпоновки = новый ПроцессорКомпоновкиДанных();
ПроцессорКомпановки.Инициализировать(МакетКомпоновки, ВнешниеНаборы); 

В качестве объекта часто используют таблицу значений.

Пример использования набора данных объект.

Подготовим набор данных объект. Отчет будет содержать указанные поля. Имя Объекта будет использоваться в дальнейшем для связи с внешним набором данных.

Набор данных объект 1с
Набор данных объект

Во-первых создаем Макет с использованием Компоновщика Макета.

//Шаг 1
	Настройки=КомпоновщикНастроек.Настройки;
	КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки);

Во-вторых назначаем процессор компоновки. Процессор компоновки в качестве аргументов получаем Макет(Макет компоновки) и Внешний набор. Внешний набор можно получить из внешних данных запросом или создать самостоятельно с использованием таблицы значений.

//Шаг 2 Определяем Процессор Компоновки
ПроцессорКомпановки=Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпановки.Инициализировать(Макет, ВнешнийНабор);

Внешний набор можно получить запросом к табличной части документа:

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

В-третьих выводим данные в Документ Результат с помощью ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент.

//Шаг3 Процессор вывода
	ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпановки);

Добавить комментарий

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