Имя: Пароль:
1C
1С v8
Помогите с запросом
0 zzz_zzz_zzz
 
13.06.13
09:17
Здравствуйте!
Есть отчет, написан на построителе отчетов.
Вот сам запрос

   |ВЫБРАТЬ
   |      ПоступлениеТоваровУслугШапка.Ссылка КАК Регистратор,
   |    Контрагент,
   |    ДоговорКонтрагента,    
   |    Номенклатура,
   |    СУММА(Количество) КАК Количество,
   |      СУММА(ВЫБОР
   |                КОГДА СуммаВключаетНДС ТОГДА
   |              (Сумма - СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |            ИНАЧЕ
   |              Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |            КОНЕЦ) КАК СуммаБезНДС,
   |    СУММА(СуммаНДС * КурсВзаиморасчетов / КратностьВзаиморасчетов) КАК СуммаНДС,
   |   СУММА(ВЫБОР
   |            КОГДА СуммаВключаетНДС ТОГДА
   |               Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |              ИНАЧЕ
   |               (Сумма + СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |            КОНЕЦ) КАК СуммаСНДС    
   |      
   |ИЗ
   |    (ВЫБРАТЬ
   |        ПоступлениеТоваровУслуг.Ссылка,
   |        ПоступлениеТоваровУслуг.Номенклатура,
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0) КАК Количество,
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0) КАК Цена,
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0) КАК Сумма,
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0) КАК СуммаНДС
   |    ИЗ
   |        Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
   |
   |    ОБЪЕДИНИТЬ ВСЕ
   |
   |    ВЫБРАТЬ
   |        ПоступлениеТоваровУслуг.Ссылка,
   |        ПоступлениеТоваровУслуг.Номенклатура,
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0)
   |    ИЗ
   |        Документ.ПоступлениеТоваровУслуг.Оборудование КАК ПоступлениеТоваровУслуг
   |
   |    ОБЪЕДИНИТЬ ВСЕ    
   |
   |    ВЫБРАТЬ
   |        ПоступлениеТоваровУслуг.Ссылка,
   |        ПоступлениеТоваровУслуг.Номенклатура,
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
   |        ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
   |        0
   |    ИЗ
   |        Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугТЧ
   |
   |        
   |ЛЕВОЕ СОЕДИНЕНИЕ
   |
   |    (ВЫБРАТЬ
   |        ПоступлениеТоваровУслуг.Ссылка,
   |        ПоступлениеТоваровУслуг.Дата,
   |        ПоступлениеТоваровУслуг.Организация,
   |        ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,
   |        ПоступлениеТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента,
   |        ПоступлениеТоваровУслуг.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
   |        ПоступлениеТоваровУслуг.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
   |        ПоступлениеТоваровУслуг.СуммаВключаетНДС КАК СуммаВключаетНДС
   |    ИЗ
   |        Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугШапка
   |        
   |ПО ПоступлениеТоваровУслугТЧ.Ссылка = ПоступлениеТоваровУслугШапка.Ссылка
   |ГДЕ ПоступлениеТоваровУслугШапка.Дата >= &НачПер И ПоступлениеТоваровУслугШапка.Дата <= &КонПер И Организация = &Организация
   |
   |СГРУППИРОВАТЬ ПО
   |    ПоступлениеТоваровУслугШапка.Ссылка,
   |    Контрагент,
   |    ДоговорКонтрагента,
   |    Номенклатура
   |    
   |ИТОГИ
   |    СУММА(Количество),
   |    СУММА(СуммаБезНДС),
   |    СУММА(СуммаНДС),
   |    СУММА(СуммаСНДС)
   |ПО
   |    ОБЩИЕ,
   |    Регистратор        
   |    Номенклатура,
   |    Контрагент,
   |    ДоговорКонтрагента
   |";

Потребовалось ещё добавить что-то типа средней стоимости, т.е. СуммаБезНДС/Количество. Понятное дело, имеет смысл только если в строках есть номенклатура. Никак не соображу, как  это сделать в запросе. Если добавляю прям в этот, то СредСтоимость получается какая-то странная, как будто суммирует, но не делит. Если сначала группирую, а потом из этого вложенного запроса выбираю все поля и добавляю СуммаБезНДС/Количество, то в детальных записях всё правильно, а при сворачивании по номенклатуре выходит несколькими строками. И ещё в настройках отчета как ни меняй положение, она всё равно идёт перед всеми колонками. Помогите победить!
1 zzz_zzz_zzz
 
13.06.13
09:39
Проблема с положением колонки решается, если делать не вложенным запросом, а пакетным. Но по номенклатуре всё так же не сворачивается.

   |ВЫБРАТЬ
   |   Регистратор,
   |   Контрагент,
   |   ДоговорКонтрагента,    
   |   Номенклатура,
   |   Количество,
   |   СуммаБезНДС,
   |   СуммаНДС,
   |   СуммаСНДС,
   |   ВЫБОР
   |      КОГДА Количество = 0 ТОГДА
   |            0
   |        ИНАЧЕ
   |            ВЫРАЗИТЬ(СуммаСНДС/Количество КАК ЧИСЛО(15, 2))
   |        КОНЕЦ КАК СрСтоимость
   |
   |ПОМЕСТИТЬ ВТ_ИСТ
   |ИЗ
   |
   |    (ВЫБРАТЬ
   |      ПоступлениеТоваровУслугШапка.Ссылка КАК Регистратор,
   |        Контрагент,
   |        ДоговорКонтрагента,    
   |        Номенклатура,
   |        СУММА(Количество) КАК Количество,
   |        СУММА(ВЫБОР
   |                  КОГДА СуммаВключаетНДС ТОГДА
   |                      (Сумма - СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    ИНАЧЕ
   |                        Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    КОНЕЦ) КАК СуммаБезНДС,
   |        СУММА(СуммаНДС * КурсВзаиморасчетов / КратностьВзаиморасчетов) КАК СуммаНДС,
   |        СУММА(ВЫБОР
   |                  КОГДА СуммаВключаетНДС ТОГДА
   |                      Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    ИНАЧЕ
   |                        (Сумма + СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    КОНЕЦ) КАК СуммаСНДС    
   |        
   |    ИЗ
   |        (ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Номенклатура,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0) КАК Количество,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0) КАК Цена,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0) КАК Сумма,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0) КАК СуммаНДС
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
   |    
   |        ОБЪЕДИНИТЬ ВСЕ
   |    
   |        ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Номенклатура,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0)
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг.Оборудование КАК ПоступлениеТоваровУслуг
   |    
   |        ОБЪЕДИНИТЬ ВСЕ    
   |    
   |        ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Номенклатура,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
   |            0
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугТЧ
   |
   |        
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |
   |        (ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Дата,
   |            ПоступлениеТоваровУслуг.Организация,
   |            ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,
   |            ПоступлениеТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента,
   |            ПоступлениеТоваровУслуг.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
   |            ПоступлениеТоваровУслуг.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
   |            ПоступлениеТоваровУслуг.СуммаВключаетНДС КАК СуммаВключаетНДС
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугШапка
   |        
   |    ПО ПоступлениеТоваровУслугТЧ.Ссылка = ПоступлениеТоваровУслугШапка.Ссылка
   |    ГДЕ ПоступлениеТоваровУслугШапка.Дата >= &НачПер И ПоступлениеТоваровУслугШапка.Дата <= &КонПер И Организация = &Организация
   |
   |    СГРУППИРОВАТЬ ПО
   |        ПоступлениеТоваровУслугШапка.Ссылка,
   |        Контрагент,
   |        ДоговорКонтрагента,
   |        Номенклатура) КАК Запр1;
   |
   |ВЫБРАТЬ
   |    Регистратор,
   |    Контрагент,
   |    ДоговорКонтрагента,    
   |    Номенклатура,
   |   Количество,
   |    СрСтоимость,
   |   СуммаБезНДС,
   |   СуммаНДС,
   |   СуммаСНДС
   |ИЗ
   |    ВТ_ИСТ
   |
   |ИТОГИ
   |    СУММА(Количество),
   |    СРЕДНЕЕ(СрСтоимость),
   |    СУММА(СуммаБезНДС),
   |    СУММА(СуммаНДС),
   |    СУММА(СуммаСНДС)
   |ПО
   |    ОБЩИЕ,
   |    Регистратор        
   |    Номенклатура,
   |    Контрагент,
   |    ДоговорКонтрагента
   |";
