Имя: Пароль:
1C
1С v8
(УТ 10.3) сортировка по верхнему родителю из документа реализация товаров
,
0 MrZLO
 
05.02.13
12:34
ёмана, помогите как в запросе при печати товарной из документа реализация товаров и услуг, выводить всю номенклатуру по порядку (сортировка по наименованию главного родителя)

мой запрос:

ВЫБРАТЬ
   ВложенныйЗапрос.Номенклатура                                  КАК Номенклатура,
   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,
   ВложенныйЗапрос.Номенклатура.Код                 КАК ТоварКод,
   ВложенныйЗапрос.ЕдиницаИзмерения.Представление                КАК БазоваяЕдиницаНаименование,
   ВложенныйЗапрос.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код  КАК БазоваяЕдиницаКодПоОКЕИ,
   ВложенныйЗапрос.ЕдиницаИзмерения     КАК ЕдиницаИзмерения,
   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление            КАК ВидУпаковки,
   ВложенныйЗапрос.КоэффициентМест / ВложенныйЗапрос.Коэффициент КАК КоличествоВОдномМесте,
   ВЫБОР
       КОГДА ВложенныйЗапрос.КоличествоМест > 0 ТОГДА ВложенныйЗапрос.КоличествоМест * ВложенныйЗапрос.ЕдиницаИзмеренияМест.Вес
       ИНАЧЕ ВложенныйЗапрос.Количество * ВложенныйЗапрос.ЕдиницаИзмерения.Вес
   КОНЕЦ КАК МассаБрутто,
   ВложенныйЗапрос.Характеристика       КАК Характеристика,
   ВложенныйЗапрос.Серия                КАК Серия,
   ВложенныйЗапрос.СтавкаНДС            КАК СтавкаНДС,
   ВложенныйЗапрос.Цена                 КАК Цена,
   ВЫБОР
       КОГДА((ВложенныйЗапрос.ПроцентСкидкиНаценки = 0) И
             (ВложенныйЗапрос.ПроцентАвтоматическихСкидок = 0))
   ТОГДА ЛОЖЬ
   ИНАЧЕ Истина
   КОНЕЦ                                КАК ЕстьСкидкиПоСтроке,
   ВложенныйЗапрос.Количество           КАК Количество,
   ВложенныйЗапрос.КоличествоМест       КАК КоличествоМест,
   ВложенныйЗапрос.Сумма                КАК Сумма,
   ВложенныйЗапрос.СуммаНДС             КАК СуммаНДС,
   ВложенныйЗапрос.НомерСтроки          КАК НомерСтроки,
   ВложенныйЗапрос.Метка                КАК Метка
ИЗ

   (
   ВЫБРАТЬ
       РеализацияТоваровУслуг.Номенклатура,
       РеализацияТоваровУслуг.Коэффициент,
       РеализацияТоваровУслуг.ЕдиницаИзмерения,
       РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
       РеализацияТоваровУслуг.ЕдиницаИзмеренияМест.Коэффициент     КАК КоэффициентМест,
       РеализацияТоваровУслуг.ХарактеристикаНоменклатуры           КАК Характеристика,
       РеализацияТоваровУслуг.СерияНоменклатуры                    КАК Серия,
       РеализацияТоваровУслуг.СтавкаНДС,
       РеализацияТоваровУслуг.Цена * &Курс / &Кратность            КАК Цена,
       РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
       РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок,
       СУММА(РеализацияТоваровУслуг.Количество)                    КАК Количество,
       СУММА(РеализацияТоваровУслуг.КоличествоМест)                КАК КоличествоМест,
       СУММА(РеализацияТоваровУслуг.Сумма    * &Курс / &Кратность) КАК Сумма,
       СУММА(РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность) КАК СуммаНДС,
       МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки)                 КАК НомерСтроки,
       0                                                           КАК Метка
   ИЗ
       Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
   ГДЕ
       РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент

СГРУППИРОВАТЬ ПО
       РеализацияТоваровУслуг.Номенклатура,
       РеализацияТоваровУслуг.Коэффициент,
       РеализацияТоваровУслуг.ЕдиницаИзмерения,
       РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
       РеализацияТоваровУслуг.ХарактеристикаНоменклатуры,
       РеализацияТоваровУслуг.СерияНоменклатуры,
       РеализацияТоваровУслуг.СтавкаНДС,
       РеализацияТоваровУслуг.Цена,
       РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
       РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок
   ) КАК ВложенныйЗапрос


ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   РеализацияТоваровУслуг.Номенклатура                    КАК Номенклатура,
   ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,
   РеализацияТоваровУслуг.Номенклатура.Код   КАК ТоварКод,
   РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление               КАК БазоваяЕдиницаНаименование,
   РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ,
   РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков                             КАК ЕдиницаИзмерения,
   NULL                                                  КАК ВидУпаковки,
   NULL                                                  КАК КоличествоВОдномМесте,
   РеализацияТоваровУслуг.Количество * РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Вес КАК МассаБрутто,
   NULL                                                  КАК Характеристика,
   NULL                                                  КАК Серия,
   "Без НДС"                                           КАК СтавкаНДС,
   РеализацияТоваровУслуг.Цена                           КАК Цена,
   Ложь                                                  КАК ЕстьСкидкиПоСтроке,
   РеализацияТоваровУслуг.Количество                     КАК Количество,
   NULL                                                  КАК КоличествоМест,
   РеализацияТоваровУслуг.Сумма                          КАК Сумма,
   0                                                     КАК СуммаНДС,
   РеализацияТоваровУслуг.НомерСтроки                    КАК НомерСтроки,
   2                                                     КАК Метка
ИЗ
(
   ВЫБРАТЬ
       РеализацияТоваровУслуг.Номенклатура                      КАК Номенклатура,
       РеализацияТоваровУслуг.Цена * &Курс / &Кратность         КАК Цена,
       СУММА(РеализацияТоваровУслуг.Количество)                 КАК Количество,
       СУММА(РеализацияТоваровУслуг.Сумма * &Курс / &Кратность) КАК Сумма,
       МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки)              КАК НомерСтроки
   ИЗ
       Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг

   ГДЕ
       РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   СГРУППИРОВАТЬ ПО
       РеализацияТоваровУслуг.Номенклатура,
       РеализацияТоваровУслуг.Цена
) КАК РеализацияТоваровУслуг
УПОРЯДОЧИТЬ ПО Номенклатура ИЕРАРХИЯ АВТОУПОРЯДОЧИВАНИЕ


уже голову сломал...
1 MrZLO
 
05.02.13
12:39
1С 8.1 УТ 10.3
2 MrZLO
 
05.02.13
12:52
вообщем, при переборе результата запроса, в поле наименование, через функцию получаю верхнего родителя... думаю делать сортировку таблицы значение по полю "наименование"...
3 hhhh
 
05.02.13
12:54
а где там в запросе верхний родитель?
4 MrZLO
 
05.02.13
13:02
в запросе его нету, я его при выводе напечать получаю функцией...

вот думаю после выгрузки запроса, данные пихаю в таблицу значений, потом в неё добавляю колонку родиль+номенклатура

потом сортирую по новой колонке таблицу значений и вывожу сразу на печать
5 MrZLO
 
05.02.13
13:11
ЗапросТовары = Запрос.Выполнить().Выгрузить();

ЗапросТовары.Колонки.Добавить("РодительНоменклатура");
       
Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл

// как в ЗапросТовары текущую колонку "РодительНоменклатура" записать ВыборкаСтрок.Номенклатура например?

КонецЦикла;
6 iceman2112
 
05.02.13
13:14
ты че куришь чтоли?
Почему нельзя в запросе родителя выбрать?
7 iceman2112
 
05.02.13
13:14
тебе нужен порядок по
ВложенныйЗапрос.Номенклатура.Родитель?
8 Михаил Козлов
 
05.02.13
13:21
Можно в запросе получить верхнего родителя через Номенклатура.Родитель. ... .Родитель, если заложиться на максимальное количество уровней иерархии.
9 MrZLO
 
05.02.13
13:32
(8) можно пример
10 MrZLO
 
05.02.13
13:33
(7) мне нужен порядок по самому верхнему родителю в запросе
11 MrZLO
 
05.02.13
13:34
например алкоголь -> пиво -> балтика
надо выбрать алкоголь
12 Михаил Козлов
 
05.02.13
13:43
ВЫБРАТЬ
  тмц.Ссылка КАК Номенклатура,
  ВЫБОР КОГДА тмц.Родитель = &пустой ТОГДА тмц.Родитель
  ИНАЧЕ ВЫБОР КОГДА тмц.Родитель.Родитель = &пустой
    ТОГДА тмц.Родитель
... и т.д.
КОНЕЦ КАК родительВерхнегоУровня
ИЗ Справочник.Номенклатура КАК тмц
13 MrZLO
 
05.02.13
14:27
спасибо, сделал через запрос, но я думал рекурсию в запросе как-нить вызвать, ну ладно, все равно лучше моего варианта :)