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