Медленно выполняется запрос. Как можно ускорить выполнение запроса?

1. user876792 17.07.18 13:29 Сейчас в теме
        "ВЫБРАТЬ
        |	ОсновныеСредства.Ссылка,
        |	ОсновныеСредства.КВД,
        |	ОсновныеСредства.СчетУчета,
        |	ОсновныеСредства.КБК,
        |	ОсновныеСредства.КОСГУСчетаАмортизации,
        |	ИнвентарныеНомераОС.Ссылка КАК ИнвентарныйНомер,
        |	ЕПСБУОстатки.КоличествоОстаток,
        |	ЕПСБУДвиженияССубконто.Сумма
        |ИЗ
        |	Справочник.ОсновныеСредства КАК ОсновныеСредства
        |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИнвентарныеНомераОС КАК ИнвентарныеНомераОС
        |		ПО ОсновныеСредства.Ссылка = ИнвентарныеНомераОС.ОС
        |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки КАК ЕПСБУОстатки
        |		ПО ОсновныеСредства.Ссылка = ЕПСБУОстатки.Субконто2
        |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто КАК ЕПСБУДвиженияССубконто
        |		ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
        |ГДЕ
        |	ОсновныеСредства.Ссылка = &Объект";
Показать


Проблема где-то в
ЕПСБУДвиженияССубконто.Сумма
ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2
Если выкинуть это из запроса, то выполняется достаточно быстро. В поле СубконтоДт2 составной тип данных на 67 галочек, 60 из которых документы и справочники в том числе и ОсновныеСредства. Так понимаю причина в этом. Что можно сделать?
+
По теме из базы знаний
Найденные решения
20. Sashares 34 17.07.18 22:16 Сейчас в теме
(19) не то. То что вы прописали, означает, что из регистра бухгалтерии надо выбрать все записи, у которых субконто2 имеет тип Справочник.ОсновныеСредства. На отбор по конкретной ссылке это никак не влияет. Ведь вам не нужны все записи, а нужно только по конкретному ОС.
Для этого нужно прописать отбор по этому ос:
Субконто2  = &Объект

и
СубконтоДт2  = &Объект
соответственно.
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alexei_Siva 182 17.07.18 13:33 Сейчас в теме
В таблице ЕПСБУДвиженияССубконто использовать для поля СубконтоДт2 команду Выразить(СубконтоДт2 как Справочник.ОсновныеСредства)
3. user876792 17.07.18 14:15 Сейчас в теме
(2) Не пойму как это сделать. В параметрах виртуальной таблицы?
+
4. V.Stavinsky 271 17.07.18 14:20 Сейчас в теме
добавьте "ЕПСБУОстатки.Субконто2.Ссылка ССЫЛКА Справочник.ОсновныеСредства" в условиях виртуальной таблицы
5. user876792 17.07.18 14:41 Сейчас в теме
(4) СубконтоДт2 ССЫЛКА Справочник.ОсновныеСредства - быстрее стал выполняться запрос
В остатках тоже добавил, но разницы в скорости нет, хотя там тоже такой же составной тип.
+
6. Sashares 34 17.07.18 14:50 Сейчас в теме
(5)В параметрах витруальных таблиц РБ добавьте отбор по субконто.
+
17. user876792 17.07.18 18:15 Сейчас в теме
(6) Что такое РБ и где там и как устанавливать отбор?
+
18. Sashares 34 17.07.18 18:20 Сейчас в теме
(17)РБ - регистр бухгалтерии. Устанавливать отбор - в параметрах вируальной таблицы Остатки и ДвиженияССубконто.
+
19. user876792 17.07.18 18:58 Сейчас в теме
(18) Ну так я в этих параметрах в Условие и прописал Субконто2 ССЫЛКА Справочник.ОсновныеСредства и СубконтоДт2 ССЫЛКА Справочник.ОсновныеСредства.
+
20. Sashares 34 17.07.18 22:16 Сейчас в теме
(19) не то. То что вы прописали, означает, что из регистра бухгалтерии надо выбрать все записи, у которых субконто2 имеет тип Справочник.ОсновныеСредства. На отбор по конкретной ссылке это никак не влияет. Ведь вам не нужны все записи, а нужно только по конкретному ОС.
Для этого нужно прописать отбор по этому ос:
Субконто2  = &Объект

и
СубконтоДт2  = &Объект
соответственно.
+
7. Sashares 34 17.07.18 14:53 Сейчас в теме
(4)
ЕПСБУОстатки.Субконто2.Ссылка 
странный совет.
Вы предлагаете соединиться со всеми таблицами составного типа Субконто2. Зачем?
+
9. spezc 782 17.07.18 15:22 Сейчас в теме
(4) не стоит, лучше посмотрите про порядок субконто.
+
8. spezc 782 17.07.18 15:21 Сейчас в теме
1. Первый пакетный запрос обращается к Справочник.ОсновныеСредства с условием ОсновныеСредства.Ссылка = &Объект. Результат помещается в таблицу ТаблицаОС
2. Второй пакетный запрос обращается к РегистрБухгалтерии.ЕПСБУ.Остатки, где в параметрах виртуальной таблицы указывается ЕПСБУОстатки.Субконто1 в (Выбрать ОС из ТаблицаОС.ОС). Не забудьте указать порядок субконто используя специальный параметр. Результат помещаете в ТаблицаОстатковОС.
3. Третий пакетный запрос обращается к РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто, где в параметрах виртуальной таблицы указывается ЕПСБУДвиженияССубконто.Субконто1 в (Выбрать ОС из ТаблицаОС.ОС). Не забудьте указать порядок субконто используя специальный параметр. Результат помещаете в ТаблицаДвиженийОС.
4. В четвертом запросе к ТаблицаОС присоединяете ТаблицаОстатковОС, ТаблицаДвиженийОС, Справочник.ИнвентарныеНомераОС.
+
10. Sashares 34 17.07.18 15:23 Сейчас в теме
(8)
1. Первый пакетный запрос обращается к Справочник.ОсновныеСредства с условием ОсновныеСредства.Ссылка = &Объект. Результат помещается в таблицу ТаблицаОС

Выбрать ссылку, где ссылка = ссылка? =)
+
11. spezc 782 17.07.18 15:24 Сейчас в теме
12. Sashares 34 17.07.18 15:29 Сейчас в теме
(11)Если нужны данные только по 1 ОС, кажется, нет особого смысла выбирать его ссылку во временную таблицу, и делать отбор по этой таблице в РБ.
То есть первый пакетный запрос к справочнику ОС по сути не нужен, т.к. отбор в РБ можно сделать по параметру.
+
13. spezc 782 17.07.18 15:34 Сейчас в теме
(12) ну если убрать первый запрос, кто к чему вы будете присоединять результаты запросов ЕПСБУОстатки и ЕПСБУДвиженияССубконто?
+
14. Sashares 34 17.07.18 15:37 Сейчас в теме
15. user876792 17.07.18 18:09 Сейчас в теме
(8)
Не забудьте указать порядок субконто используя специальный параметр
где указывается этот порядок и что это за специальный параметр?
+
16. user633533_encantado 11 17.07.18 18:11 Сейчас в теме
(8) Если нужны данные только по одному ОС, то логично наложить отбор по этому ОС на все таблицы, с которыми работает запрос.
+
21. logarifm 1119 18.07.18 23:47 Сейчас в теме
Это вообще кривой запрос и все правильно, что он выполняется так долго! Советую почитать статьи по оптимизации изучить ээтот процес.

А так на форуме не всегда будут спасать. Поскольку в постулате оптимальности о котором даже гласит 1С нельзя соединять виртуальные таблицы с физической.

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки КАК ЕПСБУОстатки
| ПО ОсновныеСредства.Ссылка = ЕПСБУОстатки.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ДвиженияССубконто КАК ЕПСБУДвиженияССубконто
| ПО ОсновныеСредства.Ссылка = ЕПСБУДвиженияССубконто.СубконтоДт2

Поставьте себе же вопрос, а что такое вирутальная таблица и если вы знаете на этот ответ тоогда думаю поймете ошибку. Если Нет - советую обзавестись курсами по запросам, не плохо на курсы1с.ру. Удачи.
Fox-trot; +1
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот