Добавляю в качестве заметочки по СКД, поскольку приходится делать не весьма часто и вспоминать как и где применял не очень просто. В итоге уходит время на поиски где это делал, а потом время на поиски, а как это сделать... И еще время опять-же проверить, правильно - ли сделал...
Так вот, для чего это надо:
Например есть несколько наборов данных. И вот как правило надо бы как-то использовтаь быстрый отбор из верхнего набора, но как?... В СКД это вполне возможно.
|
Коллекция используемых наборов данных |
Чтобы правильно работало условие ОБЯЗАТЕЛЬНО необходимо указать в компоновщике на закладке условия это поле. Желательно это делать на всех подуровнях, так отборы будут быстро работать.
|
Важно! Во втором наборе данных условие к параметру "Контрагент". Тоесть мы заставляем компоновщик работать с нашим параметром из перовго набора данных. В даном случае это "контрагенты" |
|
Связи наборов данных. Обазательно указываем наш параметр и флаг "Список параметров" это в случае, когда у нас там образуется массив данных. |
|
Ну и на последок как выглядит закладка параметров. Просто снимаем доступность пользователю. |
P/S. Паралельно еще поделюсь для чего делалось набор разных данных. Решалась задача в котой необхомо было вывести перечень заказаных товаров, в одной колонке через разделитель по контрагенту и самое важное то, что отчет должен быть линейным. Важный момент в том, что необходимо использовать в вычислениях поля ресурсы функцию "Массив()". да-да, СКД отлично все понимает. Но есть нюансы с расчетным количеством в таких случаях и приходится использовать именно соединения разных наборов данных. Одним пакетом запросов тоже решается, но там приходится группировать поля.
На выходе это выглядит так:
"необходимо указать в компоновщике на закладке условия это поле".
ОтветитьУдалитьКто бы знал? В руководстве по разработке об этом ни слова. Я уже как только не танцевал с бубнами - наборы данных не связывались. Статья помогла. СПАСИБО!!!
Странно, а Вы не получаете ошибку "Использование полей из не связанных наборов данных не допустимо"?
ОтветитьУдалить