helpf.pro
Регистрация
 0 
Распечатать

Как организовать поиск свойств в запросе

Необходимо в документ "Заказ покупателя" 1С:Торговли 8.2 в табличной части организовать подбор по свойствам номенклатуры. Т.е. есть форма подбора где указываются свойства, родителя номенклатуры и необходимо вывести найденные номенклатуры по заданным условиям. Каким образом реализовать это в запросе? (например номенклатура полотно белый дуб - свойства - покрытие шпон, стекло нет, цвет - белый дуб и таких номенклатур много) Как эту номенклатуру выбрать через запрос?
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 20238
 0 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ;
Альтернативный перенос остатков между 7.7 и 8.1 (обработкой с ИТС ЗагрузкаДанныхИзТаблДокум) 2
Нашел альтернативный, практически моментальный способ переноса остатков между семерой и восьмерой (так и между восмерками). Не требуется никаких дополнительных усилий, программирования, писания обработок и т.д. и т.п. На ИТС есть обработка под наз
Ввод по строке - поиск по первым символам или в любом месте наименования 6
При разработке конфигурации, для упрощении ввода документов потребовалось настроить ввод номенклатуры по совпадению любой части наименования! В 1С 8.3 по умолчанию настройки справочника номенклатуры такие: При такой настройке, механизм поиска в
Выборка (перебор) элементов справочника 4
// Выбрать( , , , ) Номенклатура = Справочники.Номенклатура; Отбор = Новый Структура("ТипНоменклатуры"); Пусто = Перечисления.ТипыНоменклатуры.ПустаяСсылка(); Отбор.ТипНоменклатуры = Пусто; Выборка = Номенклатура.Выбрать(,,Отбор, "Наимено
Посмотреть все результаты поиска похожих
Комментарии
Diana13
15.03.2013 00:38Комментарий: 9
Diana13
Спасибо ВСЕМ огромное, пойду разбираться дальше )
E_Migachev
15.03.2013 00:20Комментарий: 8
E_Migachev
Diana13, для каждого поля в Событии начало выбора прописать заполнение списка выбора по аналогии : Поле выбора ~ Как заполнить список выбора элемента формы?
Diana13
14.03.2013 22:10Комментарий: 7
Diana13
ВОПРОСССССССССС!!!!!!!
Каким образом в обработке по подбору для каждого поля назначить список определенных значений из справочника. Т.е. например свойство цвет - белый, красный и .тд., а список открывается полностью.
Diana13
14.03.2013 22:08Комментарий: 6
Diana13
Вообщем сделала так;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ЦеныНоменклатурыСрезПоследних.Валюта КАК ВалютаЦены
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ

| Номенклатура.Ссылка КАК Номенклатура
| ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
| ГДЕ
| Номенклатура.Родитель = &Родитель
| И ЗначенияСвойствОбъектов.Свойство.Наименование В (&СписокНазначенийСвойств)
| И ЗначенияСвойствОбъектов.Значение.Наименование В (&СписокПараметров)) КАК ВложенныйЗапрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаРегистраСведений) КАК ЦеныНоменклатурыСрезПоследних
| ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура";
DJ_Serega
14.03.2013 00:14Комментарий: 5
DJ_Serega
Но запрос долго отрабатывает почему-то )
DJ_Serega
14.03.2013 00:06Комментарий: 4
DJ_Serega
Diana13, у Вас запрос ничего не выводит, так как условия написаны некорректно. Мой запрос по указанным параметрам вывел номенклатуру.
Ваши условия противоречат друг другу. Как минимум нужно было писать не:
Код 1C v 8.х
 
|ГДЕ
| Номенклатура.Родитель = &РОдитель
| И ЗначенияСвойствОбъектов.Свойство.Наименование = &Покрытие
| ИЛИ ЗначенияСвойствОбъектов.Значение.Наименование = &ПОкрытиеНом
| И ЗначенияСвойствОбъектов.Свойство.Наименование = &Цвет
| ИЛИ ЗначенияСвойствОбъектов.Значение.Наименование = &ЦветНом

а
Код 1C v 8.х
 
|ГДЕ
| Номенклатура.Родитель = &РОдитель
| И (ЗначенияСвойствОбъектов.Свойство.Наименование = &Покрытие
| И ЗначенияСвойствОбъектов.Значение.Наименование = &ПОкрытиеНом
| ИЛИ ЗначенияСвойствОбъектов.Свойство.Наименование = &Цвет
| И ЗначенияСвойствОбъектов.Значение.Наименование = &ЦветНом)
.
А вообще. Что бы вывести нужные поля, нужно писать гдето так:
Код 1C v 8.х
 
"ВЫБРАТЬ
| ЗначениеСвойства1.Объект КАК НайденныйОбъект,
| ЗначениеСвойства1.Свойство КАК Свойство,
| ЗначениеСвойства1.Значение КАК Значение
|ПОМЕСТИТЬ ОсновнаяВыборка
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначениеСвойства1
|ГДЕ
| ЗначениеСвойства1.Объект.Родитель = &Родитель
| И ЗначениеСвойства1.Свойство = &Свойство1
| И ЗначениеСвойства1.Значение = &Значение1
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗначениеСвойства2.Объект,
| ЗначениеСвойства2.Свойство,
| ЗначениеСвойства2.Значение
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначениеСвойства2
|ГДЕ
| ЗначениеСвойства2.Объект.Родитель = &Родитель
| И ЗначениеСвойства2.Свойство = &Свойство2
| И ЗначениеСвойства2.Значение = &Значение2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновнаяВыборка.НайденныйОбъект.Ссылка,
| ОсновнаяВыборка.НайденныйОбъект.Представление,
| ОсновнаяВыборка.НайденныйОбъект.Родитель,
| ОсновнаяВыборка.НайденныйОбъект.ЭтоГруппа,
| ОсновнаяВыборка.НайденныйОбъект.Код,
| ОсновнаяВыборка.Свойство,
| ОсновнаяВыборка.Значение
|ИЗ
| ОсновнаяВыборка КАК ОсновнаяВыборка"
Diana13
13.03.2013 23:14Комментарий: 3
Diana13
Тогда еще вопрос каким где назначить параметры Справочники.ЗначенияСвойствОбъектов и ПланыВидовХарактеристик.СвойстваОбъектов. И каким образом в обработке по подбору для каждого поля назначить список определенных значений из справочника. Т.е. например свойство цвет - белый, красный и .тд., а список открывается полностью.
Diana13
13.03.2013 23:05Комментарий: 2
Diana13
Я примерно так и пишу, только он не выводит значения..... У меня примерно так

Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Представление,
| Номенклатура.Родитель,
| Номенклатура.ЭтоГруппа,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Объект,
| ЗначенияСвойствОбъектов.Значение,
| ЗначенияСвойствОбъектов.Свойство
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
|ГДЕ
| Номенклатура.Родитель = &РОдитель
| И ЗначенияСвойствОбъектов.Свойство.Наименование = &Покрытие
| ИЛИ ЗначенияСвойствОбъектов.Значение.Наименование = &ПОкрытиеНом
| И ЗначенияСвойствОбъектов.Свойство.Наименование = &Цвет
| ИЛИ ЗначенияСвойствОбъектов.Значение.Наименование = &ЦветНом
DJ_Serega
13.03.2013 22:41Комментарий: 1
DJ_Serega
Во-первых: Вопрос задан не в "вопроснике" ;)

А по теме:
я бы как-то так написал ;)

Код 1C v 8.х
 
ЗапросПоиска = Новый Запрос("ВЫБРАТЬ
| ЗначениеСвойства1.Объект КАК НайденныйОбъект
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначениеСвойства1
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначениеСвойства2
| ПО ЗначениеСвойства1.Объект = ЗначениеСвойства2.Объект
|ГДЕ
| ЗначениеСвойства1.Свойство = &Свойство1
| И ЗначениеСвойства1.Значение = &Значение1
| И ЗначениеСвойства2.Свойство = &Свойство2
| И ЗначениеСвойства2.Значение = &Значение2"
);
ЗапросПоиска.УстановитьПараметр("Свойство1", ЗначениеСвойства1); // Справочники.ЗначенияСвойствОбъектов
ЗапросПоиска.УстановитьПараметр("Значение1", ЗначениеЗначения1); // ПланыВидовХарактеристик.СвойстваОбъектов
ЗапросПоиска.УстановитьПараметр("Свойство2", ЗначениеСвойства2); // Справочники.ЗначенияСвойствОбъектов
ЗапросПоиска.УстановитьПараметр("Значение2", ЗначениеЗначения2); // ПланыВидовХарактеристик.СвойстваОбъектов
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.