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

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

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

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

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

Делаем простейший запрос
ВЫБРАТЬ
ОстаткиТоваров.Товар.Представление КАК Товар,
ОстаткиТоваров.КоличествоОстаток КАК Остатки
{ВЫБРАТЬ
Товар,
Остатки}
ИЗ
РегистрНакопления.ТоварыОстатки.Остатки КАК ОстаткиТоваров
Чтобы избавиться от складов, пришлось задействовать в запросе компоновку данных (все, что в фигурных скобках) и отключить внизу флаг автозаполнения. Также в качестве товара был взят не элемент справочника, а его представление, чтобы тип был такой же как и в наборе с внешним источником данных. Чтобы данные из разных наборов попали в одно поле у них должно быть одинаковое наименование в поле Путь. Поэтому для поля Остатки путь был вручную исправлен на Количество, чтобы синхронизировать его со вторым набором данных. На самом деле лучше конечно же использовать нужный псевдоним сразу в запросе. В данном случае умышленно не стал это делать, чтобы заострить внимание на такой особенности.
Теперь обратимся непосредственно к данным
В регистре накопления у меня хранятся следующие остатки товаров
| Товар | Количество |
|---|---|
| Карандаш | 47 |
| Лампа | 15 |
| Ручка | 10 |
а во внешнем источнике данных вот такая картина
| Товар | Количество |
|---|---|
| Скотч | 5 |
| Лампа | 1 |
| Кисточка | 15 |
Выполним настройку схемы компоновки самым примитивным образом.
Поле Количество естественно сделаем ресурсом, а на закладке настройки в структуру просто добавим Детальные записи. Ну и конечно не забудем поместить Товар и Количество в выбранные поля. И для полного счастья сделаем упорядочивание по товару.

В результате выполнения отчета с такими настройками СКД получаем вот такую таблицу
| Товар | Количество |
|---|---|
| Карандаш | 47 |
| Кисточка | 15 |
| Лампа | 15 |
| Лампа | 1 |
| Ручка | 10 |
| Скотч | 5 |
Как видим, Лампа, которая есть в обоих наборах данных, представлена в результате запроса двумя строчками. Чтобы свернуть их в одну строку необходимо немного видоизменить структуру в настройках СКД и вместо детальных записей сделать группировку по полю Товар.

И теперь получаем результат без задвоенных строк.
| Товар | Количество |
|---|---|
| Карандаш | 47 |
| Кисточка | 15 |
| Лампа | 16 |
| Ручка | 10 |
| Скотч | 5 |
Добавить комментарий