Имя: Пароль:
1C
1С v8
последнее значение. оптимизация запроса
0 Domanoff26
 
11.07.12
11:03
в РС цены два измерения организация и контрагент, нужно брать последнее не учитывая контрагента, написал под запрос для отчета
ВЫБРАТЬ
   ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
   ЦеныСрезПоследних.Валюта КАК Валюта,
   ЦеныСрезПоследних.Цена * КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность КАК Цена
ИЗ
   (ВЫБРАТЬ
       ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
       МАКСИМУМ(ЦеныСрезПоследних.Период) КАК Период
   ИЗ
       РегистрСведений.Цены.СрезПоследних(
               ,
               ТипЦен = &ТипЦен
                   И Организация = &Организация) КАК ЦеныСрезПоследних
   
   СГРУППИРОВАТЬ ПО
       ЦеныСрезПоследних.Номенклатура) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(
               ,
               ТипЦен = &ТипЦен
                   И Организация = &Организация) КАК ЦеныСрезПоследних
           ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
           ПО (КурсыВалютСрезПоследних.Валюта = ЦеныСрезПоследних.Валюта)
       ПО ВложенныйЗапрос.Номенклатура = ЦеныСрезПоследних.Номенклатура
           И ВложенныйЗапрос.Период = ЦеныСрезПоследних.Период


вроде находит нужные значения,но теперь отчет (СКД) работает раз в 10 дольше(этот подзапрос вяжется еще с кучей данных), не подскажете как оптимизировать
1 Domanoff26
 
11.07.12
12:56
нет идей чтоль?
2 andrewks
 
11.07.12
13:29
во-первых, "в РС цены два измерения организация и контрагент" не вяжется с
РегистрСведений.Цены.СрезПоследних(,ТипЦен = &ТипЦен И Организация = &Организация)

во-вторых, я вообще не понял, что ты за огород нагородил с таким простым заданием.

огласи структуру регистра и что конкретно надо
3 Domanoff26
 
11.07.12
14:29
(2) в том то и дело что контрагент может быть любой, нужно найти цену из всех кнтрагентов, ктоорая регилась последней
т е САМУЮ ПОСЛЕДНЮЮ (а их там из-за множество контрагентов может быть много)
4 H A D G E H O G s
 
11.07.12
14:36
ВЫБРАТЬ
       ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
       ЦеныСрезПоследних.Период КАК Период
   ИЗ
       РегистрСведений.Цены.СрезПоследних(
               ,
               ТипЦен = &ТипЦен
                   И Организация = &Организация)

Чего не так то?
5 Fragster
 
гуру
11.07.12
14:36
не читал, но могу научить пользоваться временными таблицами
6 andrewks
 
11.07.12
15:23
(3) я понял. нахрена такой огород, когда можно (4)?
7 ssh2006
 
11.07.12
15:25
(4) выведет записи по контрагентам, а не одну запись
8 Domanoff26
 
11.07.12
16:57
(7) именно так
(5) у меня почему то в подзапросе,неактивно поместитьв ВТ