Имя: Пароль:
1C
1С v8
Запрос
,
0 Arutynov
 
31.05.13
08:27
Имеется запрос. Слишком долго думает. Если что-то не так или глупо написано скажите.
Запрос=Новый запрос;
   Запрос.Текст="ВЫБРАТЬ
                |    ВложенныйЗапрос.Документ,
                |    ВложенныйЗапрос.номер,
                |    ВложенныйЗапрос.дата,
                |    ВложенныйЗапрос.КлКод,
                |    ВложенныйЗапрос.Контрагент,
                |    ВложенныйЗапрос.АдресДоставки,
                |    ВложенныйЗапрос.Водитель,
                |    ВложенныйЗапрос.Автомобиль,
                |    ВложенныйЗапрос.едизм,
                |    ВложенныйЗапрос.Сумма,
                |    ВложенныйЗапрос.Количество,
                |    ВложенныйЗапрос.Вес,
                |    ВложенныйЗапрос.ТП,
                |    ВложенныйЗапрос.телефон,
                |    ВложенныйЗапрос.Квадрат,
                |    ВложенныйЗапрос.расписание,
                |    ВложенныйЗапрос.Дополнение
                |ИЗ
                |    (ВЫБРАТЬ
                |        РеализацияТоваровУслуг.Ссылка КАК Документ,
                |        РеализацияТоваровУслуг.Номер КАК номер,
                |        РеализацияТоваровУслуг.Дата КАК дата,
                |        РеализацияТоваровУслуг.Контрагент.Код КАК КлКод,
                |        РеализацияТоваровУслуг.Контрагент КАК Контрагент,
                |        ВЫРАЗИТЬ(РеализацияТоваровУслуг.АдресДоставки КАК СТРОКА(200)) КАК АдресДоставки,
                |        РеализацияТоваровУслуг.Водитель КАК Водитель,
                |        РеализацияТоваровУслуг.Водитель.Автомобиль КАК Автомобиль,
                |        РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК едизм,
                |        РеализацияТоваровУслугТовары.Сумма КАК Сумма,
                |        РеализацияТоваровУслугТовары.Количество КАК Количество,
                |        РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Вес КАК Вес,
                |        РеализацияТоваровУслуг.ДоговорКонтрагента.Менеджер.Наименование КАК ТП,
                |        РеализацияТоваровУслуг.ДоговорКонтрагента.Менеджер.Телефон КАК телефон,
                |        ЗначенияСвойствОбъектов.Значение КАК Квадрат,
                |        ВЫРАЗИТЬ(РеализацияТоваровУслуг.Контрагент.РасписаниеРаботыСтрокой КАК СТРОКА(200)) КАК расписание,
                |        ВЫРАЗИТЬ(РеализацияТоваровУслуг.ДополнениеКАдресуДоставки КАК СТРОКА(200)) КАК Дополнение
                |    ИЗ
                |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                |            ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                |                ПО РеализацияТоваровУслуг.ДоговорКонтрагента.Ссылка = ЗначенияСвойствОбъектов.Объект.Ссылка
                |            ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
                |    ГДЕ
                |        РеализацияТоваровУслуг.Проведен = ИСТИНА
                |    
                |    ОБЪЕДИНИТЬ
                |    
                |    ВЫБРАТЬ
                |        ЗаказПокупателя.Ссылка,
                |        ЗаказПокупателя.Номер,
                |        ЗаказПокупателя.Дата,
                |        ЗаказПокупателя.Контрагент.Код,
                |        ЗаказПокупателя.Контрагент,
                |        ВЫРАЗИТЬ(ЗаказПокупателя.АдресДоставки КАК СТРОКА(200)),
                |        ЗаказПокупателя.Водитель,
                |        ЗаказПокупателя.Водитель.Автомобиль,
                |        ЗаказПокупателяТовары.ЕдиницаИзмерения,
                |        ЗаказПокупателяТовары.Сумма,
                |        ЗаказПокупателяТовары.Количество,
                |        ЗаказПокупателяТовары.ЕдиницаИзмерения.Вес,
                |        ЗаказПокупателя.ДоговорКонтрагента.Менеджер.Наименование,
                |        ЗаказПокупателя.ДоговорКонтрагента.Менеджер.Телефон,
                |        ЗначенияСвойствОбъектов.Значение,
                |        ВЫРАЗИТЬ(ЗаказПокупателя.Контрагент.РасписаниеРаботыСтрокой КАК СТРОКА(200)),
                |        ВЫРАЗИТЬ(ЗаказПокупателя.Контрагент.ДополнительноеОписание КАК СТРОКА(200))
                |    ИЗ
                |        Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
                |            ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
                |                ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                |                ПО ЗаказПокупателя.ДоговорКонтрагента.Ссылка = ЗначенияСвойствОбъектов.Объект.Ссылка
                |            ПО ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка
                |    ГДЕ
                |        ЗаказПокупателя.Проведен = ЛОЖЬ) КАК ВложенныйЗапрос
                |ГДЕ
                |    ВложенныйЗапрос.дата МЕЖДУ &Дат И &Дат1"+?(Водители.Пустая()=1,"", "И ЗаказПокупателя.Водитель = &Водитель")+"
                |УПОРЯДОЧИТЬ ПО
                |Дата";
1 zak555
 
31.05.13
08:29
смотри регистр заказов,  а не документы
2 Arutynov
 
31.05.13
08:35
а кроме
3 Рэйв
 
31.05.13
08:37
ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя

Это зачем?

У тебя в .Товары есть поле ссылка
4 Mitriy
 
31.05.13
08:38
ЗаказПокупателя.ДоговорКонтрагента.Ссылка = ЗначенияСвойствОбъектов.Объект.Ссылка

отрубить хвост по самые уши...
5 Рэйв
 
31.05.13
08:38
из нее и бери договор сразу
6 Cyberhawk
 
31.05.13
08:41
1. Вместо
"ПО РеализацияТоваровУслуг.ДоговорКонтрагента.Ссылка = ЗначенияСвойствОбъектов.Объект.Ссылка"
напиши
"ПО РеализацияТоваровУслуг.ДоговорКонтрагента.Ссылка = выразить(ЗначенияСвойствОбъектов.Объект как справочник.договорыконтрагентов).Ссылка"

2. Вместо
"ПО ЗаказПокупателя.ДоговорКонтрагента.Ссылка = ЗначенияСвойствОбъектов.Объект.Ссылка"
напиши
"ПО ЗаказПокупателя.ДоговорКонтрагента.Ссылка = выразить(ЗначенияСвойствОбъектов.Объект как справочник.договорыконтрагентов).Ссылка"
7 Arutynov
 
31.05.13
08:42
(6) ускорит? Или грамотнее так
8 Mitriy
 
31.05.13
08:43
(7) на фига к ссылке обращаешься? Пиши
ЗаказПокупателя.ДоговорКонтрагента = ЗначенияСвойствОбъектов.Объект
9 Cyberhawk
 
31.05.13
08:43
(7) Меньше слов, больше дела
10 Рэйв
 
31.05.13
08:43
(7)Без выразить у тебя неявное соединение со всеми таблицами составного типа .Объект
11 Cyberhawk
 
31.05.13
08:44
(8) "на фига к ссылке обращаешься" а в чем разница в запросе между "ЗначенияСвойствОбъектов.Объект" и "ЗначенияСвойствОбъектов.Объект.Ссылка"? СУБД быстрее выдаст в первом случае что ли?
12 Рэйв
 
31.05.13
08:46
(11).Ссылка лезет в таблицу и ищет ссылку.
А без нее Объект уже ее хранит и незачем лезть к базе
13 Arutynov
 
31.05.13
08:46
(6) благодарю помогло
14 Mitriy
 
31.05.13
08:47
(11) не поверишь...
2 + 2 = 3.9999999999999999999999999999999...