Как правильно найти элемент по значениям доп реквизитов?

1. Marliiin 24.01.20 08:04 Сейчас в теме
Доброе утро.

У меня имеется Номенклатура, мне нужно найти программно в базе ее Характеристику. У характеристики есть некий набор дополнительных реквизитов, по которым мне и нужно ее искать.

Как правильно это сделать в запросе?

Пока я дошел только до уродливой конструкции, в которой я сначала ищу все характеристики, владельцем которых является моя номенклатура, помещаю во временную таблицу, затем результат временной таблицы я проверяю на значение первого доп реквизита, помещаю во временную таблицу, эту временную таблицу проверяю на результат второго доп реквизита и т д . Словом, получился большой запрос с множеством временных таблиц, который еще и приходится формировать динамически (в случае, если характеристики значение доп реквизита не заполнено, например) . Понимаю что это топорно и неправильно.

Но как сделать правильно?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 24.01.20 08:58 Сейчас в теме
да в общем правильно все делаете, только в один запрос попробуйте
все Допы левым соединением присоединяйте
и по условие Где останутся нужные
6. Marliiin 24.01.20 09:32 Сейчас в теме
(2) (3)

Проблема заключается еще в том, что мне нужно все это сделать для табличной части. То есть запрос выходит для каждой характеристики свой (ведь некоторых доп реквизитов нет), а в цикле по ТЧ это делать не хочется. Надо сделать одним запросом.

Пока идея основная сделать еще доп реквизит, в который записывать в строку уникальные идентификаторы каждого значения доп реквизита. И при поиске просто по своему набору создавать строку и искать уже только по ней.

(4)

Ну об этом я и пишу в посте. Просто доп реквизитов много (предположим, 10), и выходит что надо делать 10 временных таблиц. Плюс запрос для каждой характеристики выходит разный, а мне надо сделать один запрос, куда направить всю ТЧ, а не в цикле по каждой строке.

(5)
Это не проблема вовсе
3. VictorRGB2 13 24.01.20 09:01 Сейчас в теме
вводная недостаточная
конфигурация? как заведены доп реквизиты характеристики?

полагаю, что если есть допы, то они связаны с владельцем
раз так, то можно сразу установить условие на них по владельцу или же выполнить это соединением, но тут зависит от системы хранения этих допов и связи с владельцем

в общем случае схема запроса может быть такой - отбор характеристик по условию допов и владельцу характерисики (т.е. номенклатуры)
в итоге и получите нужные\нужную вам характеристику
4. kniga888 24.01.20 09:20 Сейчас в теме
Добавить в соединение табличную часть характеристик "Дополнительные реквизиты", соединить или отобрать по необходимому свойству (доп.реквизиту). При этом, для элементов, у которых значение реквизита никогда не устанавливалось - в табличной части "Дополнительные реквизиты" не будет строки со значением этого дополнительного реквизита в реквизите табличной части "Свойство".
5. muskul 24.01.20 09:25 Сейчас в теме
Самое геморное это вспомнить как правильно задать свойство что бы найти "свойство"
планвидохарактеристик чего то там.
7. kniga888 24.01.20 09:57 Сейчас в теме
(5)например, найти ПВХ "ДополнительныеРеквизитыИСведения" по наименованию:)
11. muskul 25.01.20 05:32 Сейчас в теме
(7)Для доп реквизита документа не сработало
8. Xershi 1483 24.01.20 10:05 Сейчас в теме
Если у вас 6 из 10 заполнено, то вам не нужно анализировать пустое значение.
До запроса можно это проверить и передать параметром. В запросе это анализировать.
9. PLAstic 295 24.01.20 14:21 Сейчас в теме
Выбрать
СправочникНоменклатура.Ссылка КАК Номенклатура,
ДопРеквизитТакойТо.Значение КАК ЗначениеТакогоТоДопРеквизита
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДопРеквизитТакойТо
ПО СправочникНоменклатура.Ссылка = ДопРеквизитТакойТо.Ссылка
И ДопРеквизитТакойТо.Свойство = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПредопределённыйРеквизитТакойТо)

Повторяешь левое соединение для каждого реквизита под отдельную колонку.

В условии не обозначена версия БСП, т.ч. адаптируй текст под себя.
10. DanDy 51 24.01.20 17:11 Сейчас в теме
Суем искомые значения искомых доп.реквизитов в массив
Выбираем запросом Ссылку и Значение из Доп реквизитов по условию вхождения свойства в массив
Далее это группируем по ссылке и КОЛИЧЕСТВО(Значение)
После чего нам остается сверить полученное КОЛИЧЕСТВО(Значение) с количеством элементов массива
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот