Имя: Пароль:
1C
1С v8
Отчет.
0 4666
 
23.05.12
19:14
Есть периодический РС "Менеджеры контрагентов" (контрагент, менеджер).
Нужен отчет по отгрузкам в разрезе менеджеров. Т.е. берется отгрузка, в данном РС смотрится кто был тогда манагером и все это выводится в отчет. Как это лучше организовать?
Попробывал через вычисляемое поле в скд - отчет формируется раз в 20 медленнее.
1 ProProg
 
23.05.12
19:25
соединение по дате с периодом РС
2 ProProg
 
23.05.12
19:26
а вообще тупизна манагеров так заводить. манагеры должны быть в сделках.
3 ProProg
 
23.05.12
19:26
РС разве что нужен для заполнения
4 ProProg
 
23.05.12
19:27
ПО
ЛяляляПРодажа.ДокументПРодажи.ДатаДок = РСляляля.Период
но один рен это все будет неоптимальным по сравнению с реквизитом в доке
5 shuhard
 
23.05.12
20:15
(0)[Попробывал через вычисляемое поле в скд - отчет формируется раз в 20 медленнее.]
пипец
надо же догадаться вызывать запрос в цикле
6 Мигрень
 
23.05.12
20:56
Через вычисляемое поле в СКД? Вот затейники!
7 4666
 
23.05.12
22:37
Всем спасибо. Ошибку осознал)
8 4666
 
24.05.12
02:11
Навоял запрос.
Теперь вопрос как его оптимизировать?
ВЫБРАТЬ
   ВложенныйЗапрос.Ссылка,
   ВложенныйЗапрос.Клиент,
   ВложенныйЗапрос.Менеджер,
   ВложенныйЗапрос.Товар,
   ВложенныйЗапрос.ЕдИзм,
   ВложенныйЗапрос.Коэффициент,
   ВложенныйЗапрос.Количество,
   ВложенныйЗапрос.Цена КАК Цена,
   МАКСИМУМ(ЕСТЬNULL(ПрайсЛисты.Цена, 0)) КАК ЦенаПоПрайсу,
   ВложенныйЗапрос.Сумма,
   ВложенныйЗапрос.СуммаНДС,
   ВложенныйЗапрос.Всего,
   ВЫБОР
       КОГДА ПрайсЛисты.Цена ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ ВложенныйЗапрос.Цена - ПрайсЛисты.Цена
   КОНЕЦ КАК Выручка
