| 
    
        
     
     | 
    
  | 
Оптимизация запроса на СКД (ускорить выборку данных) | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        ac13    
     21.02.19 
            ✎
    10:58 
 | 
         
        В первом наборе данных:
 
        ВЫБРАТЬ
Во втором наборе данных ВЫБРАТЬ
Связь полей наборов по параметрам &Дата и &номенклатура. Формируется долго. Можно как-то ускорить выборку, чтобы в результате получить цены на каждую дату продажи?  | 
|||
| 
    1
    
        palsergeich    
     21.02.19 
            ✎
    11:01 
 | 
         
        В таком виде нет.
 
        Только переписывать. Связь наборов через параметр = запрос в цикле  | 
|||
| 
    2
    
        ac13    
     21.02.19 
            ✎
    11:07 
 | 
         
        (1) Понял. А как можно переписать?     
         | 
|||
| 
    3
    
        palsergeich    
     21.02.19 
            ✎
    11:11 
 | 
         
        Есть такая задача - получить значение среза последних на дату не исползуя виртуальную таблицу.
 
        1) отказаться от связи через параметр. 2) подумать как прикрутить подсказку  | 
|||
| 
    4
    
        ам794123    
     21.02.19 
            ✎
    11:15 
 | 
         
        (0) объедини оба набора в одном запросе, непонятно зачем два набора     
         | 
|||
| 
    5
    
        palsergeich    
     21.02.19 
            ✎
    11:16 
 | 
         
        (4) не выйдет. Точнее данные будут не соответствовать ожидаемым. Там срез последних на дату каждого документа.
 
        То есть для каждой строки надо новое значение.  | 
|||
| 
    6
    
        ам794123    
     21.02.19 
            ✎
    11:18 
 | 
         
        (5) понятно     
         | 
|||
| 
    7
    
        ac13    
     26.02.19 
            ✎
    09:37 
 | 
         
        Нашел в интернете оптимизированный способ выборки цен.
 
        В одном наборе данный выбираем и Продажи и Цены, связь с условием: ЦеныНоменклатурыКонтрагентов.Период В
И вот какая тут получается проблема: для некоторых позиций у меня есть записи Период 31.12.2018 23:59:59 Цена 1 230,00 Период 31.12.2018 23:59:59 Цена 2 500,00 Период 31.12.2018 23:59:59 Цена 1 100,00 потому что выборка из регистра "Цены номенклатуры контрагентов", максимальный период одинаковый и у меня утраивает выборку, как избежать подобной ситуации?  | 
|||
| 
    8
    
        ac13    
     26.02.19 
            ✎
    09:42 
 | 
         
        Добавил еще одну связь с условием и получилось:
 
        ЦеныНоменклатурыКонтрагентов.Период В
     | 
|||
| 
    9
    
        catena    
     26.02.19 
            ✎
    09:42 
 | 
         
        (7)Зависит от того, какой из этих трех цен вы хотите видеть.     
         | 
|||
| 
    10
    
        ac13    
     26.02.19 
            ✎
    10:38 
 | 
         
        (8) как оказалось, с таким условием вообще ничего не отбирает     
         | 
|||
| 
    11
    
        ac13    
     26.02.19 
            ✎
    10:59 
 | 
         
        В общем отобрать одну запись в ситуации когда в регистре три таких записи не удается:
 
        Период 31.12.2018 23:59:59 Цена 1 230,00 Период 31.12.2018 23:59:59 Цена 2 500,00 Период 31.12.2018 23:59:59 Цена 1 100,00 (9) любую, максимальную или среднюю  | 
|||
| 
    12
    
        _Дайвер_    
     26.02.19 
            ✎
    11:19 
 | 
         
        Тебе надо в документе продажи брать цену номенклатуры(цена = сумма / количество), и сравнить с прайсом на дату документа. так же предусмотреть вид цены, и ситуацию когда в одном документе будет одна и та же номенклатура разбита на несколько строк     
         | 
|||
| 
    13
    
        catena    
     26.02.19 
            ✎
    11:23 
 | 
         
        (11)Ну и группируй по МАКСИМУМ или СРЕДНЕЕ     
         | 
|||
| 
    14
    
        toypaul    
     гуру 
    26.02.19 
            ✎
    11:27 
 | 
         
        Я бы сделал так.
 
        Выбрал все цены через объединение остатков на начальную дата и за период. Затем сгруппировал бы по Номенклатура, Период с нужной функцией. И только потом эти обработанные цены цеплял бы к регистру продаж. Если все это делается на СКД, то отбор по номенклатуре к такому запросу должен примениться автоматически.  | 
|||
| 
    15
    
        toypaul    
     гуру 
    26.02.19 
            ✎
    11:27 
 | 
         
        "через объединение остатков на начальную дата" - через объединение цен на начальную дату периода     
         | 
|||
| 
    16
    
        Конструктор1С    
     26.02.19 
            ✎
    11:37 
 | 
         
        По-моему СКД это дело умеет оптимизировать, но только если ты ей немного развяжешь руки - пропишешь условия в {}     
         | 
|||
| 
    17
    
        ac13    
     26.02.19 
            ✎
    12:08 
 | 
         
        (13) так с этим и нет проблем)     
         | 
|||
| 
    18
    
        catena    
     26.02.19 
            ✎
    12:11 
 | 
         
        (17)"В общем отобрать одну запись в ситуации когда в регистре три таких записи не удается"
 
        " так с этим и нет проблем)" Определитесь...  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |