среда, 22 июня 2016 г.

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

Добавляю в качестве заметочки по СКД, поскольку приходится делать не весьма часто и вспоминать как и где применял не очень просто. В итоге уходит время на поиски где это делал, а потом время на поиски, а как это сделать... И еще время опять-же проверить, правильно - ли сделал...

Так вот, для чего это надо:

Например есть несколько наборов данных. И вот как правило надо бы как-то использовтаь быстрый отбор из верхнего набора, но как?... В СКД это вполне возможно.



Коллекция используемых наборов данных

Чтобы правильно работало условие ОБЯЗАТЕЛЬНО необходимо указать в компоновщике на закладке условия это поле. Желательно это делать на всех подуровнях, так отборы будут быстро работать.


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

Связи наборов данных. Обазательно указываем наш параметр и флаг "Список параметров" это в случае, когда у нас там образуется массив данных.

Ну и на последок как выглядит закладка параметров. Просто снимаем доступность пользователю.

P/S. Паралельно еще поделюсь для чего делалось набор разных данных. Решалась задача в котой необхомо было вывести перечень заказаных товаров, в одной колонке через разделитель по контрагенту и самое важное то, что отчет должен быть линейным. Важный момент в том, что необходимо использовать в вычислениях поля ресурсы функцию "Массив()". да-да, СКД отлично все понимает. Но есть нюансы с расчетным количеством в таких случаях и приходится использовать именно соединения разных наборов данных. Одним пакетом запросов тоже решается, но там приходится группировать поля.

На выходе это выглядит так:


2 комментария:

  1. "необходимо указать в компоновщике на закладке условия это поле".
    Кто бы знал? В руководстве по разработке об этом ни слова. Я уже как только не танцевал с бубнами - наборы данных не связывались. Статья помогла. СПАСИБО!!!

    ОтветитьУдалить
  2. Странно, а Вы не получаете ошибку "Использование полей из не связанных наборов данных не допустимо"?

    ОтветитьУдалить