#0
by PVL09
Ув. господа! Нужна ваша помощь с запросом к справочнику товаров. Суть запроса - получить список товаров, удовлетворяющего некоторым условиям: 1) Отбор по группам товаров - необязательное, группа одна или несколько, уровни могут быть разные, 1-2 по иерархии; 2) Отбор по реквизиту группы ("Куратор","Справочник.Кураторы",необязательный, один или несколько), заполнен только на произвольном уровне (1-3), но нижележащие уровни должны входить в выборку; 3) Отбор по реквизиту элемента ("Категория", "Справочник.Категории", необязательный), заполнен у всех товаров.
#1
by PVL09
Накидал запрос, но как-то он криво работает - при исключении одного из критериев зависает до бесконечности. Вот текст запроса: Таб.code, ,CASE WHEN Тов3.ID<>' 0 ' THEN Тов3.ID WHEN Тов2.ID<>' 0 ' THEN Тов2.ID WHEN Тов1.ID<>' 0 ' THEN Тов1.ID left join [Справочник.Товары] Тов1 on (Тов1.PARENTEXT=' 3 ') and (Тов1.ParentID = СпрТов.ID) and (Тов1.IsFolder = 1) left join [Справочник.Товары] Тов2 on (Тов2.PARENTEXT=' 3 ') and (Тов2.ParentID = Тов1.ID) and (Тов2.IsFolder = 1) left join [Справочник.Товары] Тов3 on (Тов3.PARENTEXT=' 3 ') and (Тов3.ParentID = Тов2.ID) and (Тов3.IsFolder = 1) and (СпрТов.ID IN (SELECT Val FROM ТабТов)) and (СпрТов.Куратор IN (SELECT Val FROM ТабКур)) ORDER by 1) as Таб on Таб.ОбъектГ=СпрТ.ParentID WHERE (СпрТ.PARENTEXT=' 3 ') and (СпрТ.IsFolder = 2) and (СпрТ.Категория IN (SELECT Val FROM ТабКат))
#2
by PVL09
вот что выдает отладка: , idx_ID char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_CODE char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_DESCR char collate _1C default null , idx_CODE char collate _1C default null , idx_DESCR char collate _1C default null , idx_Артикул char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_Артикул char collate _1C default null , idx_ЕдиницаИзмерения_DESCR char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_ЕдиницаИзмерения_DESCR char collate _1C default null , idx_Категория_DESCR char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_Категория_DESCR char collate _1C default null , idx_ОЕМ char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_ОЕМ char collate _1C default null , idx_АМатрица_DESCR char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_АМатрица_DESCR char collate _1C default null , idx_Куратор_DESCR char collate _1C default null , idx_PARENTEXT_PARENTID_ISFOLDER_Куратор_DESCR char collate _1C default null ) szName SC16 Подбор индекса для таблицы SC16 : Выбран индекс PCODE: PARENTEXT+PARENTID+STR(ISFOLDER,1)+UPPER(CODE) szName SC16 Подбор индекса для таблицы SC16 : Выбран индекс PCODE: PARENTEXT+PARENTID+STR(ISFOLDER,1)+UPPER(CODE) szName SC16 Подбор индекса для таблицы SC16 : szName SC16 Подбор индекса для таблицы SC16 : szName SC16 Подбор индекса для таблицы SC16 : Выбран индекс PCODE: PARENTEXT+PARENTID+STR(ISFOLDER,1)+UPPER(CODE) szName SC16 Подбор индекса для таблицы SC16 : Выбран индекс PCODE: PARENTEXT+PARENTID+STR(ISFOLDER,1)+UPPER(CODE) szName SC16 Подбор индекса для таблицы SC16 : Выбран индекс PCODE: PARENTEXT+PARENTID+STR(ISFOLDER,1)+UPPER(CODE) 1SQLite: 154.48 сек.
#4
by Ёпрст
заместо case лучше писать coalesce(Тов3.ID, Тов2.ID, Тов1.ID,СпрТов.ID) ОбъектГ и сравнивать с пустымИД - не верно, там null будет, если че, а не пустой ИД.
#8
by Ёпрст
вот эти условия: and (Тов1.IsFolder = 1) - не верные. Так ты получаешь только группы, а на все элементы унутри групп кладешь с прибором
#9
by PVL09
Не успеваю читать.. принципиально это ничего не поменяет же, владелец не меняется.. сначала получаю группы а потом к ним цепляю товары.. так не канает?
#10
by Ёпрст
канает, не заметил, что ты иннер джоин потом лепишь по as Таб on Таб.ОбъектГ=СпрТ.ParentID
#14
by PVL09
Как бы ты переделал? В любом случае нужно сначала сделать отбор по группам, а потом к ним товары цеплять.. Или есть другие варианты? А ИндексированнаяТаблица никак здесь не поможет?
#16
by Djelf
Ага, в верно замечено. Куратор - реквизит группы. Логика с кураторами то какая? Если в группе1 Иванов, а в подчиненной группе2 Петров, то при выборе Иванова что должно выводится? Группа1 или еще и Группа2
#17
by PVL09
Куратор ставится на 2 или 3 (реже) уровнях, и они не пересекаются. Это привязка групп товаров к менеджеру закупок
#20
by Djelf
Кури cte! По этим ссылка нормально объясняется: То что там про cte в mssql и postgesql - не существенно.
#21
by Djelf
Если будут тормоза при накладывании условий по IN пробуй заменить WHERE Таб.ID IN (ЧтоТоТам) на WHERE +Таб.ID IN (ЧтоТоТам) Это отключит оптимизацию по IN, которая иногда в sqlite дурит по страшному.
#24
by Djelf
Халтура, Шеф! Халтура! Была бы отличная, я бы разобрался как индекс по двум полям ставить... Буду думать 1sqlite дальше, возможно и достигну следующий степени просветления.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Помогите с компонентой V7 plus работа с XML
- v7: 1SQLite: Помогите с запросом? Ругается на скобку...
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
- v7: 1sqlite. помогите найти товар по коду
В этой группе 1С
- ERP/УТ 11. Ответственное хранение. Настроить проводку по сч002
- Владелец в расширении
- Подключение тонкого клиента к удаленному серверу 1с
- Передать значение с одной формы на другу
- 1С УПП Реализация товаров и услуг формирует выручку не полностью
- Не работает поиск по измененному коду номенклатуры в ут 11
- 1C 8.3: Расширенный поиск по динамическому списку
- открыть альтернативную форму нового документа из формы списка
- слетают счета учета номенклатуры
- v7: CDO.Message - как получить детальный лог ошибки?
- КПП обособленного подразделения в счет фактуре на аванс
- Как в УТ при загрузке клиент-банка автоматом ставить ставку НДС в документах?
- Распознать картинку в 1с 8.3
- Проблемы с формой Т-61 (ЗУП 2.5)
- Вопрос по регистрам зуп 2.5.
- Список.НастройкаПорядка.[Поле].Доступность=Истина - есть подводные камни?
- Добавление колонок с реквизитом через точку в форму списка документа
- Фискальный регистратор - Блокировка при ошибке ЭКЛЗ
- Создание zip архива в 1с 8
- УПП 1,3. Получение продукции из переработки. На 10,04.