0
Владимир1С
05.09.11
✎
18:24
|
Функция получитьХарактеристикуНоменклатуры(нужЭлем_Ссылка,стр_цвет,стр_размер)// цвет размер
спрХар = справочники.ХарактеристикиНоменклатуры;
Запрос = новый Запрос;
Запрос.УстановитьПараметр("ном",нужЭлем_Ссылка);
Запрос.УстановитьПараметр("стрЦвет",стр_цвет);
Запрос.УстановитьПараметр("стрРазмер",стр_размер);
списСвойств = новый списокЗначений;
списСвойств.Добавить("1. Цвет");
списСвойств.Добавить("2. Размер");
Запрос.УстановитьПараметр("списСвойств",списСвойств);
списЗначений = новый списокЗначений;
естьцвет = справочники.х_Цвета.НайтиПоНаименованию(стр_Цвет,истина);
Если естьЦвет = справочники.х_Цвета.ПустаяСсылка() тогда
// в спр нет такого наименования
сообщить(" Разберитесь с цветом "+стр_Цвет);
конецЕсли; // создание элементов - только вручную
естьРазмер = справочники.х_Размеры.НайтиПоНаименованию(стр_Размер,истина);
Если естьРазмер = справочники.х_Размеры.ПустаяСсылка() тогда
// в спр нет такого наименования
сообщить(" Разберитесь с цветом "+стр_Цвет);
конецЕсли; // создание элементов - только вручную
// КОНТРОЛЬ - ВОЗВРАТ
Если (естьЦвет = справочники.х_Цвета.ПустаяСсылка())или(естьРазмер = справочники.х_Размеры.ПустаяСсылка()) тогда
возврат "";
КонецЕсли;
списЗначений.Добавить(естьЦвет);
списЗначений.Добавить(естьРазмер);
Запрос.УстановитьПараметр("списЗначений",списЗначений);
Запрос.Текст =
"ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Ссылка КАК ХарактНомСсылка,
| ХарактеристикиНоменклатуры.Наименование КАК НаимХарактеристики
|ИЗ
| Справочник.х_Цвета КАК х_Цвета,
| Справочник.х_Размеры КАК х_Размеры,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка
| ПО ЗначенияСвойствОбъектов.Объект = ХарактеристикиНоменклатуры.Ссылка,
| ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
|ГДЕ
| х_Размеры.Наименование = &стрРазмер
| И х_Цвета.Наименование = &стрЦвет
| И СвойстваОбъектов.Наименование В(&списСвойств)
| И х_Размеры.ПометкаУдаления = ЛОЖЬ
| И х_Цвета.ПометкаУдаления = ЛОЖЬ
| И ХарактеристикиНоменклатуры.ПометкаУдаления = ЛОЖЬ
| И СвойстваОбъектов.ПометкаУдаления = ЛОЖЬ
| И ЗначенияСвойствОбъектов.Значение В(&списЗначений)"
нужно выбрать значения свойств объектов, заданных в списЗначений. Но выбирает всё что есть, без разницы. Как задать фильтр правильно?
|
|