2 zzz_zzz_zzz
 
13.06.13
09:47
в (1) СРЕДНЕЕ(СрСтоимость в Итогах - лишнее, осталось от экспериментов
3 Ненавижу 1С
 
гуру
13.06.13
09:48
надо так:

ИТОГИ
ВЫБОР КОГДА НЕ (Номенклатура ЕСТЬ NULL) ТОГДА
СУММА(СуммаСНДС)/СУММА(Количество) КОНЕЦ КАК СрСтоимость,
....
4 zzz_zzz_zzz
 
13.06.13
10:01
(3) ругается, невозможно определить поле для записи результата
5 Ненавижу 1С
 
гуру
13.06.13
10:02
(4) ну так само поле то СрСтоимость есть?
6 zzz_zzz_zzz
 
13.06.13
10:05
(5) а можно как для дебила полный текст запроса? как ни воткну - всё ошибки. у меня уже помутнение сознания
7 Андрей Федотов
 
13.06.13
10:06
напишите лично. разберемся
8 Ненавижу 1С
 
гуру
13.06.13
10:07
(6) вот из (1) последний запрос в пакете:

|ВЫБРАТЬ
   |    Регистратор,
   |    Контрагент,
   |    ДоговорКонтрагента,    
   |    Номенклатура,
   |   Количество,
   |    СрСтоимость,
   |   СуммаБезНДС,
   |   СуммаНДС,
   |   СуммаСНДС
   |ИЗ
   |    ВТ_ИСТ
   |
   |ИТОГИ
   |    СУММА(Количество),
   |    ВЫБОР КОГДА НЕ (Номенклатура ЕСТЬ NULL) ТОГДА
|СУММА(СуммаСНДС)/СУММА(Количество) КОНЕЦ КАК СрСтоимость,
   |    СУММА(СуммаБезНДС),
   |    СУММА(СуммаНДС),
   |    СУММА(СуммаСНДС)
   |ПО
   |    ОБЩИЕ,
   |    Регистратор        
   |    Номенклатура,
   |    Контрагент,
   |    ДоговорКонтрагента
   |";
9 zzz_zzz_zzz
 
13.06.13
10:12
(8) поле итогов должно либо присутствовать в списке группировок итогов, либо находиться в агрегатной функции итога (<<?>>Номенклатура...
10 Ненавижу 1С
 
гуру
13.06.13
10:13
(9) она присутствует как бы
11 Ненавижу 1С
 
гуру
13.06.13
10:14
может ты уже покажешь, а то приходиться только догадываться
12 zzz_zzz_zzz
 
13.06.13
10:16
|ВЫБРАТЬ
   |   Регистратор,
   |   Контрагент,
   |   ДоговорКонтрагента,    
   |   Номенклатура,
   |   Количество,
   |   СуммаБезНДС,
   |   СуммаНДС,
   |   СуммаСНДС,
   |   ВЫБОР
   |      КОГДА Количество = 0 ТОГДА
   |            0
   |        ИНАЧЕ
   |            ВЫРАЗИТЬ(СуммаСНДС/Количество КАК ЧИСЛО(15, 2))
   |        КОНЕЦ КАК СрСтоимость
   |
   |ПОМЕСТИТЬ ВТ_ИСТ
   |ИЗ
   |
   |    (ВЫБРАТЬ
   |      ПоступлениеТоваровУслугШапка.Ссылка КАК Регистратор,
   |        Контрагент,
   |        ДоговорКонтрагента,    
   |        Номенклатура,
   |        СУММА(Количество) КАК Количество,
   |        СУММА(ВЫБОР
   |                  КОГДА СуммаВключаетНДС ТОГДА
   |                      (Сумма - СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    ИНАЧЕ
   |                        Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    КОНЕЦ) КАК СуммаБезНДС,
   |        СУММА(СуммаНДС * КурсВзаиморасчетов / КратностьВзаиморасчетов) КАК СуммаНДС,
   |        СУММА(ВЫБОР
   |                  КОГДА СуммаВключаетНДС ТОГДА
   |                      Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    ИНАЧЕ
   |                        (Сумма + СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
   |                    КОНЕЦ) КАК СуммаСНДС    
   |        
   |    ИЗ
   |        (ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Номенклатура,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0) КАК Количество,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0) КАК Цена,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0) КАК Сумма,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0) КАК СуммаНДС
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
   |    
   |        ОБЪЕДИНИТЬ ВСЕ
   |    
   |        ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Номенклатура,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0)
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг.Оборудование КАК ПоступлениеТоваровУслуг
   |    
   |        ОБЪЕДИНИТЬ ВСЕ    
   |    
   |        ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Номенклатура,
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
   |            ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
   |            0
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугТЧ
   |
   |        
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |
   |        (ВЫБРАТЬ
   |            ПоступлениеТоваровУслуг.Ссылка,
   |            ПоступлениеТоваровУслуг.Дата,
   |            ПоступлениеТоваровУслуг.Организация,
   |            ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,
   |            ПоступлениеТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента,
   |            ПоступлениеТоваровУслуг.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
   |            ПоступлениеТоваровУслуг.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
   |            ПоступлениеТоваровУслуг.СуммаВключаетНДС КАК СуммаВключаетНДС
   |        ИЗ
   |            Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугШапка
   |        
   |    ПО ПоступлениеТоваровУслугТЧ.Ссылка = ПоступлениеТоваровУслугШапка.Ссылка
   |    ГДЕ ПоступлениеТоваровУслугШапка.Дата >= &НачПер И ПоступлениеТоваровУслугШапка.Дата <= &КонПер И Организация = &Организация
   |
   |    СГРУППИРОВАТЬ ПО
   |        ПоступлениеТоваровУслугШапка.Ссылка,
   |        Контрагент,
   |        ДоговорКонтрагента,
   |        Номенклатура) КАК Запр1;
   |
   |ВЫБРАТЬ
   |   Регистратор,
   |   Контрагент,
   |   ДоговорКонтрагента,    
   |   Номенклатура,
   |   Количество,
   |   СрСтоимость,
   |   СуммаБезНДС,
   |   СуммаНДС,
   |   СуммаСНДС
   |ИЗ
   |   ВТ_ИСТ
   |
   |ИТОГИ
   |    СУММА(Количество),
   |   ВЫБОР КОГДА НЕ (Номенклатура ЕСТЬ NULL) ТОГДА
   |        СУММА(СуммаСНДС)/СУММА(Количество)
   |    КОНЕЦ КАК СрСтоимость,
   |    СУММА(СуммаБезНДС),
   |    СУММА(СуммаНДС),
   |    СУММА(СуммаСНДС)
   |ПО
   |    ОБЩИЕ,
   |    Регистратор        
   |    Номенклатура,
   |    Контрагент,
   |    ДоговорКонтрагента
13 Ненавижу 1С
 
гуру
13.06.13
10:22
вот он баг, неправильного разбора 1С-движка, надо заменить на

ВЫБОР КОГДА (Номенклатура ЕСТЬ НЕ NULL) ТОГДА
           СУММА(СуммаСНДС)/СУММА(Количество)
      КОНЕЦ
       КАК СрСтоимость
14 zzz_zzz_zzz
 
13.06.13
10:24
(13) нет, так же "поле итогов должно либо присутствовать в списке группировок итогов, либо находиться в агрегатной функции итога (<<?>>Номенклатура..."
15 Ненавижу 1С
 
гуру
13.06.13
10:24
(14) у меня заработало
16 zzz_zzz_zzz
 
13.06.13
10:26
(15) дайте текст, прям в консоль скопирую проверить
17 Ненавижу 1С
 
гуру
13.06.13
10:27
(16) ВЫБРАТЬ
      Регистратор,
      Контрагент,
      ДоговорКонтрагента,    
      Номенклатура,
      Количество,
      СуммаБезНДС,
      СуммаНДС,
      СуммаСНДС,
      ВЫБОР
          КОГДА Количество = 0 ТОГДА
               0
           ИНАЧЕ
               ВЫРАЗИТЬ(СуммаСНДС/Количество КАК ЧИСЛО(15, 2))
           КОНЕЦ КАК СрСтоимость
   
   ПОМЕСТИТЬ ВТ_ИСТ
   ИЗ
   
       (ВЫБРАТЬ
          ПоступлениеТоваровУслугШапка.Ссылка КАК Регистратор,
           Контрагент,
           ДоговорКонтрагента,    
            Номенклатура,
            СУММА(Количество) КАК Количество,
           СУММА(ВЫБОР
                     КОГДА СуммаВключаетНДС ТОГДА
                         (Сумма - СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
                       ИНАЧЕ
                           Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
                       КОНЕЦ) КАК СуммаБезНДС,
             СУММА(СуммаНДС * КурсВзаиморасчетов / КратностьВзаиморасчетов) КАК СуммаНДС,
           СУММА(ВЫБОР
                     КОГДА СуммаВключаетНДС ТОГДА
                         Сумма * КурсВзаиморасчетов / КратностьВзаиморасчетов
                        ИНАЧЕ
                           (Сумма + СуммаНДС) * КурсВзаиморасчетов / КратностьВзаиморасчетов
                       КОНЕЦ) КАК СуммаСНДС    
           
       ИЗ
           (ВЫБРАТЬ
               ПоступлениеТоваровУслуг.Ссылка,
               ПоступлениеТоваровУслуг.Номенклатура,
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0) КАК Количество,
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0) КАК Цена,
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0) КАК Сумма,
               ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0) КАК СуммаНДС
           ИЗ
               Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
       
           ОБЪЕДИНИТЬ ВСЕ
       
           ВЫБРАТЬ
               ПоступлениеТоваровУслуг.Ссылка,
               ПоступлениеТоваровУслуг.Номенклатура,
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
               ЕСТЬNULL(ПоступлениеТоваровУслуг.СуммаНДС, 0)
           ИЗ
               Документ.ПоступлениеТоваровУслуг.Оборудование КАК ПоступлениеТоваровУслуг
       
           ОБЪЕДИНИТЬ ВСЕ    
       
           ВЫБРАТЬ
               ПоступлениеТоваровУслуг.Ссылка,
               ПоступлениеТоваровУслуг.Номенклатура,
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Количество, 0),
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Цена, 0),
               ЕСТЬNULL(ПоступлениеТоваровУслуг.Сумма, 0),
               0
           ИЗ
               Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугТЧ
   
           
       ЛЕВОЕ СОЕДИНЕНИЕ
   
           (ВЫБРАТЬ
               ПоступлениеТоваровУслуг.Ссылка,
               ПоступлениеТоваровУслуг.Дата,
               ПоступлениеТоваровУслуг.Организация,
               ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,
               ПоступлениеТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента,
               ПоступлениеТоваровУслуг.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
               ПоступлениеТоваровУслуг.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
               ПоступлениеТоваровУслуг.СуммаВключаетНДС КАК СуммаВключаетНДС
           ИЗ
               Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг) КАК ПоступлениеТоваровУслугШапка
           
       ПО ПоступлениеТоваровУслугТЧ.Ссылка = ПоступлениеТоваровУслугШапка.Ссылка
       ГДЕ ПоступлениеТоваровУслугШапка.Дата >= &НачПер И ПоступлениеТоваровУслугШапка.Дата <= &КонПер И Организация = &Организация
   
       СГРУППИРОВАТЬ ПО
           ПоступлениеТоваровУслугШапка.Ссылка,
           Контрагент,
           ДоговорКонтрагента,
           Номенклатура) КАК Запр1;
   
   ВЫБРАТЬ
      Регистратор,
      Контрагент,
      ДоговорКонтрагента,    
      Номенклатура,
      Количество,
      СрСтоимость,
      СуммаБезНДС,
      СуммаНДС,
      СуммаСНДС
   ИЗ
      ВТ_ИСТ
   
   ИТОГИ
       СУММА(Количество),
      ВЫБОР КОГДА (Номенклатура ЕСТЬ НЕ NULL) И СУММА(Количество)<>0 ТОГДА
           СУММА(СуммаСНДС)/СУММА(Количество)
      КОНЕЦ
       КАК СрСтоимость,
       СУММА(СуммаБезНДС),
       СУММА(СуммаНДС),
       СУММА(СуммаСНДС)
   ПО
       ОБЩИЕ,
       Регистратор        
       Номенклатура,
       Контрагент,
       ДоговорКонтрагента
18 zzz_zzz_zzz
 
13.06.13
10:31
(17) хоть убейте, всё равно ошибка
19 Ненавижу 1С
 
гуру
13.06.13
10:34
(18) платформа какая? полный релиз
20 zzz_zzz_zzz
 
13.06.13
10:35
1С:Предприятие 8.2 (8.2.16.352)
21 Ненавижу 1С
 
гуру
13.06.13
10:37
(20) ну извини, у нас 1С:Предприятие 8.2 (8.2.17.153)
работает вроде, хотя странно, что
НЕ (Номенклатура ЕСТЬ NULL) не работает, а
(Номенклатура ЕСТЬ НЕ NULL) работает
22 zzz_zzz_zzz
 
13.06.13
10:38
(21) поставлю себе локально поновее, попробую потом отпишусь.
23 zzz_zzz_zzz
 
13.06.13
10:40
(7) спасибо за неравнодушие. если не получится - стукну
24 Ненавижу 1С
 
гуру
13.06.13
10:42
я нагло наврал - не работает
25 zzz_zzz_zzz
 
13.06.13
10:43
(24) это и хорошая и плохая новость ))
26 Ненавижу 1С
 
гуру
13.06.13
10:47
(25) ты "засранец", а я повеля и скопировал:

ПО
       ОБЩИЕ,
       Регистратор  //куда ЗАПЯТУЮ дел?      
       Номенклатура,
27 hhhh
 
13.06.13
10:48
(24) вообще-то

"поле итогов должно либо присутствовать в списке группировок итогов, либо находиться в агрегатной функции итога"

это про СГРУППИРОВАТЬ ПО


какого хр.на вы ИТОГИ терзаете?
28 Ненавижу 1С
 
гуру
13.06.13
10:49
(27) вообще то нет, там черным по экрану написано про ИТОГИ
29 hhhh
 
13.06.13
10:58
это в тексте ошибки. в предложении сгруппировать ПО.

а в ИТОГИ не нужна эта фигня, можно не все поля писать. Например, ИТОГИ Сумма(Сумма) ПО Общие сработает,  хоть у тебя там 30 полей в запросе.
30 Ненавижу 1С
 
гуру
13.06.13
10:59
(29) чего ты мне пытаешься доказать?
я уже ошибку нашел в (26) тем более там явно указана строка на которой спотыкается парсер, это секция ИТОГИ
31 zzz_zzz_zzz
 
13.06.13
11:01
(26) говорю ж, помутнение сознания. сердечно извиняюсь, хз откуда ошибка повелась. запрос заработал! номенклатура складывается, цифры чуть позже на контрольном примере проверю.
заранее много-много-много благодарностей!
32 zzz_zzz_zzz
 
13.06.13
12:51
всё бы прекрасно, но теперь если не выбрана номенклатура в измерениях строки, вылетает ошибка "Поле, по которому рассчитываются итоги, должно присутствовать в списке выборки" и ссылается на строку с условием по Номенклатуре. Т.е. без детализации по номенклатуре теперь отчет никак не пострить. можно этого как-нибудь избежать?
33 Ненавижу 1С
 
гуру
13.06.13
12:53
(32) только выкинув условие ВЫБОР КОГДА НОМЕНКЛАТУРА ЕСТЬ НЕ NULL
34 zzz_zzz_zzz
 
13.06.13
12:55
(3) а в построителе можно программно это сделать?
35 zzz_zzz_zzz
 
13.06.13
12:56
(33) ну т.е. перед выводом проанализировать ИзмеренияСтроки и выкинуть из текста, да?