Имя: Пароль:
1C
1С v8
Как в запрос добавить автоупорядочивание?
0 AlexBor
 
naïve
26.02.15
11:44
Собственно говоря есть вот такой запрос - который группирует данные по сотрудникам из разных документов. Задача что бы сотрудники шли по алфавиту. Я так понимаю что надо добавить автоупорядочивание, а вот как это правильно сделать не знаю прошу помочь. Текст запроса предлагаю.

Запрос = Новый Запрос;
    Текст = "
    |ВЫБРАТЬ
    |    ПоДокам.ДолжнЛицо КАК ДолжнЛицо,
    |    СУММА(ПоДокам.Обращение) КАК Обращение,
    |    СУММА(ПоДокам.Акт) КАК Акт,
    |    СУММА(ПоДокам.Протокол) КАК Протокол,
    |    СУММА(ПоДокам.Предписание) КАК Предписание,
    |    СУММА(ПоДокам.Определение) КАК Определение,
    |    СУММА(ПоДокам.Распоряжение) КАК Распоряжение,
    |    СУММА(ПоДокам.t) КАК t,
    |    СУММА(ПоДокам.n) КАК n,
    |    СУММА(ПоДокам.ОбщаяПлощадь) КАК ОбщаяПлощадь,
    |    СУММА(ПоДокам.Постановления) КАК Постановления,
    |    СУММА(ПоДокам.Размер) КАК Размер,
    |    СУММА(ПоДокам.ОбращениеПроведено) КАК ОбращениеПроведено,
    |    СУММА(ПоДокам.ПротоколПроведено) КАК ПротоколПроведено,
    |    СУММА(ПоДокам.АктПроведено) КАК АктПроведено,
    |    СУММА(ПоДокам.ПредписаниеПроведено) КАК ПредписаниеПроведено,
    |    СУММА(ПоДокам.ПредписаниеПоНачислению) КАК ПредписаниеПоНачислению,
    |   СУММА(ПоДокам.ПредписаниеПоСтандарту) КАК ПредписаниеПоСтандарту,
    |   СУММА(ПоДокам.ПредписанияпоначислениюПроведенные) КАК ПредписанияпоначислениюПроведенные,
    |   СУММА(ПоДокам.ПредписаниепостандартуПроведенные) КАК ПредписаниепостандартуПроведенные,
    |    СУММА(ПоДокам.l) КАК l,
    |    СУММА(ПоДокам.m) КАК m,
    |    СУММА(ПоДокам.ОбращениеПросрочено) КАК ОбращениеПросрочено
    |ИЗ
    |    (ВЫБРАТЬ
    |        Обращение.Исполнитель КАК ДолжнЛицо,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Обращение.Ссылка) КАК Обращение,
    |        NULL КАК Акт,
    |        NULL КАК Протокол,
    |        NULL КАК Предписание,
    |        NULL КАК Определение,
    |        NULL КАК Распоряжение,
    |        NULL КАК t,
    |        NULL КАК n,
    |        NULL КАК ОбщаяПлощадь,
    |        NULL КАК Постановления,
    |       NULL КАК Размер,
    |       NULL КАК   ОбращениеПроведено,
    |       NULL КАК   ПротоколПроведено,
    |       NULL КАК   АктПроведено,
    |       NULL КАК   ПредписаниеПроведено,
    |       NULL КАК   ПредписаниеПоНачислению,
    |       NULL КАК   ПредписаниеПоСтандарту,
    |       NULL КАК   ПредписанияпоначислениюПроведенные,
    |       NULL КАК   ПредписаниепостандартуПроведенные,
    |        NULL КАК l,
    |        NULL КАК m,
    |        NULL КАК ОбращениеПросрочено
    |    ИЗ
    |        Документ.Обращение КАК Обращение
    |    ГДЕ
    |        Обращение.Дата МЕЖДУ &Дата1 И &Дата2    
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Обращение.Исполнитель
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        Акт.ДолжнЛицо,
    |        NULL,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Акт.Ссылка),
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        СУММА (Акт.t),
    |        NULL,
    |        СУММА    (Акт.Общая_площадь),
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |       СУММА (  ВЫБОР КОГДА Акт.Проведен ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ) КАК АктПроведено,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |       NULL
    |    ИЗ
    |        Документ.Акт КАК Акт
    |    ГДЕ
    |        Акт.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Акт.ДолжнЛицо
    //|        Акт.t,
    //|        Акт.Общая_площадь
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        Протокол.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Протокол.Ссылка),
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |       СУММА (  ВЫБОР КОГДА Протокол.Проведен ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ) КАК ПротоколПроведено,
    |        NULL,
    |        NULL,
    |        NULL,
    |       NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.Протокол КАК Протокол
    |    ГДЕ
    |        Протокол.Дата МЕЖДУ &Дата1 И &Дата2  
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Протокол.Должностное_лицо
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |            
    |    ВЫБРАТЬ
    |        Предписание.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Предписание.Ссылка),
    |        NULL,
    |        NULL,
    |        NULL,
    |        СУММА ( Предписание.n),
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |         NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.Предписание КАК Предписание
    |    ГДЕ
    |        Предписание.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Предписание.Должностное_лицо
    //|        Предписание.n
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        Определение.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Определение.Ссылка),
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,    
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.Определение КАК Определение
    |    ГДЕ
    |        Определение.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Определение.Должностное_лицо
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |     ВЫБРАТЬ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    |        Постановления.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,    
    |        NULL,
    |        NULL,
    |        NULL,    
    |       КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Постановления.Ссылка),
    |        СУММА (Постановления.Размер),
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.Постановления КАК Постановления
    |    ГДЕ
    |        Постановления.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |     СГРУППИРОВАТЬ ПО                            
    |        Постановления.Должностное_лицо
    //|       Постановления.Размер
    |     ОБЪЕДИНИТЬ ВСЕ
    |
    |    ВЫБРАТЬ
    |        Распоряжение.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |          КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Распоряжение.Ссылка),    
    |        NULL,
    |        NULL,
    |        NULL,    
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.Распоряжение КАК Распоряжение
    |    ГДЕ
    |        Распоряжение.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Распоряжение.Должностное_лицо  
    |    
    |     ОБЪЕДИНИТЬ ВСЕ
    |    ВЫБРАТЬ
    |        Предписание.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |       СУММА (  ВЫБОР КОГДА Предписание.Проведен ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ) КАК ПредписаниеПроведено,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.Предписание КАК Предписание
    |    ГДЕ
    |        Предписание.Дата_Снятия МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Предписание.Должностное_лицо     
    |
    |     ОБЪЕДИНИТЬ ВСЕ
    | ВЫБРАТЬ
    |        Обращение.Исполнитель КАК ДолжнЛицо,
    |        NULL КАК Обращение,
    |        NULL КАК Акт,
    |        NULL КАК Протокол,
    |        NULL КАК Предписание,
    |        NULL КАК Определение,
    |        NULL КАК Распоряжение,
    |        NULL КАК t,
    |        NULL КАК n,
    |        NULL КАК ОбщаяПлощадь,
    |        NULL КАК Постановления,
    |       NULL КАК Размер,
    |       КОЛИЧЕСТВО (  ВЫБОР КОГДА Обращение.Проведен ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ) КАК ОбращениеПроведено,    
    |       NULL КАК   ПротоколПроведено,
    |       NULL КАК   АктПроведено,
    |       NULL КАК   ПредписаниеПроведено,
    |        NULL КАК ПредписаниеПоНачислению,
    |        NULL КАК ПредписаниеПоСтандарту,
    |       NULL ПредписанияпоначислениюПроведенные,
    |       NULL ПредписаниепостандартуПроведенные,
    |       NULL КАК l,
    |       NULL КАК m,
    |        NULL КАК ОбращениеПросрочено
    |
    |    ИЗ
    |        Документ.Обращение КАК Обращение
    |    ГДЕ
    |        Обращение.ДатаОтвета МЕЖДУ &Дата1 И &Дата2    
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Обращение.Исполнитель
    |    ОБЪЕДИНИТЬ ВСЕ
    |            
    |    ВЫБРАТЬ
    |        ПредписаниеПоНачислению.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПредписаниеПоНачислению.Ссылка),
    |        NULL,
    |        СУММА (  ВЫБОР КОГДА ПредписаниеПоНачислению.Проведен ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ) КАК ПредписанияпоначислениюПроведенные,
    |        NULL,
    |        СУММА ( ПредписаниеПоНачислению.l),
    |        NULL,
    |        NULL
    |    ИЗ
    |        Документ.ПредписаниеПоНачислению КАК ПредписаниеПоНАчислению
    |    ГДЕ
    |        ПредписаниеПоНачислению.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ПредписаниеПоНачислению.Должностное_лицо
    |    ОБЪЕДИНИТЬ ВСЕ
    |            
    |    ВЫБРАТЬ
    |        ПредписаниеПоСтандарту.Должностное_лицо,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL,
    |        КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПредписаниеПоСтандарту.Ссылка),
    |        NULL,
    |       СУММА (  ВЫБОР КОГДА ПредписаниеПоСтандарту.Проведен ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ) КАК ПредписаниепостандартуПроведенные,
    |        NULL,
    |        СУММА ( ПредписаниеПоСтандарту.m),
    |        NULL
    |  
    |    ИЗ
    |        Документ.ПредписаниеПоСтандарту КАК ПредписаниеПоСтандарту
    |    ГДЕ
    |        ПредписаниеПоСтандарту.Дата МЕЖДУ &Дата1 И &Дата2
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ПредписаниеПоСтандарту.Должностное_лицо
    |    ОБЪЕДИНИТЬ ВСЕ
    |    ВЫБРАТЬ
    |        Обращение.Исполнитель КАК ДолжнЛицо,
    |        NULL КАК Обращение,
    |        NULL КАК Акт,
    |        NULL КАК Протокол,
    |        NULL КАК Предписание,
    |        NULL КАК Определение,
    |        NULL КАК Распоряжение,
    |        NULL КАК t,
    |        NULL КАК n,
    |        NULL КАК ОбщаяПлощадь,
    |        NULL КАК Постановления,
    |       NULL КАК Размер,
    |       NULL КАК   ОбращениеПроведено,
    |       NULL КАК   ПротоколПроведено,
    |       NULL КАК   АктПроведено,
    |       NULL КАК   ПредписаниеПроведено,
    |       NULL КАК   ПредписаниеПоНачислению,
    |       NULL КАК   ПредписаниеПоСтандарту,
    |       NULL КАК   ПредписанияпоначислениюПроведенные,
    |       NULL КАК   ПредписаниепостандартуПроведенные,
    |        NULL КАК l,
    |        NULL КАК m,
    |        СУММА(ВЫБОР КОГДА Обращение.Проведен ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) КАК ОбращениеПросрочено
    |    ИЗ
    |        Документ.Обращение КАК Обращение
    |    ГДЕ
    |        (Обращение.Проведен = Ложь) и
            |        (((РАЗНОСТЬДАТ(Обращение.Дата,&Дата3, ДЕНЬ) > 30 И   Обращение.Продлен = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
            |                ИЛИ (Обращение.Продлен <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
            |                    И РАЗНОСТЬДАТ(Обращение.Дата, &Дата3, ДЕНЬ) > 60)))
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Обращение.Исполнитель)  КАК ПоДокам
    |    
    |";
1 Ёпрст
 
26.02.15
11:47
упорядочить по ПоДокам.ДолжнЛицо.Наименование
2 Ненавижу 1С
 
гуру
26.02.15
11:47
УПОРЯДОЧИТЬ ПО ДолжнЛицо
АВТОУПОРЯДОЧИВАНИЕ
3 vicof
 
26.02.15
11:48
мои глаза...
Добавь АВТОУПОРЯДОЧИВАНИЕ в конец, твой кэп.
4 AlexBor
 
naïve
26.02.15
11:50
(2) (3) Это я понял спасибо, если можно то приминительно к  запросу где именно мне это добавить?
5 del123
 
26.02.15
11:52
в конце самом
6 vicof
 
26.02.15
11:53
(4) Можешь даже использовать конструктор запроса ;)
7 fisher
 
26.02.15
11:53
(4) Перед завершающими двойными кавычками воткни (2)
8 AlexBor
 
naïve
26.02.15
12:00
Я понимаю что туплю ставлю так


    |    СГРУППИРОВАТЬ ПО
    |        Обращение.Исполнитель)  КАК ПоДокам
    |    
    | УПОРЯДОЧИТЬ ПО ДолжнЛицо
    | АВТОУПОРЯДОЧИВАНИЕ";

Вылетает ошибка   ... Что не так?
9 1976vas
 
26.02.15
12:07
(8) Я бы предложил вывести текст ошибки.
10 vicof
 
26.02.15
12:08
(9) А как ты прокачаешь навык телепатии?
11 AlexBor
 
naïve
26.02.15
12:09
Отчет.ОтчетПоСотрудникам(609)}: Ошибка при вызове метода контекста (Выполнить): {(433, 1)}: Синтаксическая ошибка "СГРУППИРОВАТЬ"
<<?>>СГРУППИРОВАТЬ ПО
    Результат = Запрос.Выполнить();
по причине:
{(433, 1)}: Синтаксическая ошибка "СГРУППИРОВАТЬ"
<<?>>СГРУППИРОВАТЬ ПО
12 ssh2006
 
26.02.15
12:10
(11) неудивительно
13 AlexBor
 
naïve
26.02.15
12:12
(12) действительно
14 vicof
 
26.02.15
12:14
(13) восхитительно
15 AlexBor
 
naïve
26.02.15
12:14
(12) А вот это удивит?

Во вложенных запросах нельзя применять операцию УПОРЯДОЧИТЬ ПО без использования конструкции ПЕРВЫЕ.
<<?>>УПОРЯДОЧИТЬ ПО ДолжнЛицо
    Результат = Запрос.Выполнить();
16 vicof
 
26.02.15
12:16
(15) там для самых умных написано, что можно делать, и что нельзя
17 Ёпрст
 
26.02.15
12:17
(15)  открой наконец для себя конструктор запросов.
18 vicof
 
26.02.15
12:40
(17) Автор поразился возможностям конструктора. До сих пор пребывает в нирване.
19 AlexBor
 
naïve
26.02.15
12:45
(17) В (3) вы дали не правильный ответ приминительно к  моему запросу причем здесь конструктор и автор ?
20 AlexBor
 
naïve
26.02.15
12:45
(18) В (3) вы дали не правильный ответ приминительно к  моему запросу причем здесь конструктор и автор ?
21 vicof
 
26.02.15
12:46
(20) Ага, теперь приведи правильный, и мы посмотрим насколько мой неправильный.
22 mikecool
 
26.02.15
12:49
подзапросы нельзя упорядочивать, если не говоришь - сколько записей в них выбирать нада
подниму себе карму )
23 AlexBor
 
naïve
26.02.15
12:53
(21) Ваш ответ не учитывал что запрос вложенный. Текст запроса был приведен, от вас не требовалось быть телепатом просто надо было грамотно прочитать текст запроса.
24 vicof
 
26.02.15
12:54
(22) Ты не настоящий одноэсник. Настоящие одноэсники тексты ошибок не читают.
25 AlexBor
 
naïve
26.02.15
12:55
(24) Ну пускай будет так, если это что то может изменить.)))
26 vicof
 
26.02.15
12:57
(23) "ПоДокам" - это вложенный запрос? Не знал.
27 mikecool
 
26.02.15
12:58
(24) и носки не стирают )))
28 vicof
 
26.02.15
13:00
(27) Черт...6 лет занятий одинэсом прожиты зря. Все это время я стирал носки :( Как мне теперь восстановить образ светлого и непорочного одинэсника?
29 mikecool
 
26.02.15
13:01
(28) посыпь голову пеплом и уйди на гору жить в пещере )))
30 vicof
 
26.02.15
13:06
(29) Мож как-нить R-studio образ восстановит?
AdBlock убивает бесплатный контент. 1Сергей