ИЗ
   (ВЫБРАТЬ
       ВложенныйЗапрос.Ссылка КАК Ссылка,
       ВложенныйЗапрос.Клиент КАК Клиент,
       МенеджерыКонтрагентов.Менеджер КАК Менеджер,
       РасходнаяНакладнаяТовары.Товар КАК Товар,
       МАКСИМУМ(ПрайсЛисты.Период) КАК Период,
       РасходнаяНакладнаяТовары.ЕдИзм КАК ЕдИзм,
       РасходнаяНакладнаяТовары.Коэффициент КАК Коэффициент,
       РасходнаяНакладнаяТовары.Количество КАК Количество,
       РасходнаяНакладнаяТовары.Цена КАК Цена,
       РасходнаяНакладнаяТовары.Сумма КАК Сумма,
       РасходнаяНакладнаяТовары.СуммаНДС КАК СуммаНДС,
       РасходнаяНакладнаяТовары.Всего КАК Всего,
       РасходнаяНакладнаяТовары.НомерСтроки КАК НомерСтроки
   ИЗ
       (ВЫБРАТЬ
           РасходнаяНакладная.Ссылка КАК Ссылка,
           РасходнаяНакладная.Клиент КАК Клиент,
           МАКСИМУМ(МенеджерыКонтрагентов.Период) КАК Период
       ИЗ
           Документ.РасходнаяНакладная КАК РасходнаяНакладная
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МенеджерыКонтрагентов КАК МенеджерыКонтрагентов
               ПО РасходнаяНакладная.Клиент = МенеджерыКонтрагентов.Контрагент
                   И РасходнаяНакладная.Дата >= МенеджерыКонтрагентов.Период
       ГДЕ
           РасходнаяНакладная.Клиент = &Клиент
       
       СГРУППИРОВАТЬ ПО
           РасходнаяНакладная.Ссылка,
           РасходнаяНакладная.Клиент) КАК ВложенныйЗапрос
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МенеджерыКонтрагентов КАК МенеджерыКонтрагентов
           ПО ВложенныйЗапрос.Клиент = МенеджерыКонтрагентов.Контрагент
               И ВложенныйЗапрос.Период = МенеджерыКонтрагентов.Период
           ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрайсЛисты КАК ПрайсЛисты
               ПО РасходнаяНакладнаяТовары.Товар = ПрайсЛисты.Номенклатура
                   И РасходнаяНакладнаяТовары.Ссылка.Дата >= ПрайсЛисты.Период
           ПО ВложенныйЗапрос.Ссылка = РасходнаяНакладнаяТовары.Ссылка
   ГДЕ
       ПрайсЛисты.ВидПрайса = &ВидПрайса
   
   СГРУППИРОВАТЬ ПО
       ВложенныйЗапрос.Ссылка,
       ВложенныйЗапрос.Клиент,
       МенеджерыКонтрагентов.Менеджер,
       РасходнаяНакладнаяТовары.Товар,
       РасходнаяНакладнаяТовары.ЕдИзм,
       РасходнаяНакладнаяТовары.Коэффициент,
       РасходнаяНакладнаяТовары.Количество,
       РасходнаяНакладнаяТовары.Цена,
       РасходнаяНакладнаяТовары.Сумма,
       РасходнаяНакладнаяТовары.СуммаНДС,
       РасходнаяНакладнаяТовары.Всего,
       РасходнаяНакладнаяТовары.НомерСтроки) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрайсЛисты КАК ПрайсЛисты
       ПО ВложенныйЗапрос.Период = ПрайсЛисты.Период
           И ВложенныйЗапрос.Товар = ПрайсЛисты.Номенклатура
ГДЕ
   ПрайсЛисты.ВидПрайса = &ВидПрайса

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Клиент,
   ВложенныйЗапрос.Ссылка,
   ВложенныйЗапрос.Менеджер,
   ВложенныйЗапрос.Товар,
   ВложенныйЗапрос.ЕдИзм,
   ВложенныйЗапрос.Коэффициент,
   ВложенныйЗапрос.Количество,
   ВложенныйЗапрос.Цена,
   ВложенныйЗапрос.Сумма,
   ВложенныйЗапрос.СуммаНДС,
   ВложенныйЗапрос.Всего,
   ВЫБОР
       КОГДА ПрайсЛисты.Цена ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ ВложенныйЗапрос.Цена - ПрайсЛисты.Цена
   КОНЕЦ
9 4666
 
24.05.12
02:17
ВЫБРАТЬ
   ВложенныйЗапрос.Ссылка,
   ВложенныйЗапрос.Клиент,
   ВложенныйЗапрос.Менеджер,
   ВложенныйЗапрос.Товар,
   ВложенныйЗапрос.ЕдИзм,
   ВложенныйЗапрос.Коэффициент,
   ВложенныйЗапрос.Количество,
   ВложенныйЗапрос.Цена КАК Цена,
   МАКСИМУМ(ЕСТЬNULL(ПрайсЛисты.Цена, 0)) КАК ЦенаПоПрайсу,
   ВложенныйЗапрос.Сумма,
   ВложенныйЗапрос.СуммаНДС,
   ВложенныйЗапрос.Всего,
   ВЫБОР
       КОГДА ПрайсЛисты.Цена ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ ВложенныйЗапрос.Цена - ПрайсЛисты.Цена
   КОНЕЦ КАК Выручка
ИЗ
   (ВЫБРАТЬ
       ВложенныйЗапрос.Ссылка КАК Ссылка,
       ВложенныйЗапрос.Клиент КАК Клиент,
       МенеджерыКонтрагентов.Менеджер КАК Менеджер,
       РасходнаяНакладнаяТовары.Товар КАК Товар,
       МАКСИМУМ(ПрайсЛисты.Период) КАК Период,
       РасходнаяНакладнаяТовары.ЕдИзм КАК ЕдИзм,
       РасходнаяНакладнаяТовары.Коэффициент КАК Коэффициент,
       РасходнаяНакладнаяТовары.Количество КАК Количество,
       РасходнаяНакладнаяТовары.Цена КАК Цена,
       РасходнаяНакладнаяТовары.Сумма КАК Сумма,
       РасходнаяНакладнаяТовары.СуммаНДС КАК СуммаНДС,
       РасходнаяНакладнаяТовары.Всего КАК Всего,
       РасходнаяНакладнаяТовары.НомерСтроки КАК НомерСтроки
   ИЗ
       (ВЫБРАТЬ
           РасходнаяНакладная.Ссылка КАК Ссылка,
           РасходнаяНакладная.Клиент КАК Клиент,
           МАКСИМУМ(МенеджерыКонтрагентов.Период) КАК Период
       ИЗ
           Документ.РасходнаяНакладная КАК РасходнаяНакладная
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МенеджерыКонтрагентов КАК МенеджерыКонтрагентов
               ПО РасходнаяНакладная.Клиент = МенеджерыКонтрагентов.Контрагент
                   И РасходнаяНакладная.Дата >= МенеджерыКонтрагентов.Период
       ГДЕ
           РасходнаяНакладная.Клиент = &Клиент
       
       СГРУППИРОВАТЬ ПО
           РасходнаяНакладная.Ссылка,
           РасходнаяНакладная.Клиент) КАК ВложенныйЗапрос
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МенеджерыКонтрагентов КАК МенеджерыКонтрагентов
           ПО ВложенныйЗапрос.Клиент = МенеджерыКонтрагентов.Контрагент
               И ВложенныйЗапрос.Период = МенеджерыКонтрагентов.Период
           ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрайсЛисты КАК ПрайсЛисты
               ПО РасходнаяНакладнаяТовары.Товар = ПрайсЛисты.Номенклатура
                   И РасходнаяНакладнаяТовары.Ссылка.Дата >= ПрайсЛисты.Период
           ПО ВложенныйЗапрос.Ссылка = РасходнаяНакладнаяТовары.Ссылка
   ГДЕ
       ПрайсЛисты.ВидПрайса = &ВидПрайса
   
   СГРУППИРОВАТЬ ПО
       ВложенныйЗапрос.Ссылка,
       ВложенныйЗапрос.Клиент,
       МенеджерыКонтрагентов.Менеджер,
       РасходнаяНакладнаяТовары.Товар,
       РасходнаяНакладнаяТовары.ЕдИзм,
       РасходнаяНакладнаяТовары.Коэффициент,
       РасходнаяНакладнаяТовары.Количество,
       РасходнаяНакладнаяТовары.Цена,
       РасходнаяНакладнаяТовары.Сумма,
       РасходнаяНакладнаяТовары.СуммаНДС,
       РасходнаяНакладнаяТовары.Всего,
       РасходнаяНакладнаяТовары.НомерСтроки) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрайсЛисты КАК ПрайсЛисты
       ПО ВложенныйЗапрос.Период = ПрайсЛисты.Период
           И ВложенныйЗапрос.Товар = ПрайсЛисты.Номенклатура
ГДЕ
   ПрайсЛисты.ВидПрайса = &ВидПрайса

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Клиент,
   ВложенныйЗапрос.Ссылка,
   ВложенныйЗапрос.Менеджер,
   ВложенныйЗапрос.Товар,
   ВложенныйЗапрос.ЕдИзм,
   ВложенныйЗапрос.Коэффициент,
   ВложенныйЗапрос.Количество,
   ВложенныйЗапрос.Цена,
   ВложенныйЗапрос.Сумма,
   ВложенныйЗапрос.СуммаНДС,
   ВложенныйЗапрос.Всего,
   ВЫБОР
       КОГДА ПрайсЛисты.Цена ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ ВложенныйЗапрос.Цена - ПрайсЛисты.Цена
   КОНЕЦ
10 4666
 
24.05.12
02:18
что-то движок не распознает весь текст как код(
11 SeraFim
 
24.05.12
03:06
чуть-чуть оптимизировать - можно избавиться от вложенных запросов