Отбор значения по нескольким строкам табличной части.
Добрый день.
Есть справочник с дополнительными реквизитами. Доп реквизиты - это табличная часть с полями свойство и значение. Свойств может быть разное количество. Как найти элемент справочника, который содержит все свойства и соответственно значения, переданные в условии.
Хотелось бы это все провернуть с помощью запроса, но не соображу с алгоритмом.
Можно весь справочник выгрузить в таблицу и в цикле отбирать строки по условию, но как то это "не гламурно".
Есть справочник с дополнительными реквизитами. Доп реквизиты - это табличная часть с полями свойство и значение. Свойств может быть разное количество. Как найти элемент справочника, который содержит все свойства и соответственно значения, переданные в условии.
Хотелось бы это все провернуть с помощью запроса, но не соображу с алгоритмом.
Можно весь справочник выгрузить в таблицу и в цикле отбирать строки по условию, но как то это "не гламурно".
По теме из базы знаний
- Всякие полезности
- Удаление данных с отбором и построением дерева ссылок в базах 1С 8.1-8.3 УТ 11/10.3, БП 2/3, ЗУП 2.5/3, КА 1.1/2, УНФ 1.6/3.0, Розница 2/3
- Несколько документов на основании одного
- Неудачный эксперимент переделки типового Версионирования объектов из XML в JSON
- Доработка формата EnterpriseData в расширении
Найденные решения
(1)
ВЫБРАТЬ
СправочникДР.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Свойства.НомерСтроки) КАК Количество
ИЗ
Справочник.МойСправочник.ДополнительныеРеквизиты КАК СправочникДР
ГДЕ
(СправочникДР.Свойство = &Свойство1
И СправочникДР.Значение = &Значение1)
ИЛИ (СправочникДР.Свойство = &Свойство2
И СправочникДР.Значение = &Значение2)
СГРУППИРОВАТЬ ПО
Свойства.Ссылка
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Свойства.НомерСтроки) = &КоличествоСвойств ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Берем консоль запросов. Пишем запрос к требуемой таблице, здесь это, наверное, тч справочника. Передаем параметры.
Потом надо будет еще добавить условие, что все параметры присутствуют в выборке, но это потом. Где результат выполнения первой части задачи?
Потом надо будет еще добавить условие, что все параметры присутствуют в выборке, но это потом. Где результат выполнения первой части задачи?
(2) Спасибо, что просто не написал :"Нужно написать запрос".
Запрос примерно выглядит так
В таком случае получаю 0 строчек, если "И" меняю на "ИЛИ" получаю много лишнего.
Запрос примерно выглядит так
ВЫБРАТЬ
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка КАК Ссылка,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство КАК Свойство,
ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ГДЕ
(ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = &Свойство1
И ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение = &Значение1)
И (ХарактеристикиНоменклатурыДополнительныеРеквизиты.Свойство = &Свойство2
И ХарактеристикиНоменклатурыДополнительныеРеквизиты.Значение = &Значение2) ПоказатьВ таком случае получаю 0 строчек, если "И" меняю на "ИЛИ" получаю много лишнего.
(3) ЗначенияСвойствОбъектов, вроде так называется регистр сведений, куда все значения, записанные в тч дополнительные реквизиты записываются, нужно запрос к нему делать, Объект это и будет нужный элемент справочника, а свойства и значения передать массивами в параметры
(4)
Это не РС, а справочник в которм хранятся значения дополнительных реквизитов .... просто сами ссылки на эти значения. А привязка каждого значения хранится именно в таблице ДополнительныеРеквизиты
(6) Это стандартный механизм БСП
дополнительные реквизиты записываются, нужно запрос к нему делать, Объект это и будет нужный элемент справочника, а свойства и значения передать массивами в параметры
Это не РС, а справочник в которм хранятся значения дополнительных реквизитов .... просто сами ссылки на эти значения. А привязка каждого значения хранится именно в таблице ДополнительныеРеквизиты
(6) Это стандартный механизм БСП
В этом запросе ты хочешь получить строки, в которых свойство сразу и 1 и 2. И значение.
Было бы странно, если бы там было не пусто...
Может быть, здесь надо получить отдельно элементы, у которых есть свойство 1, отдельно - у которых свойство 2? ведь каждое свойство - это разные строки в таблице базы данных...?
Получим два набора элементов, потом их пересечение даст нам искомое?
Было бы странно, если бы там было не пусто...
Может быть, здесь надо получить отдельно элементы, у которых есть свойство 1, отдельно - у которых свойство 2? ведь каждое свойство - это разные строки в таблице базы данных...?
Получим два набора элементов, потом их пересечение даст нам искомое?
(1)
ВЫБРАТЬ
СправочникДР.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Свойства.НомерСтроки) КАК Количество
ИЗ
Справочник.МойСправочник.ДополнительныеРеквизиты КАК СправочникДР
ГДЕ
(СправочникДР.Свойство = &Свойство1
И СправочникДР.Значение = &Значение1)
ИЛИ (СправочникДР.Свойство = &Свойство2
И СправочникДР.Значение = &Значение2)
СГРУППИРОВАТЬ ПО
Свойства.Ссылка
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Свойства.НомерСтроки) = &КоличествоСвойств Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот