Имя: Пароль:
1C
1С v8
ИТОГИ ПО ИЕРАРХИЯ и сортировка
0 akhamov
 
07.05.14
16:38
Добрый день, убился не могу придумать как сделать в запросе (без тз и прочего в коде):

Необходимо вывести в печатную форму список иерархического справочника, элементы которого должны быть отсортированы по какому-нить признаку. Например по реквизиту элемента (!) справочника или значению его свойства.

Запрос

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЗапросПоДопСвойствам.Значение КАК Значение
ПОМЕСТИТЬ ВременнаяТаблицаЗапроса
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&ДатаСреза, Склад = &ВыбранныйСклад) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, ВидЦены = &ВыбранныйТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО СвободныеОстаткиОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И СвободныеОстаткиОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
            НоменклатураДополнительныеРеквизиты.Значение КАК Значение
        ИЗ
            Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        ГДЕ
            НоменклатураДополнительныеРеквизиты.Свойство = &АСвойство) КАК ЗапросПоДопСвойствам
        ПО СвободныеОстаткиОстатки.Номенклатура = ЗапросПоДопСвойствам.Ссылка
ГДЕ
    СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток > 0
    И СвободныеОстаткиОстатки.Номенклатура В ИЕРАРХИИ(&ГруппаНоменлатуры)

УПОРЯДОЧИТЬ ПО
    Значение,
    Номенклатура
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ


Группирует и выводит иерархию по группам, но ... не сортирует элементы по значению свойства.
Это вообще реально сделать в запросе или нет?

Заранее спасибо!
1 Aswed
 
07.05.14
16:42
(0) Capslock запал?
2 ДемонМаксвелла
 
07.05.14
16:43
я всегда думал что свойства - это регистр сведений ЗначенияСвойствОбъектов.

Не понял если честно чем типовая сортировка не устроила
3 DarKySiK
 
07.05.14
16:46
Итоги по временной таблице... я чет не понимаю в этой жизни
4 akhamov
 
07.05.14
16:48
(1) у 1С капс запал?
(2) всмысле чем не устроила типовая? Ну вот не устроила потому что нужна другая!
(3) Так итоги по временной таблице все равно отсортируют по иерархии номенклатуры и снесут сортировку по свойству.
5 ДемонМаксвелла
 
07.05.14
16:48
(3) точно, не заметил
6 DarKySiK
 
07.05.14
16:50
(4) ты в конструкторе запросов открыть пробовал сие произведение?
7 VikingKosmo
 
07.05.14
16:51
(3) итоги по ВТ это новое слово в запросописании))
8 DarKySiK
 
07.05.14
16:52
(7) а мужики то не знают...
9 akhamov
 
07.05.14
16:53
(6) Ну вообще в нем формировал его. Конструктор запросов отлично его открывает и даже формирует, просто в не верном порядке сортировки )
10 VikingKosmo
 
07.05.14
16:56
(9) "чего то ты Герасим, не договариваешь" (с) Муму
11 Ёпрст
 
07.05.14
16:56
(9) а формирует что ?
У вас запрос на создание временной таблички.. Где вы видите результат и какой ?
12 akhamov
 
07.05.14
16:57
У меня подозрение что ИТОГИ ПО и УПОРЯДОЧИТЬ ПО
связаны, всмысле ИТОГИ ПО делают сортировку.

(6) Я здесь лишнее поместить в ВТ сделал в процессе чтения поста.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЗапросПоДопСвойствам.Значение КАК Значение
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&ДатаСреза, Склад = &ВыбранныйСклад) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, ВидЦены = &ВыбранныйТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО СвободныеОстаткиОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И СвободныеОстаткиОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
            НоменклатураДополнительныеРеквизиты.Значение КАК Значение
        ИЗ
            Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        ГДЕ
            НоменклатураДополнительныеРеквизиты.Свойство = &АСвойство) КАК ЗапросПоДопСвойствам
        ПО СвободныеОстаткиОстатки.Номенклатура = ЗапросПоДопСвойствам.Ссылка
ГДЕ
    СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток > 0
    И СвободныеОстаткиОстатки.Номенклатура В ИЕРАРХИИ(&ГруппаНоменлатуры)

УПОРЯДОЧИТЬ ПО
    Значение,
    Номенклатура
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ
13 Ёпрст
 
07.05.14
17:02
(12)


УПОРЯДОЧИТЬ ПО
    Значение
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ
14 Ёпрст
 
07.05.14
17:02
так, для начала
15 Ёпрст
 
07.05.14
17:03
ну или так


УПОРЯДОЧИТЬ ПО
    Значение,
    Номенклатура ИЕРАРХИЯ
//ИТОГИ ПО
//    Номенклатура ИЕРАРХИЯ
16 ProProg
 
07.05.14
17:04
17 Armando
 
07.05.14
17:05
(0) я такое в компановке делал и выгружал в дерево
18 ProProg
 
07.05.14
17:07
Лови, Бесплатно! на закладке скачать.

http://subsystems.ru/catalog/program=125/
19 akhamov
 
07.05.14
17:07
(16) да, так.
(17) т.е. компоновщиком все отсортировать, скомпоновать по группам, а потом вывести?
(13) и (15) сейчас попробую, но эта "тварь" не сортировала. Момент
20 ProProg
 
07.05.14
17:09
У меня там сразу куча сортировок реализована
21 ProProg
 
07.05.14
17:09
Для любых табличных частей документов.
22 ProProg
 
07.05.14
17:10
Только оно именно сортирует. На печать ты уж сам.
23 akhamov
 
07.05.14
17:12
(20)-(22) не, немного не то.

Мне нужен вывод элементов вместе с иерархией, и сортировка конечных элементов по выбранному свойству (признаку\реквизиту).

Например вывести иерархию и отсортировать ее по артикулу \ коду \ свойству поставщик и т.п.
24 ProProg
 
07.05.14
17:13
Сори походу тебе не то вообще нужно. Просто ты написал печатную форму. Я  думал документов.

А ты отчет оказываешся строишь.
25 akhamov
 
07.05.14
17:13
(24) да, тоже сорри, но не прокатит такое. Спасибо.
26 ProProg
 
07.05.14
17:14
Я понял в Упорядочить надо не просто указывать ресурс.

УПОРЯДОЧИТЬ ПО
    Значение.Наименование

Короче через точку надо конкретно обратится к полю
27 akhamov
 
07.05.14
17:16
(13) Чет я ступил, действительно нужно было оставить

УПОРЯДОЧИТЬ ПО
    Значение
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ

и все.
А у меня построитель добавил туда номенклатуру и все. Затуп.
Всем спасибо!
28 akhamov
 
07.05.14
17:17
(26) да мне и по значению подойдет, мне там уже алфавит не важен, мне важна по сути "группировка рядом" по свойству.
29 akhamov
 
07.05.14
17:17
Вот такой итоговый код получился

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЗапросПоДопСвойствам.Значение КАК Значение
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&ДатаСреза, Склад = &ВыбранныйСклад) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, ВидЦены = &ВыбранныйТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО СвободныеОстаткиОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И СвободныеОстаткиОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
            НоменклатураДополнительныеРеквизиты.Значение КАК Значение
        ИЗ
            Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        ГДЕ
            НоменклатураДополнительныеРеквизиты.Свойство = &АСвойство) КАК ЗапросПоДопСвойствам
        ПО СвободныеОстаткиОстатки.Номенклатура = ЗапросПоДопСвойствам.Ссылка
ГДЕ
    СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток > 0
    И СвободныеОстаткиОстатки.Номенклатура В ИЕРАРХИИ(&ГруппаНоменлатуры)

УПОРЯДОЧИТЬ ПО
    Значение
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ
30 akhamov
 
07.05.14
17:28
Ха. Обнаружился косяк )))
Двойная сортировка
1 - по свойству
2 - затем по наименованию не работает


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЗапросПоДопСвойствам.Значение КАК Значение
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&ДатаСреза, Склад = &ВыбранныйСклад) КАК СвободныеОстаткиОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, ВидЦены = &ВыбранныйТипЦены) КАК ЦеныНоменклатурыСрезПоследних
        ПО СвободныеОстаткиОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И СвободныеОстаткиОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
            НоменклатураДополнительныеРеквизиты.Значение КАК Значение
        ИЗ
            Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        ГДЕ
            НоменклатураДополнительныеРеквизиты.Свойство = &АСвойство) КАК ЗапросПоДопСвойствам
        ПО СвободныеОстаткиОстатки.Номенклатура = ЗапросПоДопСвойствам.Ссылка
ГДЕ
    СвободныеОстаткиОстатки.ВНаличииОстаток - СвободныеОстаткиОстатки.ВРезервеОстаток > 0
    И СвободныеОстаткиОстатки.Номенклатура В ИЕРАРХИИ(&ГруппаНоменлатуры)

УПОРЯДОЧИТЬ ПО
    Значение,
    СвободныеОстаткиОстатки.Номенклатура.Наименование
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ
31 akhamov
 
07.05.14
17:30
Получается вот так http://clip2net.com/s/i5ojIv
А нужно вот так http://clip2net.com/s/i5okXZ - свойство (цвет) и потом уже по алфавиту (размеру)
32 akhamov
 
07.05.14
17:47
up?
33 mrDSide
 
07.05.14
18:53
(0) Может воспользоваться построителем отчета.
34 shpioleg
 
07.05.14
21:14
(32) Пробуй как в (26) посоветовали упорядочивать
УПОРЯДОЧИТЬ ПО
    ЗапросПоДопСвойствам.Значение.Наименование,
    СвободныеОстаткиОстатки.Номенклатура.Наименование
35 Armando
 
07.05.14
23:38
(19) >> т.е. компоновщиком все отсортировать, скомпоновать по группам, а потом вывести?
Да