Имя: Пароль:
1C
1С v8
Запрос с условием по родителям
0 Novicadmin
 
25.02.14
05:00
"ВЫБРАТЬ
        |    ТоварыВРозницеОстатки.Номенклатура.Родитель.Код             КАК КодРодителя,
        |    ТоварыВРозницеОстатки.Номенклатура.Родитель                 КАК Родитель,
        |    ТоварыВРозницеОстатки.Номенклатура.Код                         КАК КодТовара,
        |    ТоварыВРозницеОстатки.Номенклатура                             КАК Товар,
        |    ТоварыВРозницеОстатки.Номенклатура.НаименованиеПолное         КАК Наименование,
        |    ТоварыВРозницеОстатки.Номенклатура.ЕдиницаХраненияОстатков  КАК Единица,
        |    ТоварыВРозницеОстатки.Номенклатура.Весовой                     КАК Весовой,
        |    ЦеныАТТСрезПоследних.Цена                                     КАК ЦенаТовара,
        |    СкидкиНаГруппыТоваров.Значение                                 КАК IDГруппы,
        |    ТоварыНаВторойККМ.Значение                                     КАК IDОтдела,
        |    КодыВесовогоТовара.Код                                         КАК КодВесовогоТовара
        |ИЗ
        |    РегистрСведений.ЦеныАТТ.СрезПоследних(&Дата, ) КАК ЦеныАТТСрезПоследних
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&Дата, ) КАК ТоварыВРозницеОстатки
        |        ПО ЦеныАТТСрезПоследних.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
        |            И ЦеныАТТСрезПоследних.Склад = ТоварыВРозницеОстатки.Склад
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СкидкиНаГруппыТоваров КАК СкидкиНаГруппыТоваров
        |        ПО СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура
        |            И СкидкиНаГруппыТоваров.Склад = &Склад
        |            ИЛИ СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель
        |            И СкидкиНаГруппыТоваров.Склад = &Склад
        |            ИЛИ СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель
        |            И СкидкиНаГруппыТоваров.Склад = &Склад
        |            ИЛИ СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель.Родитель
        |            И СкидкиНаГруппыТоваров.Склад = &Склад
        |            ИЛИ СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель.Родитель.Родитель
        |            И СкидкиНаГруппыТоваров.Склад = &Склад
        |            ИЛИ СкидкиНаГруппыТоваров.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель
        |            И СкидкиНаГруппыТоваров.Склад = &Склад
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварыНаВторойККМ КАК ТоварыНаВторойККМ
        |        ПО ТоварыНаВторойККМ.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура
        |            И ТоварыНаВторойККМ.Склад = &Склад
        |            ИЛИ ТоварыНаВторойККМ.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель
        |            И ТоварыНаВторойККМ.Склад = &Склад
        |            ИЛИ ТоварыНаВторойККМ.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель
        |            И ТоварыНаВторойККМ.Склад = &Склад
        |            ИЛИ ТоварыНаВторойККМ.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель.Родитель
        |            И ТоварыНаВторойККМ.Склад = &Склад
        |            ИЛИ ТоварыНаВторойККМ.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель.Родитель.Родитель
        |            И ТоварыНаВторойККМ.Склад = &Склад
        |            ИЛИ ТоварыНаВторойККМ.ГруппаТоваров = ТоварыВРозницеОстатки.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель
        |            И ТоварыНаВторойККМ.Склад = &Склад
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыВесовогоТовара КАК КодыВесовогоТовара
        |        ПО КодыВесовогоТовара.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
        |ГДЕ
        |    ТоварыВРозницеОстатки.Склад = &Склад
        |    и ТоварыВРозницеОстатки.КоличествоОстаток > 0";
1 Novicadmin
 
25.02.14
05:03
Основной вопрос заключается в том, что бы сделать условие не таким как у меня.
В моём случае мне придётся каждый раз править запрос, если операторы увеличат вложимость групп в справочнике номенклатура.

Подскажите пожалуйста варианты, как это обойти.
2 grayshadow
 
25.02.14
05:10
ТоварыВРозницеОстатки.Номенклатура В ИЕРАРХИИ (выбрать различные ГруппаТоваров Из ТоварыНаВторойККМ.ГруппаТоваров)

но будет двоить, если в ТоварыНаВторойККМ есть одновременно записи по некой группе и ее же родителю

муторная какая-то структура:)
3 Novicadmin
 
25.02.14
05:22
(2) в ТоварыНаВторойККМ указан только самый верхний родитель, при этом условии должно быть нормально?
4 Wobland
 
25.02.14
05:40
>РегистрСведений.ТоварыНаВторойККМ
расстрелять
5 Novicadmin
 
25.02.14
05:45
(4) ))))
6 Novicadmin
 
25.02.14
05:45
(4) не надо его "расстрелять"
7 Wobland
 
25.02.14
05:50
(6) ну хорошо, подождём изобретения регистра ОбувьСорокПятогоРазмераДляТринадцатойКассы. а потом расстреляем
8 Novicadmin
 
25.02.14
05:54
Мне необходимо было разделить товары на 2 отдела(две фирмы), я не нашел в  комплексной стандартного функционала
9 Wobland
 
25.02.14
06:08
"Я не дам никому просимого у меня смертельного средства и не покажу пути для подобного замысла; ... Я ни в коем случае не буду делать сечения у страдающих каменной болезнью, предоставив это людям, занимающимся этим делом."
гениальные слова
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн