СКД как источник данных для подсистемы планирования
Здравствуйте.
Задумал использовать общий макет СКД для получения одних и тех же данных (для планирования закупа). Например такие данные как остаток на начало текущего месяца, товары в пути, неликвидный товар, продажи прошлых 6 месяцев за каждый месяц отдельно.
Все это нужно выводить в виде дерева, в разрезе основных свойств характеристик. Основные свойства характеристик задаются в периодическом регистре сведений.
Отбирать нужно по подразделению и периоду. Когда выяснилось, что иногда отбирать нужно по складу, тут я встрял.
Если использовать автозаполнение, то там где я получаю товары в пути, в виртуальную таблицу остатков запихивается параметр с неправильным складом. То есть у подразделения есть два склада – “земля” и “в пути”. Добавляю отбор “земля” в виртуальную таблицу прописывается эта земля, а нужно в пути.
Обошел следующим образом:
Добавил набор данных и в пути получал уже там. Убрал там автозаполнение и все получилось. До тех пор пока не наложил общий отбор по количеству. Добавил группу “ИЛИ” а в ней “В Пути >0 , НачальныйОстаток >0”. Тут у СКД стало сносить башню. Причем в консоли все ок, а если программно обращаться к СКД то на этапе КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки) 1С стала говорить что у меня проблемы с отбором.
Причем если убрать отбор в пути или убрать отбор по начальному остатку, все ок. но вместе не работает.
Дальше рассудил так. Если подразделение параметр, то пусть и склад будет параметром. Прописал его во временных таблицах используя {Где ***.Склад = &Склад}.
Но получается, что убрав автозаполнение, я лишился оптимизатора. В случае если пользователь использует какой-то доп отбор, то в результирующем запросе этот отбор будет только на конечной таблице. Во всех временных таблицах отбора не будет.
Или я занимаюсь ерундой пытаясь оптимизировать. Или дошел до необходимого уровня. Или чтобы понять дошел или не дошел, нужно мерить.
Прошу совета. Как бы вы поступили на моем месте?
Как я вижу, вы поняли, что отчет достаточно сложный и галку автозаполнение надо снимать.
Лучше пользоваться отборами в СКД, а не фильтровать с помощью параметров