Имя: Пароль:
1C
1С v8
Синтаксическая ошибка "СГРУППИРОВАТЬ"
0 GreenDay1986
 
30.08.11
14:08
Синтаксическая ошибка "СГРУППИРОВАТЬ"
<<?>>СГРУППИРОВАТЬ ПО Склады.Номенклатура,
   Результат = Запрос.Выполнить().Выбрать();

Вот текст запроса "ВЫБРАТЬ
   |Склады.Номенклатура.Родитель КАК Родитель,
   |1 КАК  Поле1,
   |Склады.Номенклатура.Код КАК Код,
   |Склады.Номенклатура.Артикул КАК Артикул,
   |Склады.Номенклатура.ссылка КАК Наименование,
   |Склады.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Коэффициент,
   |Склады.КоличествоОстаток КАК Остаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2)) КАК Цена
   |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСреза)КАК Склады
   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза,ТипЦен = &Цена) КАК Цен
   |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка
   |";
   Если ЗначениеЗаполнено(Родитель) = Ложь Тогда
   Иначе Запрос.Текст = Запрос.Текст + " ГДЕ Склады.Номенклатура.Родитель = &Ном
   |СГРУППИРОВАТЬ ПО Склады.Номенклатура,
   |Склады.Номенклатура.Родитель,
   |Склады.КоличествоОстаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))
   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ
   |";
1 butterbean
 
30.08.11
14:13
хз почему ругается, но нафига группировать если нет ни одной агрегатной функции
2 GreenDay1986
 
30.08.11
14:20
Пишу выгрузку прайса, группировки нужны для иерархии номенклатурных групп типа
Родитель 1
- наименование 1,
- наименование 2,
........
-наименование n
Родитель 2
- Наименование1 и т.д....
3 butterbean
 
30.08.11
14:25
(2) они не для этого, для этого у тебя ИТОГИ есть
4 Ёпрст
 
гуру
30.08.11
14:25
(0) в group by должны быть перечислено всё то же самое, что и в select листе (за исключением функций)
у тебя - и половины нет.
5 hhhh
 
30.08.11
14:28
(4) не, то что через две точки можно спокойно выкинуть. Он так и сделал, только Номенклатура.Родитель забыл выбросить.
6 Rovan
 
гуру
30.08.11
14:28
а зачем так делать ?
|ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка

разве не работает ?
|ПО Склады.Номенклатура = Цен.Номенклатура
7 GreenDay1986
 
30.08.11
14:44
Ога, итогами и обощелся, для 1 номенклатурной группы включил ростое упорядочивание с итогами
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |Склады.Номенклатура.Родитель КАК Родитель,
   |1 КАК  Поле1,
   |Склады.Номенклатура.Код КАК Код,
   |Склады.Номенклатура.Артикул КАК Артикул,
   |Склады.Номенклатура.ссылка КАК Наименование,
   |Склады.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Коэффициент,
   |Склады.КоличествоОстаток КАК Остаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2)) КАК Цена
   |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСреза)КАК Склады
   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза,ТипЦен = &Цена) КАК Цен
   |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка
   |";
   
   Если ЗначениеЗаполнено(Родитель) = Ложь Тогда
   Запрос.Текст = Запрос.Текст + " СГРУППИРОВАТЬ ПО Склады.Номенклатура,
   |Склады.Номенклатура.Родитель,
   |Склады.КоличествоОстаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))
   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ
   |";

   Иначе Запрос.Текст = Запрос.Текст + "ГДЕ Склады.Номенклатура.Родитель = &Ном
   |УПОРЯДОЧИТЬ ПО Склады.Номенклатура.Ссылка
   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ
   |";
   КонецЕсли;

Насчет упорядочивать не согласен что все нужно прописывать, для незаполненного родителя все работает и группируется, при заполненном нет
8 GreenDay1986
 
30.08.11
14:53
Извиняюсь. Все работает, сам балбес

"ВЫБРАТЬ
   |Склады.Номенклатура.Родитель КАК Родитель,
   |1 КАК  Поле1,
   |Склады.Номенклатура.Код КАК Код,
   |Склады.Номенклатура.Артикул КАК Артикул,
   |Склады.Номенклатура.ссылка КАК Наименование,
   |Склады.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК Коэффициент,
   |Склады.КоличествоОстаток КАК Остаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2)) КАК Цена
   |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаСреза)КАК Склады
   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза,ТипЦен = &Цена) КАК Цен
   |ПО Склады.Номенклатура.Ссылка = Цен.Номенклатура.Ссылка
   |";
   
   Если ЗначениеЗаполнено(Родитель) = Ложь Тогда
   Запрос.Текст = Запрос.Текст + "СГРУППИРОВАТЬ ПО Склады.Номенклатура,
   |Склады.Номенклатура.Родитель,
   |Склады.КоличествоОстаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))
   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ
   |";

Иначе Запрос.Текст = Запрос.Текст + "ГДЕ Склады.Номенклатура.Родитель = &Ном
   |СГРУППИРОВАТЬ ПО Склады.Номенклатура,
   |Склады.Номенклатура.Родитель,
   |Склады.КоличествоОстаток,
   |ВЫРАЗИТЬ(Цен.Цена - (Цен.Цена/100)*&Скидка КАК ЧИСЛО(10,2))
   |ИТОГИ Сумма(Поле1) ПО Наименование ТОЛЬКО ИЕРАРХИЯ
   |";
   КонецЕсли;
Ошибка? Это не ошибка, это системная функция.