Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=10275)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.1 (8.0) _ При условии в виртуальной таблице пропадает иерархия

Автор: irbis_triffle 19.12.12, 13:20

Добрый день, уважаемые форумчане.
Уперся в запрос, не могу победить - надо получить номенклатуру с положительным остатком организации. Пробовал условие в соединении:

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

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

В обоих случаях пропадает иерархия Номенклатуры (без условия положительного остатка она конечно же есть).
Подскажите где ошибка?
Заранее благодарен.

Автор: Ardi 19.12.12, 13:47

или ЭтоГруппа

Автор: irbis_triffle 19.12.12, 14:31

Цитата(Ardi @ 19.12.12, 13:47) *
или ЭтоГруппа

Спасибо! Не подумал о том, что в регистре Номенклатура указана только для элементов.
Рабочий вариант:
ВЫБРАТЬ
    тНоменклатура.Ссылка КАК Ссылка,
    тНоменклатура.ДополнительноеОписаниеНоменклатуры КАК ПолноеОписание,
    тНоменклатура.ОсновноеИзображение КАК ОсновноеИзображение,
    ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК Остаток
ИЗ
    Справочник.Номенклатура КАК тНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
        ПО (ТоварыОрганизацийОстатки.Номенклатура = тНоменклатура.Ссылка)
ГДЕ
    (тНоменклатура.ПометкаУдаления = ЛОЖЬ
    И ТоварыОрганизацийОстатки.КоличествоОстаток > 0)
    ИЛИ тНоменклатура.ЭтоГруппа = ИСТИНА
УПОРЯДОЧИТЬ ПО
    Ссылка ИЕРАРХИЯ

Автор: sava1 19.12.12, 14:34

Остатки получают из вирт. таблицы без соединения со справочником с отбором в вирт. таблице.

Автор: Vofka 22.12.12, 14:01

irbis_triffle, жмите палец помогавшим!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua