Профессия — 1С

Рукопашный бой Карташ

Категории

Объединение наборов данных в СКД

рубрики: СКД | Дата: 7 Апрель, 2017

Использование системы компоновки данных 1С невозможно без наборов данных. В одной схеме компоновки данных их может быть несколько. И они могут связываться между собой определенным образом. А точнее либо соединяться, либо объединяться. В этой статье рассмотрим объединение наборов данных. Объединение наборов данных в СКД подобно объединению таблиц в языке запросов.




Чтобы объединить два или более набора данных в СКД, необходимо на закладке Наборы данных предварительно создать специальный набор данных — объединение


Получаем вот такую картину


И уже в этот созданный объект добавляем наборы, которые будут непосредственно объединяться. Давайте добавим два набора данных. Один из которых будет запрос, а второй для разнообразия — объект (внешний источник данных). Вот так:


В качестве примера рассмотрим объединение наборов данных с остатками товаров.




В том наборе, где будем использовать внешний источник данных, вручную добавляем поля Товар, Количество и прописываем имя объекта, содержащего данные


Для набора данных где используется запрос будем получать данные с использованием виртуальной таблицы остатков вот из такого регистра накопления:


Делаем простейший запрос


ВЫБРАТЬ
	ОстаткиТоваров.Товар.Представление КАК Товар,
	ОстаткиТоваров.КоличествоОстаток КАК Остатки
{ВЫБРАТЬ
	Товар,
	Остатки}
ИЗ
	РегистрНакопления.ТоварыОстатки.Остатки КАК ОстаткиТоваров

Чтобы избавиться от складов, пришлось задействовать в запросе компоновку данных (все, что в фигурных скобках) и отключить внизу флаг автозаполнения. Также в качестве товара был взят не элемент справочника, а его представление, чтобы тип был такой же как и в наборе с внешним источником данных. Чтобы данные из разных наборов попали в одно поле у них должно быть одинаковое наименование в поле Путь. Поэтому для поля Остатки путь был вручную исправлен на Количество, чтобы синхронизировать его со вторым набором данных. На самом деле лучше конечно же использовать нужный псевдоним сразу в запросе. В данном случае умышленно не стал это делать, чтобы заострить внимание на такой особенности.

Теперь обратимся непосредственно к данным
В регистре накопления у меня хранятся следующие остатки товаров

Товар Количество
Карандаш 47
Лампа 15
Ручка 10

а во внешнем источнике данных вот такая картина

Товар Количество
Скотч 5
Лампа 1
Кисточка 15

Выполним настройку схемы компоновки самым примитивным образом.
Поле Количество естественно сделаем ресурсом, а на закладке настройки в структуру просто добавим Детальные записи. Ну и конечно не забудем поместить Товар и Количество в выбранные поля. И для полного счастья сделаем упорядочивание по товару.


В результате выполнения отчета с такими настройками СКД получаем вот такую таблицу

Товар Количество
Карандаш 47
Кисточка 15
Лампа 15
Лампа 1
Ручка 10
Скотч 5

Как видим, Лампа, которая есть в обоих наборах данных, представлена в результате запроса двумя строчками. Чтобы свернуть их в одну строку необходимо немного видоизменить структуру в настройках СКД и вместо детальных записей сделать группировку по полю Товар.


И теперь получаем результат без задвоенных строк.

Товар Количество
Карандаш 47
Кисточка 15
Лампа 16
Ручка 10
Скотч 5

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

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

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С