СКД: Как в СКД сделать , чтоб выводилась вся Номенклатура из отбора. #407603


#0 by Маркетолог
В СКД делаю запрос по регистру ТоварыНаСкладах,  как сделать, чтобы:  1.Номенклатура которая в отборе обязательно выводилась в отчет если отбор есть, независимо есть ли по ней Остатки или Движения.  2.Если отбора по Номенклатуре нет , то выводится только Номенклатура по которой есть Остатки или Движения за период.  3.Чтобы можно было при этом выводить группировки по Периодам.
#1 by Лефмихалыч
Соединить номенклатуру с остатками левым соединением
#2 by Маркетолог
Тогда не соблюдается пункт 2.    Будет выводиться вся номенклатура из Справочника
#3 by gr13
учи запросы
#4 by Маркетолог
Вообще то проблемма сводится к тому , чтобы определить есть ли отбор по номенклатуре в Настройках Скд
#5 by IronDemon
А может устроит отбор по "Обороту"?
#6 by Маркетолог
Да, через Параметр прямо в запросе.    Но для этого надо знать есть ли отбор по Номенклатуре.
#7 by Маркетолог
+ Т.е. условие в запросе Оборот > 0 или Остаток > 0 нужно когда, нет отбора по Номенклатуре    Вот этот код:    Для каждого стрОтб из Настройки.Отбор.Элементы Цикл    КонецЦикла;   Не срабатывает когда Отбор не для всего отчета , а только для Группировки Номенклатура
#8 by azernot
Вставить подзапрос к справочнику Номенклатуры с отбором правым соединением к справочнику номенклатуры без отбора, с уловием есть null в таблице с отбором. Если запрос не пустой - значит отбор есть :)
#9 by Learn_
а может пить меньше надо  :-D    ;)
#10 by Маркетолог
Не совсем понял о чем ты, мне нужно узнать сделал ли пользователь отбор Средствами СКД в форме настроек. Лучше бы помогла :)
#11 by Learn_
могу поддержать морально ;)
#12 by КуплюКровать
Обходи строки группировки и их отборы. Вот отбор первой группировки для примера КомпоновщикНастроек.Настройки.Структура[0].Отбор.Элементы
#13 by Маркетолог
Спасибо. Думаю это поможет
#14 by gr13
а зачем? что тебе мешает узнать в запросе есть ли отбор или нет?
#15 by Маркетолог
Может я чего то не понимаю ? Как узнать в запросе что в форме настроек установлен отбор ?
#16 by azernot
В общем, если не заморачиваться на производительность, то получить булевный признак наличия отбора по номенклатуре можно так: Пример запроса СКД: ВЫБРАТЬ ПЕРВЫЕ 1    ИСТИНА КАК ЕстьОтбор ПОМЕСТИТЬ ПараметрыОтбора ИЗ ГДЕ    НоменклатураСОтбором.ПометкаУдаления ЕСТЬ NULL ; ВЫБРАТЬ ГДЕ    ((НЕ ТоварыНаСкладахОстатки.Номенклатура ЕСТЬ NULL )
#17 by IronDemon
С группировкой по складу не будет работать
#18 by azernot
У меня и с группировкой по складу сработало.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С