Имя: Пароль:
1C
1С v8
Ошибка при вызове контекста Выполнить, синтаксическая ошибка в запросе
0 pnamik
 
15.06.15
09:54
8.1 самописная
при формировании отчета валовой прибыли выдает ошибку

{Отчет.ВаловаяПрибыль.Форма.Форма(130)}: Ошибка при вызове метода контекста (Выполнить): {(55, 20)}: Синтаксическая ошибка "И"
АВТОУПОРЯДОЧИВАНИЕ <<?>>И ДвиженияПоПартиям.Номенклатура В ИЕРАРХИИ(&МассивНоменклатуры)
        РезультатЗапроса = Запрос.Выполнить();



Сам текст запроса полностью


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



Как исправить?
1 Mankubus
 
15.06.15
09:57
(0) перенести АВТОУПОРЯДОЧИВАНИЕ после всех условий
2 pnamik
 
15.06.15
09:58
Галочку в конструкторе запроса с АВТОУПОРЯДОЧИВАНИЕ убираю, ошибка не появляется. АВТОУПОРЯДОЧИВАНИЕ  нужно чтобы отчет формировался с тем же порядком, как в номенклатуре
3 Mankubus
 
15.06.15
09:59
(2) при чем тут галка? руками перенеси
4 pnamik
 
15.06.15
10:07
(3) руками перенес сюда в виде
|ПО
                              |    ОБЩИЕ,
                              |    Номенклатура ИЕРАРХИЯ");                            |ПО
                              |    ОБЩИЕ,
                              |    Номенклатура АВТОУПОРЯДОЧИВАНИЕ");

ошибки нет, отчет выдает только элементы, групп нет