Имя: Пароль:
1C
1С v8
Запрос не реагирует на условие
0 Владимир1С
 
05.09.11
18:24
Функция получитьХарактеристикуНоменклатуры(нужЭлем_Ссылка,стр_цвет,стр_размер)// цвет размер
спрХар = справочники.ХарактеристикиНоменклатуры;    
Запрос = новый Запрос;

Запрос.УстановитьПараметр("ном",нужЭлем_Ссылка);
Запрос.УстановитьПараметр("стрЦвет",стр_цвет);
Запрос.УстановитьПараметр("стрРазмер",стр_размер);

списСвойств = новый списокЗначений;
списСвойств.Добавить("1. Цвет");
списСвойств.Добавить("2. Размер");
Запрос.УстановитьПараметр("списСвойств",списСвойств);

списЗначений = новый списокЗначений;

   естьцвет = справочники.х_Цвета.НайтиПоНаименованию(стр_Цвет,истина);
   Если естьЦвет = справочники.х_Цвета.ПустаяСсылка() тогда
       // в спр нет такого наименования
       сообщить(" Разберитесь с цветом "+стр_Цвет);
   конецЕсли; // создание элементов - только вручную    
   естьРазмер = справочники.х_Размеры.НайтиПоНаименованию(стр_Размер,истина);
   Если естьРазмер = справочники.х_Размеры.ПустаяСсылка() тогда
       // в спр нет такого наименования
       сообщить(" Разберитесь с цветом "+стр_Цвет);
   конецЕсли; // создание элементов - только вручную        
   // КОНТРОЛЬ - ВОЗВРАТ
   Если (естьЦвет = справочники.х_Цвета.ПустаяСсылка())или(естьРазмер = справочники.х_Размеры.ПустаяСсылка()) тогда
       возврат "";        
   КонецЕсли;
списЗначений.Добавить(естьЦвет);
списЗначений.Добавить(естьРазмер);
Запрос.УстановитьПараметр("списЗначений",списЗначений);



Запрос.Текст =

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

нужно выбрать значения свойств объектов, заданных в списЗначений. Но выбирает всё что есть, без разницы. Как задать фильтр правильно?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn