0
DIvanmgn
24.10.14
✎
08:32
|
Здравствуйте.
В запросе 10 виртуальных таблицы остатков.
При добавлении отбора СКД добавляет параметр &П в результирующий запрос.
А именно в параметры виртуальных таблиц.
В одной нужен этот параметр а в остальных нет. Как объяснить СКД, чтобы она не трогала вторую виртуальную таблицу?
Пока вижу СтрЗаменить или другое насилие над результирующим запросом.
Ищу более грамотный подход.
|
|
4
DIvanmgn
29.10.14
✎
10:58
|
Докопался.. устал.. нужна помощь..
Опишу ситуацию полностью. Может кто что посоветует?
Задумал использовать общий макет СКД для получения одних и тех же данных (для планирования закупа). Например такие данные как остаток на начало текущего месяца, товары в пути, неликвидный товар, продажи прошлых 6 месяцев за каждый месяц отдельно.
Все это нужно выводить в виде дерева, в разрезе основных свойств характеристик. Основные свойства характеристик задаются в периодическом регистре сведений.
Отбирать нужно по подразделению и периоду. Когда выяснилось, что иногда отбирать нужно по складу, тут я встрял.
Если использовать автозаполнение, то там где я получаю товары в пути, в виртуальную таблицу остатков запихивается параметр с неправильным складом. То есть у подразделения есть два склада - "земля" и "в пути". Добавляю отбор "земля" в виртуальную таблицу прописывается эта земля, а нужно в пути.
Обошел следующим образом:
Добавил набор данных и в пути получал уже там. Убрал там автозаполнение и все получилось. До тех пор пока не наложил общий отбор по количеству. Добавил группу "ИЛИ" а в ней "В Пути >0 , НачальныйОстаток >0". Тут у СКД стало сносить башню. Причем в консоли все ок, а если программно обращаться к СКД то на этапе КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки) 1С стала говорить что у меня проблемы с отбором.
Причем если убрать отбор в пути или убрать отбор по начальному остатку, все ок. но вместе не работает.
Дальше рассудил так. Если подразделение параметр, то пусть и склад будет параметром. Прописал его во временных таблицах используя {Где ***.Склад = &Склад}.
Но получается, что убрав автозаполнение, я лишился оптимизатора. В случае если пользователь использует какой-то доп отбор, то в результирующем запросе этот отбор будет только на конечной таблице. Во всех временных таблицах отбора не будет.
Или я занимаюсь ерундой пытаясь оптимизировать. Или дошел до необходимого уровня. Или чтобы понять дошел или не дошел, нужно мерить.
Прошу совета. Как бы вы поступили на моем месте?
|
|