СКД, группировка с пустыми данными #742402


#0 by QuestNew
Доброго дня, уважаемые. Прошу помощи с простым концептуальным вопросом по СКД. В наборах данных один запрос, во временную таблицу отбираю элементы справочника номенклатуры, затем левым соединением добавляю остатки по складам. Все работает. НО! Когда пользователь накладывает фильтр по складу, в таблице остаются только номенклатурные позиции с остатками, а я хочу увидеть все номенклатурные позиции из временной таблицы своего запроса. Подскажите, как решить проблему, заранее спасибо.
#1 by ЧеловекДуши
Охарактеризуйте термин "пустыми данными"? Как это понимать?
#2 by QuestNew
Подразумеваю нулевые остатки номенклатуры.
#3 by QuestNew
Дополню огписание проблемы. Пусть есть позиции товар1 и товар2, склады склад1 и склад2. Остатки без фильтров выводятся так: Когда пользователь накладываеь фильтр по складу, картина получается:            склад2 товар2        5 А я хочу получить:            склад2 товар1 товар2       5
#4 by MUXACb
К сначала ко всей номенклатуре присоедини все склады, а потом ко всему этому присоединяй остатки по номенклатуре и складам
#5 by QuestNew
А толку? Я так понимаю, что СКД накладывает фильтр на итоговую таблицу. О!, идеи-вопросы: 1) получится ли решить проблему добавлением "ресурса", равного 1 для всех строк номенклатуры? 2) если сделать два набора данных, можно ли указать СКД, что фильтр следует применить к одному из наборов, а не итоговой таблице после объединения наборов данных?
#6 by fierylions
Нормально все отрабатывает:     Товары КАК Товары         ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки(                 , Результат: если отбор по Складу 1 Склад = Склад1 Товар = Товар1  Количество = 1 Склад = Null   Товар = Товар2  Количество = 0
#7 by QuestNew
т.е. решением проблемы в вашем примере служит прямое прописание фильтра в запросе СКД, мысль понял, спасибо! Если не найду универсального решения, придется прописывать возможные фильтры... Спасибо! Остатки с фильтром по номенклатуре - вымышленный простейший пример, иллюстрирующий мою проблему. В реальности фильтры могут быть по множеству параметров, прописать все будет проблематично.
#8 by fierylions
Что бы у вас работало да же без явного указания параметров вам нужно отключить галку в конструкторе "Автоупорядочивание". Тогда СКД будет работать именно указано в запросе.
#9 by MUXACb
У меня все работает. Объяснять принцип работы СКД долго. Да, у меня "Автоупорядочивание" тоже выключено. С включенным не пробовал
#10 by QuestNew
, Уважаемые, прошу помочь, проскальзываю, где эта галка автоупорядочивания, которую нужно отключить?
#11 by 1976vas
Я так понимаю, про "Автозаполнение" речь.
#12 by MUXACb
Пардон, "Автозаполнение"...
#13 by ИС-2
в запросе на закладке "Компоновка" можно выделить поле для фильтра. Или просто переименовать его. Например, Клиент в КлиентИзВТ и отбторы делать по КлиентИзВТ
#14 by QuestNew
Пробую реализовать ваш вариант. 1. Сделал промежуточную временную таблицу, в которой определил поле для фильтра по "складу". 2. В итоговой таблице делаю полное объединение временной таблицы "номенклатуры" с "остатками". В итоге вижу, что добавленное поле для фильтра по "складу" работает (налагаемые фильтры влияют на группировку "складов"), но "номенклатура" остается усеченной - без позиций с нулевыми остатками. Что-то делаю неправильно, что не пойму
#15 by 1976vas
А в консоли запросов работает? Пробуй сначала в консоли запросов запустить, потом с СКД сравнивай.
#16 by QuestNew
В консоли я вижу нужный результат. Запрос висит долго, но в итоговой таблице выдает всю "номенклатуру". СКД тоже висит долго, но в итоге выдает только позиции с остатками.
#17 by 1976vas
Сравни тогда запрос в консоли СКД исходный и после компоновки макета.
#18 by QuestNew
Эх, не знаю как, буду изучать )  Спасибо за наводку!
#19 by 1976vas
Это не наводка, я и сам не силен в СКД, но есть хорошие курсы по СКД у Гилева, там сразу можно увидеть своеобразный отладчик - консоль СКД, там видно, как твой запрос преобразуется после компоновки макета, т.е. твой запрос + настройки пользователя, т.е. запрос + все параметры, передаваемые в СКД. Посмотрев, можно выявить причины расхождения.
#20 by 1976vas
+ СКД изменяет постановку запроса, по сравнению с обычным запросом, он умеет оптимизировать, но иногда не в нашу пользу, поэтому надо знать особенности или просто сравнивая запросы исходные и преобразованные СКД, делать выводы.
#21 by QuestNew
Уважаемые, прошу помощи. Правлю запрос для СКД. Получаю финальную таблицу с Х измерениями, У показателями, на которую СКД накладывает пользовательские фильтры. Пусть в множестве измерений помимо прочих есть измерения "номенклатура" и "склад". Необходимо получить отчетную форму по всем возможным значениям измерения "номенклатура" (по всему списку). Рассмотрим случай, когда накладывается один фильтр на одно измерение - "склад" (при этом условием может быть не только равенство значению). Изначально в финальной таблице есть записи только по "номенклатуре" с остатками. Если я делаю новую таблицу - левое соединение остатков к справочнику "номенклатуры", получаю таблицу со всеми элементами "номенклатуры", но фильтр по "складу" обрезает "пустые" (без остатков) строки. Т.е. мне нужно получить новую таблицу, в которой бы к имеющейся результирующей таблице добавились бы строки с нулевыми значениями ресурсов из множества У, но при этом были бы учтены все имеющиеся комбинации остальных измерений из множества ресурсов Х. Не соображу, как это сделать.
#22 by MUXACb
я в написал. 1. Сделай 2 набора данных 2. В первом Номенклатура Левое соединение Склады - вся номенклатура по всем складам 3. Во втором остатки 4. Соединяй наборы (первый <- второй) по номенклатуре и складу При необходимости отключи "Автозаполнение"
#23 by QuestNew
Спасибо! Буду пробовать
#24 by QuestNew
Почти получилось! Последняя проблема - при наложении фильтра на измерение с типом "Не заполнено", тогда "номенклатура" все равно не попадает в отчет. Дополнительное соединение со значением Справочник.ХХХ.ПустаяСсылка не помогает ((
#25 by QuestNew
Проверил вариант с присоединением Null, тоже счастья не получил.
#26 by QuestNew
Неопределено тоже не помогает. Уважаемые, прошу помощи.
#27 by echo77
Схему свою покажи. При включенной галке Автозаполнение СКД добавляет поля Условий из измерений ВТ. Если у тебя запрос простой и ты вручную не прописываешь в СКД, что необходимо наложить отбор на поле Склад - все должно работать.
#28 by QuestNew
Как принято показывать схему? Выгрузить в xml, скрин, текст запроса?
#29 by echo77
выложить на файловый ресурс XML-схему
#30 by QuestNew
Если схема к отчету под доработку (отраслевое решение) - будет толк? Или без конфы схема окажется бесполезной?
#31 by echo77
Схему покажи сначала, потом посмотрим
#32 by QuestNew
#33 by echo77
Вот это что такое? ВЫБРАТЬ РАЗРЕШЕННЫЕ         1          ОБЪЕДИНИТЬ         2          ОБЪЕДИНИТЬ         3          ОБЪЕДИНИТЬ         4          ОБЪЕДИНИТЬ         5          ОБЪЕДИНИТЬ         6          ОБЪЕДИНИТЬ         7          ОБЪЕДИНИТЬ         8          ОБЪЕДИНИТЬ                  1                  ОБЪЕДИНИТЬ             2                  ОБЪЕДИНИТЬ             3                  ОБЪЕДИНИТЬ             4                  ОБЪЕДИНИТЬ             5                  ОБЪЕДИНИТЬ             6                  ОБЪЕДИНИТЬ             7                  ОБЪЕДИНИТЬ             8                  ОБЪЕДИНИТЬ                      1                  ОБЪЕДИНИТЬ             2                  ОБЪЕДИНИТЬ             3                  ОБЪЕДИНИТЬ             4                  ОБЪЕДИНИТЬ             5                  ОБЪЕДИНИТЬ             6                  ОБЪЕДИНИТЬ             7                  ОБЪЕДИНИТЬ             8                  ОБЪЕДИНИТЬ                      1                  ОБЪЕДИНИТЬ             2                  ОБЪЕДИНИТЬ             3                  ОБЪЕДИНИТЬ             4                  ОБЪЕДИНИТЬ             5                  ОБЪЕДИНИТЬ             6                  ОБЪЕДИНИТЬ             7                  ОБЪЕДИНИТЬ             8                  ОБЪЕДИНИТЬ
#34 by QuestNew
Я дорабатываю отчет франча, за все не расскажу. Мои изменения в запрос - ВТ "МнВоАналитик" и запросы 3,4 в итоговом запросе 8.
#35 by QuestNew
Предполагаю, что так реализована группировка по периодам.
#36 by QuestNew
В итоге получилось, помогло выделение параметра для фильтра в закладке компоновки промежуточного отчета. Всем спасибо за помощь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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