Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 18:18

Ошибка "Построенный запрос к СУБД использует слишком много таблиц"

Автор Marta_Li, 03 дек 2012, 12:11

0 Пользователей и 1 гость просматривают эту тему.

Marta_Li

В ПланВидовХарактеристик ВидыСубконтоХозрасчетные добавила в типЗначенияХарактеристик и, соответственно, выбрала в тип ВидаХарактеристик новый документ. После этого, похоже, стало вылетать на ошибку при проведении. Когда убираю в запросе " Субконто2.Дата >= &ДатаНачалаПартий" проходит, но это условие мне нужно. Может, подскажет кто, от какой печки отталкиваться?
Запрос и ошибку привожу ниже.
Заранее спасибо за участие.

ВЫБРАТЬ
            Остатки.Счет КАК СчетУчета,
            Остатки.Субконто1 КАК Номенклатура,
            Остатки.Субконто2.Дата КАК ДокументОприходованияДата,
            Остатки.Субконто2 КАК ДокументОприходования,
            &ПустаяДата КАК ДокументОтгрузкиДата,
            &ПустаяОтгрузка КАК ДокументОтгрузки,
            Остатки.Субконто3 КАК Склад,
            Остатки.Организация КАК Организация,
            СУММА(ВЫБОР КОГДА Остатки.КоличествоОстатокДт ЕСТЬ NULL ТОГДА 0 ИНАЧЕ Остатки.КоличествоОстатокДт КОНЕЦ) КАК Количество,
            СУММА(ВЫБОР КОГДА Остатки.СуммаОстатокДт ЕСТЬ NULL ТОГДА 0 ИНАЧЕ Остатки.СуммаОстатокДт КОНЕЦ) КАК Стоимость
ИЗ
            РегистрБухгалтерии.Хозрасчетный.Остатки(&МоментКон, Счет В (&СчетаУчетаНСП), ,Субконто1 В (&Номенклатура) И Субконто2.Дата >= &ДатаНачалаПартий И Субконто3 В (&Склады) И Организация В (&Организации)) КАК Остатки

СГРУППИРОВАТЬ ПО
            Остатки.Счет,
            Остатки.Субконто1,
            Остатки.Субконто2.Дата,
            Остатки.Субконто2,
            Остатки.Субконто3,
            Остатки.Организация                     
УПОРЯДОЧИТЬ ПО Номенклатура, ДокументОприходованияДата Убыв
ИТОГИ ПО Номенклатура


Ошибка:


Uploaded with ImageShack.us

MuI_I_Ika

Сколько у вас возможных видов документов в Субконто2?

Marta_Li

Для данного счета (43), который здесь используется, 24 (ВидСубконтоХозрасчетный - "Партии"). Но то , что я добавляла, не имеет к Партии (и видам документов в нем) никакого отношения, это совсем другой был ВидСубконто.
Или это так совпало? Но перестало работать, похоже, именно после добавления ВидаСубконто ДокументыАмортизационнойПремии со своими видами документов. К тому же он привязан к Плану счетов Налогового учета.:dfbsdfbsdf:

MuI_I_Ika

ЦитироватьВ ПланВидовХарактеристик ВидыСубконтоХозрасчетные добавила в типЗначенияХарактеристик и, соответственно, выбрала в тип ВидаХарактеристик новый документ.
Вот это вообще непонятно о чем.

Ну вы же сами указали на свою основную ошибку:

Субконто2.Дата >= &ДатаНачалаПартий

При получении поля из субконто через точку происходит неявное левое соединение со всеми таблицами этого субконто.

Marta_Li

Ничего не менялось ни в этом запросе (года 3 точно), ни в ВидеСубконто Партии, к которому идет обращение (ВидСубконто2 - это Партии), в запросе есть ограничение на ВидыСубконто (это Номенклатура, Партии, Склады). Вышла на "ошибку" методом тыка, причем если выношу это условие как внешнее, не вылетает (ГДЕ Остатки.Субконто2.Дата >= &ДатаНачалаПартий).
Также не вылетает, если оставляю внутреннее условие таблицы Субконто2.Дата >= &ДатаНачалаПартий, но удаляю отбираемое поле "Остатки.Субконто2.Дата КАК ДокументОприходованияДата".

То, что не понятно, это написала, после чего, наверно, перестало работать. Хотя, может, совпадение. Добавляла документ к совсем другому ВидуСубконто  .

К тому же ошибка о том, что "слишком много таблиц"...

Dethmontt

Оптимизируйте запрос!
В запросах не желательно использовать обращение через точку - т.к. оно не явно вызывает еще запрос (ко всем таблицам находящимся через точку) с соединением к основной таблице...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

MuI_I_Ika

Цитата: Marta_Li от 03 дек 2012, 13:15То, что не понятно, это написала, после чего, наверно, перестало работать. Хотя, может, совпадение. Добавляла документ к совсем другому ВидуСубконто

Ну так значит это здесь ни при чем.

Значит решением может быть перенос условия из условий виртуальной таблицы в условия запроса.

Marta_Li

В тестовой базе убрала добавленный документ в ВидСубконто (повторюсь, совсем другой, к тому же задействованный в плане счетов Налоговый, а не Хозрасчетный, который используется в данном запросе) - прошло без ошибок! Не понимаю, как и что происходит, почему?!

К этому запросу обращение идет со всей программы по партионному учету, не хотелось бы менять на внешнее условие - может во многих местах затормозить.
Очень хочется понять, что происходит, когда добавила документ в ВидСубконто. Или я его еще где-то должна была указать?...

MuI_I_Ika

Когда вы добавили новый документ в вид субконто, вы добавили как минимум еще одно левое соединение по этому запросу.

Виды субконто, насколько я понимаю, в вашей конфигурации не разделяются по планам счетов.

Marta_Li

Да, в НУ к счетам идут те же самые ВидыСубконто, что и в БУ. Но добавляла к ВидуСубконто, который в данном запросе не участвует.
Получается, что добавив 1 документ, вылетает на ошибку, а вынеся во внешнее условие , не вылетает...
не понятно мне.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск