Имя: Пароль:
1C
1С v8
Произвольный вопрос в динам. списке
0 Vladislava-smile
 
30.04.22
10:33
УТ 11.4.14.95
8.3.18.1289
Самописный запрос к номенклатуре с использованием вирт. таблиц.
Основная таблица пустая, поле ключа - указана ссылка, не открывает в списке номенклатуру при выборе.
Что не так сделала? Мало опыта в УФ, тапками не бить)
1 Vladislava-smile
 
30.04.22
10:40
ВЫБРАТЬ
    СпрНоменклатура.Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.Родитель КАК Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ВНаличии,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена2,
    ВЫБОР
        КОГДА СпрНоменклатура.ИспользованиеХарактеристик <> ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ИспользуютсяХарактеристики,
    СпрНоменклатура.Производитель КАК Производитель,
    СпрНоменклатура.ИспользоватьУпаковки КАК ИспользоватьУпаковки,
    СпрНоменклатура.НаборУпаковок КАК НаборУпаковок
ПОМЕСТИТЬ ВТ_Номенклатура
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад В ИЕРАРХИИ (&ОтборСклад)) КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                ,
                ВидЦены = &ВидЦены
                    И Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ЦеныНоменклатурыСрезПоследних
        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка)
            И (&ВидЦены <> ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка))}
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры)) КАК Поле2}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Номенклатура.Ссылка,
    УпаковкиЕдиницыИзмерения.Ссылка КАК ИндивидуальнаяУпаковка
ПОМЕСТИТЬ ВТ_Упаковки
ИЗ
    ВТ_Номенклатура КАК ВТ_Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
        ПО ВТ_Номенклатура.Ссылка = УпаковкиЕдиницыИзмерения.Владелец
ГДЕ
    НЕ УпаковкиЕдиницыИзмерения.ПометкаУдаления
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ_Упаковки.Ссылка,
    ВТ_Упаковки.ИндивидуальнаяУпаковка КАК ИндивидуальнаяУпаковка
ПОМЕСТИТЬ ВТ_Упаковки1Запись
ИЗ
    ВТ_Упаковки КАК ВТ_Упаковки
ГДЕ
    (ВТ_Упаковки.Ссылка, ВТ_Упаковки.ИндивидуальнаяУпаковка) В
            (ВЫБРАТЬ ПЕРВЫЕ 1
                ВСЁ.Ссылка,
                ВСЁ.ИндивидуальнаяУпаковка
            ИЗ
                ВТ_Упаковки КАК ВСЁ
            ГДЕ
                ВСЁ.Ссылка = ВТ_Упаковки.Ссылка)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Таблица.Номенклатура,
    Таблица.ВРезервеСоСкладаОстаток КАК ВРезервеСоСклада,
    Таблица.ВРезервеПодЗаказОстаток КАК ВРезервеПодЗаказ
ПОМЕСТИТЬ ВТ_Резерв
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(, Склад В ИЕРАРХИИ (&ОтборСклад)) КАК Таблица
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Номенклатура.Ссылка,
    ВТ_Номенклатура.Код КАК Код,
    ВТ_Номенклатура.Наименование КАК Наименование,
    ВТ_Номенклатура.Артикул КАК Артикул,
    ВТ_Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    ВТ_Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВТ_Номенклатура.Родитель КАК Родитель,
    ВТ_Номенклатура.ИндексКартинки КАК ИндексКартинки,
    ВТ_Номенклатура.ВНаличии КАК ВНаличии,
    ВТ_Номенклатура.Цена КАК Цена,
    ВТ_Номенклатура.Цена2 КАК Цена2,
    ВТ_Номенклатура.ИспользуютсяХарактеристики КАК ИспользуютсяХарактеристики,
    ВТ_Номенклатура.Производитель КАК Производитель,
    ВЫБОР
        КОГДА ВТ_Номенклатура.ИспользоватьУпаковки
            ТОГДА ВЫБОР
                    КОГДА ВТ_Номенклатура.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
                        ТОГДА ВТ_Упаковки1Запись.ИндивидуальнаяУпаковка
                    ИНАЧЕ ВТ_Номенклатура.НаборУпаковок
                КОНЕЦ
    КОНЕЦ КАК НаборУпаковок,
    ЕСТЬNULL(ВТ_Резерв.ВРезервеСоСклада, 0) + ЕСТЬNULL(ВТ_Резерв.ВРезервеПодЗаказ, 0) КАК ВРезерве,
    ВТ_Номенклатура.ВНаличии - (ЕСТЬNULL(ВТ_Резерв.ВРезервеСоСклада, 0) + ЕСТЬNULL(ВТ_Резерв.ВРезервеПодЗаказ, 0)) КАК Доступно
ИЗ
    ВТ_Номенклатура КАК ВТ_Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Упаковки1Запись КАК ВТ_Упаковки1Запись
        ПО ВТ_Номенклатура.Ссылка = ВТ_Упаковки1Запись.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Резерв КАК ВТ_Резерв
        ПО ВТ_Номенклатура.Ссылка = ВТ_Резерв.Номенклатура
2 Vladislava-smile
 
30.04.22
10:44
Если главной ставить справочник и левым цеплять вирт таблицу по ссылке - основная таблица есть справочник и все естественно хорошо.
2 + 2 = 3.9999999999999999999999999999999...