Имя: Пароль:
1C
1С v8
Долго отрабатывает запрос
,
0 Miss1C
 
25.12.12
13:01
Запрос отрабатывает минуту в чем проблема?

ВЫБРАТЬ
   ТоварыПереданныеОстатки.Контрагент,
   ТоварыПереданныеОстатки.ТорговаяТочка,
   ТоварыПереданныеОстатки.Номенклатура,
   ТоварыПереданныеОстатки.ХарактеристикаНоменклатуры,
   ВложенныйЗапрос.Представление КАК АдресТорговойТочки,
   МаршрутныйЛистТорговогоПредставителя.Ссылка КАК МаршрутныйЛистТорговогоПредставителя,
   МаршрутныйЛистЭкспедитора.Ссылка КАК МаршрутныйЛистЭкспедитора,
   МаршрутыТорговыхПредставителей.Ссылка КАК МаршрутыТорговыхПредставителей,
   МаршрутыЭкспедиторов.Ссылка КАК МаршрутыЭкспедиторов,
   ТоварыПереданныеОстатки.КоличествоОстаток КАК КонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыПереданные.Остатки(&КонецПериода, ) КАК ТоварыПереданныеОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           КонтактнаяИнформация.Объект КАК Объект,
           КонтактнаяИнформация.Представление КАК Представление,
           КонтактнаяИнформация.Вид КАК Вид
       ИЗ
           РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ГДЕ
           КонтактнаяИнформация.Объект ССЫЛКА Справочник.ТорговыеТочки
           И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресТорговойТочки)) КАК ВложенныйЗапрос
       ПО ТоварыПереданныеОстатки.ТорговаяТочка = ВложенныйЗапрос.Объект
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистТорговогоПредставителя.Маршрут КАК МаршрутныйЛистТорговогоПредставителя
       ПО ТоварыПереданныеОстатки.ТорговаяТочка = МаршрутныйЛистТорговогоПредставителя.ТорговаяТочка
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистЭкспедитора.Маршрут КАК МаршрутныйЛистЭкспедитора
       ПО ТоварыПереданныеОстатки.ТорговаяТочка = МаршрутныйЛистЭкспедитора.ТорговаяТочка
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МаршрутыТорговыхПредставителей.Посещения КАК МаршрутыТорговыхПредставителей
       ПО ТоварыПереданныеОстатки.ТорговаяТочка = МаршрутыТорговыхПредставителей.ТорговаяТочка
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МаршрутыЭкспедиторов.Посещения КАК МаршрутыЭкспедиторов
       ПО ТоварыПереданныеОстатки.ТорговаяТочка = МаршрутыЭкспедиторов.ТорговаяТочка
1 Гефест
 
25.12.12
13:06
Небось еще и выгребает кучу ненужного?
2 Miss1C
 
25.12.12
13:08
(1) Все нужное
3 Жан Пердежон
 
25.12.12
13:09
база файловая, рлс, индексов нет
4 Miss1C
 
25.12.12
13:11
(3)Файловая, рлс и индексов нет
5 Miss1C
 
25.12.12
13:12
Вот с регистра партии товаров переданные в секунды отрабатывает, но там нет измерения торговая точка.


ВЫБРАТЬ
   ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.Контрагент КАК Контрагент,
   ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка КАК ТорговаяТочка,
   ВложенныйЗапрос.Представление КАК АдресТорговойТочки,
   ПартииТоваровПереданныеОстаткиИОбороты.Номенклатура,
   ПартииТоваровПереданныеОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток,
   ПартииТоваровПереданныеОстаткиИОбороты.ХарактеристикаНоменклатуры,
   МаршрутныйЛистТорговогоПредставителя.Ссылка КАК МаршрутныйЛистТорговогоПредставителя,
   МаршрутныйЛистЭкспедитора.Ссылка КАК МаршрутныйЛистЭкспедитора,
   МаршрутыТорговыхПредставителей.Ссылка КАК МаршрутыТорговыхПредставителей,
   МаршрутыЭкспедиторов.Ссылка КАК МаршрутыЭкспедиторов
ИЗ
   РегистрНакопления.ПартииТоваровПереданные.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ПартииТоваровПереданныеОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           КонтактнаяИнформация.Объект КАК Объект,
           КонтактнаяИнформация.Представление КАК Представление,
           КонтактнаяИнформация.Вид КАК Вид
       ИЗ
           РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ГДЕ
           КонтактнаяИнформация.Объект ССЫЛКА Справочник.ТорговыеТочки
           И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресТорговойТочки)) КАК ВложенныйЗапрос
       ПО ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка = ВложенныйЗапрос.Объект
       {ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистТорговогоПредставителя.Маршрут КАК МаршрутныйЛистТорговогоПредставителя
       ПО ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка = МаршрутныйЛистТорговогоПредставителя.ТорговаяТочка}
       {ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛистЭкспедитора.Маршрут КАК МаршрутныйЛистЭкспедитора
       ПО ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка = МаршрутныйЛистЭкспедитора.ТорговаяТочка}
       {ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МаршрутыТорговыхПредставителей.Посещения КАК МаршрутыТорговыхПредставителей
       ПО ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка = МаршрутыТорговыхПредставителей.ТорговаяТочка}
       {ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МаршрутыЭкспедиторов.Посещения КАК МаршрутыЭкспедиторов
       ПО ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка = МаршрутыЭкспедиторов.ТорговаяТочка}
{ГДЕ
   (МаршрутныйЛистТорговогоПредставителя.Ссылка В (&МаршрутныйЛистТорговогоПредставителя)
           И МаршрутныйЛистЭкспедитора.Ссылка В (&МаршрутныйЛистЭкспедитора)
           И МаршрутыТорговыхПредставителей.Ссылка В (&Ссылка)
           И МаршрутыЭкспедиторов.Ссылка В (&Ссылка))}
6 salvator
 
25.12.12
13:13
Попробуй перекроить запрос с использованием ВТ.
7 Fragster
 
гуру
25.12.12
13:13
во всякие тч документов влепи индекс по ТорговаяТочка
8 Aprobator
 
25.12.12
13:14
(5) последнее ГДЕ решает.
9 Classic
 
25.12.12
13:14
Зачем подзапрос в первом соединении?
10 Fragster
 
гуру
25.12.12
13:15
(9) чтобы индекс по объекту не работал
11 Miss1C
 
25.12.12
13:17
Сейчас попробую в соединениях добавить  {
12 КуплюКровать
 
25.12.12
13:18
такая стройная девушка и такие кривые запросы пишет )))
13 Axel2009
 
25.12.12
13:18
(0) в таких запросах обычно еще добавляют после выбрать слово одно
14 Miss1C
 
25.12.12
13:19
(12) Переделываю)
15 Miss1C
 
25.12.12
13:23
Вся проблема в фигурных скобках, которые в соединениях были
16 dmpl
 
25.12.12
13:23
(0) Дык у тебя там на 1 товар в торговой точке повесится куча документов (если по 2 документа каждого вида - то аж 16 строк по 1 позиции 1 торговой точки будет).
17 Axel2009
 
25.12.12
13:26
(15) это не проблема фигурных скобок, а проблема, написанная в (1)
18 Ymryn
 
25.12.12
13:41
Не используйте левое соеденение с вложенными запросами. Лучше делать пакетник. А в данном случае вообще можно простым левым обойтись.

ВЫБРАТЬ
   ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.Контрагент КАК Контрагент,
   ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка КАК ТорговаяТочка,
   ВложенныйЗапрос.Представление КАК АдресТорговойТочки
   ...
 ИЗ
   РегистрНакопления.ПартииТоваровПереданные.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ПартииТоваровПереданныеОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИ РегистрСведений.КонтактнаяИнформация КАК ВложенныйЗапрос
          ПО КонтактнаяИнформация.Объект = ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка
           И КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресТорговойТочки)) КАК ВложенныйЗапрос
19 Ymryn
 
25.12.12
13:43
малость опечатался. И как-то криво встроилось :(
20 Ymryn
 
25.12.12
13:47
upd: исправил косяки
ВЫБРАТЬ
   ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.Контрагент КАК Контрагент,
   ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка КАК ТорговаяТочка,
   ВложенныйЗапрос.Представление КАК АдресТорговойТочки
   ...
 ИЗ
   РегистрНакопления.ПартииТоваровПереданные.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ПартииТоваровПереданныеОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ВложенныйЗапрос
          ПО ВложенныйЗапрос.Объект = ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка
           И ВложенныйЗапрос.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресТорговойТочки)
   ...
21 tdm
 
25.12.12
13:51
(0) перенести все условия из раздела ГДЕ в место соединения таблиц, т.е. если пользуетесь конструктором запросов - с закладки условия на закладку связи)
22 tdm
 
25.12.12
13:51
(20) +1)
23 Ymryn
 
25.12.12
13:55
А вообще очень интересует, что мы хотим получить (т.е для чего этот запрос делается). Ибо двойное разыменование (прим: ПартииТоваровПереданныеОстаткиИОбороты.ДокументПередачи.ТорговаяТочка) - не самый хороший знак. Может возможно решить вопрос как-то проще.
24 Serginio1
 
25.12.12
14:00
У тебя на каждую номенклатуру будет искать торговые точки и посещения. Каков размер выборки?
25 samozvanec
 
25.12.12
14:19
(0) вроде доступны уже реквизиты в параметрах виртуальных таблиц РС, а вы всё ГДЕ
26 Axel2009
 
25.12.12
14:26
(0) ну давай забацай виртуальную таблицу для РС, который не периодический
27 Axel2009
 
25.12.12
14:26
(26) к (25) =)