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

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

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

Автор: Svetas_2024 13.01.24, 7:42

Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием для Украины", редакция 1.3 (1.3.66.1) , формы обычные (не управляемые)
задача "пользователь хочет иметь подключаемый/отключаемый фильтр номенклатуры по её характеристикам"




вопрос

есть запрос

ВЫБРАТЬ
    Номенклатура.Код КАК Код,
    ВЫРАЗИТЬ(Номенклатура.Наименование КАК СТРОКА(200)) КАК Наименование,
    Номенклатура.Артикул КАК Артикул,
    Номенклатура.ЕдиницаДляОтчетов.Вес КАК Вес,
    Номенклатура.ЕдиницаДляОтчетов.Объем КАК ЕдиницаДляОтчетовОбъем,
    Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    НоменклатурныеГруппы.Ссылка КАК НоменклатурныеГруппы,
    Номенклатура.ОсновноеИзображение КАК ОсновноеИзображение,
    ВЫРАЗИТЬ(Номенклатура.ОсновноеИзображение.ИмяФайла КАК СТРОКА(20)) КАК ИмяФайла,
    Номенклатура.ОсновноеИзображение.Объект КАК ОсновноеИзображениеХранилище,
    Номенклатура.ОтветственныйМенеджерЗаПокупки КАК ОтветственныйМенеджерЗаПокупки,
    ХарактеристикиНоменклатуры.Представление КАК Представление,
    ХарактеристикиНоменклатуры.Ссылка КАК Ссылка,
    СвойстваНом.Свойство.Представление КАК СвойствоПредстНом,
    СвойстваНом.Значение КАК ЗначениеНом,
    СвойстваНом.Свойство.Код КАК СвойствоКодНом,
    СвойстваНом.Свойство.Предопределенный КАК СвойствоПредопНом,
    ХарактеристикиНоменклатуры.Длина КАК Длина,
    НоменклатурныеГруппы.Представление КАК НоменклатурнаяГруппа,
    Номенклатура.Родитель КАК Родитель,
    СвойстваРод.Свойство КАК Свойство,
    СвойстваРод.Значение КАК Значение,
    СвойстваГр.Свойство КАК Свойство1,
    СвойстваГр.Значение КАК Значение1,
    СвойстваВид.Свойство КАК Свойство2,
    СвойстваВид.Значение КАК Значение2,
    ХранилищеДополнительнойИнформации.Ссылка КАК СсылкаКартинка,
    ХранилищеДополнительнойИнформации.Хранилище КАК Хранилище
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
        ПО Номенклатура.ВидНоменклатуры = ВидыНоменклатуры.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатурныеГруппы КАК НоменклатурныеГруппы
        ПО Номенклатура.НоменклатурнаяГруппа = НоменклатурныеГруппы.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        ПО (ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваНом
        ПО (СвойстваНом.Объект = Номенклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваГр
        ПО (СвойстваГр.Объект = Номенклатура.НоменклатурнаяГруппа.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваВид
        ПО (СвойстваВид.Объект = ВидыНоменклатуры.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваРод
        ПО (СвойстваВид.Объект = Номенклатура.Родитель.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
        ПО Номенклатура.ОсновноеИзображение = ХранилищеДополнительнойИнформации.Ссылка
ГДЕ
    ВидыНоменклатуры.Ссылка = &ВидНоменклатуры
    И НоменклатурныеГруппы.Ссылка = &НоменклатГруппа
    И
    Номенклатура.Ссылка В ИЕРАРХИИ
      (ВЫБРАТЬ
                Номенклатура.Ссылка КАК Ссылка
               ИЗ
                РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
                    ПО
                        ЗначенияСвойствОбъектов.Объект = Номенклатура.Ссылка
                   ГДЕ
                        ЗначенияСвойствОбъектов.Свойство.Наименование = &Свойство
                        И ЗначенияСвойствОбъектов.Значение.Наименование = &Значение)


который иммет 3 условия
ВидыНоменклатуры.Ссылка = &ВидНоменклатуры
    И НоменклатурныеГруппы.Ссылка = &НоменклатГруппа
    И
    Номенклатура.Ссылка В ИЕРАРХИИ
и вот эти 3 условия нужно перенести в отборы подключаемые/отключаемые пользователем
т.е.
чтобы пользователь сам мог выбирать наличие отбора (т.е. в одних случаях отбор есть, в других случаях отбора нет).

в случае с
ВидыНоменклатуры.Ссылка = &ВидНоменклатуры
    И НоменклатурныеГруппы.Ссылка = &НоменклатГруппа
всё просто

а вот с
Номенклатура.Ссылка В ИЕРАРХИИ
что делать?
как создать пользовательский отбор - чтобы пользователь сам мог выбирать фильтровать ли номенклатуру по значениям свойств характеристик или нет....

попробовала создала Источник данных 2 - засунула туда запрос
ВЫБРАТЬ
                Номенклатура.Ссылка КАК Ссылка
               ИЗ
                РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
                    ПО
                        ЗначенияСвойствОбъектов.Объект = Номенклатура.Ссылка


но как правильно задать их связь (Источник данных 1 и источник данных 2) и как добавить в пользовательские отборы &Свойство и &Значение?-


Автор: Svetas_2024 18.01.24, 10:16

Svetas_2024 @ 13.01.24, 7:42 * ,
Svetas_2024 @ Сегодня, 9:49 * ,
Vofka помоги пожалуйста

Автор: Vofka 19.01.24, 9:15

Так а что за проблема с Номенклатура.Ссылка В ИЕРАРХИИ? Выглядит как такой же отбор, что и остальные.

Автор: sava1 19.01.24, 10:59

На форму тз данные тз- комплновщик.гастройки.отбор

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