8.х Вопрос по запросу

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Strasse, 26 фев 2008.

  1. TopicStarter Overlay
    Strasse
    Offline

    Strasse

    Регистрация:
    26 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Код:
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.Контрагент,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ДоговорКонтрагента,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ТорговаяТочка,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.Подразделение,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.СчетУчета,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ДокументРасчетовСКонтрагентом, 
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ДокументРасчетовСКонтрагентом.Дата 
    Как ДатаДокументРасчетовСКонтрагентом,
    |    СУММА(ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.СуммаОстаток) КАК Сумма
    |ИЗ
    |    РегистрНакопления.ВзаиморасчетыСКонтрагентамиУправленческийУчет.Остатки(&МоментКон, Контрагент в (&ВыбКонтрагент)
    |     и ДоговорКонтрагента в (&ВыбДоговорКонтрагента) и СчетУчета в (&ВыбСчетУчета)) 
    КАК ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки
    |ГДЕ    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.СуммаОстаток < 0 И ТорговаяТочка = &ВыбТорговаяТочка
    |СГРУППИРОВАТЬ ПО
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.Контрагент,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ДоговорКонтрагента,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.СчетУчета,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ТорговаяТочка,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.Подразделение,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ДокументРасчетовСКонтрагентом.Дата,
    |    ВзаиморасчетыСКонтрагентамиУправленческийУчетОстатки.ДокументРасчетовСКонтрагентом
    |УПОРЯДОЧИТЬ ПО ДатаДокументРасчетовСКонтрагентом Возр";
    
    
    
    
    Проблема: необходимо
    1)внести изменения таким образом, чтобы в итоговую таблицу попадали только строки заданной торговой точки.
    2) порядок сортировки должен быть следующий: сначала документ ДокументРасчетовСКонтрагентом равный Ссылке, затем документы выбранного подразделения, а потом все остальные по ФИФО.
    По первому сомневаюсь куда надо внести ТорговаяТочка = &ВыбТорговаяТочка под ГДЕ или в парамемтры регистра накопления?
    И как реализовать 2 пункт?
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. В параметры, конечно.
    2. Продолжить список УПОРЯДОЧИТЬ....
  3. TopicStarter Overlay
    Strasse
    Offline

    Strasse

    Регистрация:
    26 фев 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    1. А разве условия на запрос накладываются не под ГДЕ?
    2. Это понятно что продолжить УПОРЯДОЧИТЬ, только вот каким образом, чтобы порядок сортировки должен быть следующий: сначала документ ДокументРасчетовСКонтрагентом равный Ссылке, затем документы выбранного подразделения, а потом все остальные по ФИФО
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Если ты накладываешь в ГДЕ, то у тебя создается выборка ПО ВСЕМ и потом накладывается где, а в параметрах выборка СРАЗУ делается по нужным элементам.

    Разница по времени может достигать сотни порядков на больших выборках. При выборке из 10 000 элементов справочника (+ всякие соединения и т.п.) разница примерно такая: в ГДЕ - время выполнения около 7 сек, в ПАРАМЕТРАХ - около 0.3 сек.

    2. Сгруппировать по подразделениям и делать сортировку потом потом...

Поделиться этой страницей