Медленно выполняется запрос. Как можно ускорить выполнение запроса?
"ВЫБРАТЬ
| ОсновныеСредства.Ссылка,
| ОсновныеСредства.КВД,
| ОсновныеСредства.СчетУчета,
| ОсновныеСредства.КБК,
| ОсновныеСредства.КОСГУСчетаАмортизации,
| ИнвентарныеНомераОС.Ссылка КАК ИнвентарныйНомер,
| ЕПСБУОстатки.КоличествоОстаток,
| ЕПСБУДвиженияССубконто.Сумма
|ИЗ
| Справочник.ОсновныеСредства КАК ОсновныеСредства
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИнвентарныеНомераОС КАК ИнвентарныеНомераОС
| ПО ОсновныеСредства.Ссылка = ИнвентарныеНомераОС.ОС
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки КАК ЕПСБУОстатки
| ПО ОсновныеСредства.Ссылка = ЕПСБУОстатки.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто КАК ЕПСБУДвиженияССубконто
| ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
|ГДЕ
| ОсновныеСредства.Ссылка = &Объект";
ПоказатьПроблема где-то в
ЕПСБУДвиженияССубконто.Сумма
ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
Если выкинуть это из запроса, то выполняется достаточно быстро. В поле СубконтоДт2 составной тип данных на 67 галочек, 60 из которых документы и справочники в том числе и ОсновныеСредства. Так понимаю причина в этом. Что можно сделать?
По теме из базы знаний
- КЕЙС: Как мы ускорили обмены с 10 часов до нескольких минут
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Быстрый фронт в базе размером 6.8 терабайт – наши стандарты при разработке и рефакторинге запросов
- Небольшой кейс оптимизации. Ускоряем печать табеля УПП
- MS SQL Server: изучаем планы запросов
Найденные решения
(19) не то. То что вы прописали, означает, что из регистра бухгалтерии надо выбрать все записи, у которых субконто2 имеет тип Справочник.ОсновныеСредства. На отбор по конкретной ссылке это никак не влияет. Ведь вам не нужны все записи, а нужно только по конкретному ОС.
Для этого нужно прописать отбор по этому ос:
и соответственно.
Для этого нужно прописать отбор по этому ос:
Субконто2 = &Объект
и
СубконтоДт2 = &Объект
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(19) не то. То что вы прописали, означает, что из регистра бухгалтерии надо выбрать все записи, у которых субконто2 имеет тип Справочник.ОсновныеСредства. На отбор по конкретной ссылке это никак не влияет. Ведь вам не нужны все записи, а нужно только по конкретному ОС.
Для этого нужно прописать отбор по этому ос:
и соответственно.
Для этого нужно прописать отбор по этому ос:
Субконто2 = &Объект
и
СубконтоДт2 = &Объект
1. Первый пакетный запрос обращается к Справочник.ОсновныеСредства с условием ОсновныеСредства.Ссылка = &Объект. Результат помещается в таблицу ТаблицаОС
2. Второй пакетный запрос обращается к РегистрБухгалтерии.ЕПСБУ.Остатки, где в параметрах виртуальной таблицы указывается ЕПСБУОстатки.Субконто1 в (Выбрать ОС из ТаблицаОС.ОС). Не забудьте указать порядок субконто используя специальный параметр. Результат помещаете в ТаблицаОстатковОС.
3. Третий пакетный запрос обращается к РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто, где в параметрах виртуальной таблицы указывается ЕПСБУДвиженияССубконто.Субконто1 в (Выбрать ОС из ТаблицаОС.ОС). Не забудьте указать порядок субконто используя специальный параметр. Результат помещаете в ТаблицаДвиженийОС.
4. В четвертом запросе к ТаблицаОС присоединяете ТаблицаОстатковОС, ТаблицаДвиженийОС, Справочник.ИнвентарныеНомераОС.
2. Второй пакетный запрос обращается к РегистрБухгалтерии.ЕПСБУ.Остатки, где в параметрах виртуальной таблицы указывается ЕПСБУОстатки.Субконто1 в (Выбрать ОС из ТаблицаОС.ОС). Не забудьте указать порядок субконто используя специальный параметр. Результат помещаете в ТаблицаОстатковОС.
3. Третий пакетный запрос обращается к РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто, где в параметрах виртуальной таблицы указывается ЕПСБУДвиженияССубконто.Субконто1 в (Выбрать ОС из ТаблицаОС.ОС). Не забудьте указать порядок субконто используя специальный параметр. Результат помещаете в ТаблицаДвиженийОС.
4. В четвертом запросе к ТаблицаОС присоединяете ТаблицаОстатковОС, ТаблицаДвиженийОС, Справочник.ИнвентарныеНомераОС.
Это вообще кривой запрос и все правильно, что он выполняется так долго! Советую почитать статьи по оптимизации изучить ээтот процес.
А так на форуме не всегда будут спасать. Поскольку в постулате оптимальности о котором даже гласит 1С нельзя соединять виртуальные таблицы с физической.
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки КАК ЕПСБУОстатки
| ПО ОсновныеСредства.Ссылка = ЕПСБУОстатки.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто КАК ЕПСБУДвиженияССубконто
| ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
Поставьте себе же вопрос, а что такое вирутальная таблица и если вы знаете на этот ответ тоогда думаю поймете ошибку. Если Нет - советую обзавестись курсами по запросам, не плохо на курсы1с.ру. Удачи.
А так на форуме не всегда будут спасать. Поскольку в постулате оптимальности о котором даже гласит 1С нельзя соединять виртуальные таблицы с физической.
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки КАК ЕПСБУОстатки
| ПО ОсновныеСредства.Ссылка = ЕПСБУОстатки.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто КАК ЕПСБУДвиженияССубконто
| ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
Поставьте себе же вопрос, а что такое вирутальная таблица и если вы знаете на этот ответ тоогда думаю поймете ошибку. Если Нет - советую обзавестись курсами по запросам, не плохо на курсы1с.ру. Удачи.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот