Профессия — 1С » Соединение наборов данных в СКД

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

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

Категории

-->

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

рубрики: СКД | Дата: 24 февраля, 2017

В системе компоновки данных можно использовать несколько наборов данных. И вполне логично, что эти наборы данных должны как то связываться между собой. По аналогии с языком запросов 1С наборы данных могут либо соединяться либо объединяться. В этой статье поговорим про соединение наборов данных в СКД.
На первый взгляд бывает непонятно зачем нужно делать несколько наборов данных и потом соединять их, если можно просто сделать соединение таблиц внутри одного набора данных. Для этого есть как минимум одна причина — в случае использования внешнего набора данных. Как известно, когда мы пишем запрос для набора данных СКД, мы не можем передать в него например таблицу значений в качестве временной таблицы. Хотя для обычного запроса это делается достаточно просто. В случае же использования СКД мы вынуждены передавать в нее таблицу значений в качестве внешнего источника данных. Отсюда и вытекает необходимость делать соединение наборов данных. Сразу отмечу, что наборы данных могут соединятся только при помощи ЛЕВОГО СОЕДИНЕНИЯ. Поэтому в отличие от Соединения таблиц в конструкторе запросов здесь вы не увидите флажков, которые отвечают за тип соединения таблиц.

А теперь придумаем ситуацию на примере которой сможем рассмотреть соединение наборов данных в СКД. Пусть, у нас есть справочник Товары, которые мы можем получать от разных поставщиков, и мы хотим сформировать отчет c ценами на товары в разрезе поставщиков, чтобы выбрать поставщика с наиболее выгодной ценой. А цены мы будем брать актуальные на текущий момент, к примеру через веб сервисы с сайтов поставщиков.
Соответственно для товаров у нас будет набор данных, полученный при помощи запроса, а для цен будет набор данных полученный из внешнего источника.


А теперь перейдем на закладку Связи наборов данных и выполним настройку как показано на рисунке.

На закладке Настройки для начала сделаем элементарный вывод детальных записей

Пусть у нас в справочнике Товары содержатся следующие записи

Товар
Ручка
Карандаш

А из внешних данных мы получили следующие цены поставщиков

Товар Поставщик Цена
Лампа ООО «Леспром» 700
Лампа ПАО «Канцтовары» 560
Ручка ПАО «Канцтовары» 145
Карандаш ООО «Леспром» 15
Карандаш ПАО «Канцтовары» 31

Запускаем отчет на выполнение и видим следующую картину

Товар Поставщик Цена
Ручка ПАО «Канцтовары» 145
Карандаш ООО «Леспром» 15
Карандаш ПАО «Канцтовары» 31

То есть видим, что наборы данных были связаны между собой по всем правилам ЛЕВОГО СОЕДИНЕНИЯ

На закладке Связи наборов данных есть возможность указать некоторые дополнительные параметры в соответствующих полях. Но используются они достаточно редко. Подробнее можно почитать в технической документации и на дисках ИТС.

Один комментарий на «“Соединение наборов данных в СКД”»

  1. Юлия:

    Давно искала подобное, спасибо очень интересно!

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

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

   

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