|
Ошибка при вызове контекста Выполнить, синтаксическая ошибка в запросе | ☑ | ||
---|---|---|---|---|
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) руками перенес сюда в виде
|ПО | ОБЩИЕ, | Номенклатура ИЕРАРХИЯ"); |ПО | ОБЩИЕ, | Номенклатура АВТОУПОРЯДОЧИВАНИЕ"); ошибки нет, отчет выдает только элементы, групп нет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |