Фильтр по дополнительному реквизиту в запросе
По теме из базы знаний
- Как в 1С оптимизировать запрос – пример ускорения в 6 раз
- Доработка функционала отправки дополнительных реквизитов 1С: ЭДО для Татнефть
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Загрузка дополнительных реквизитов номенклатуры и характеристик из файла с таблицей данных
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
Найденные решения
ВЫБРАТЬ
Партнеры.Ссылка КАК Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.ДополнительныеРеквизиты КАК ПартнерыДополнительныеРеквизиты
ПО (Партнеры.Ссылка = ПартнерыДополнительныеРеквизиты.Ссылка
И ПартнерыДополнительныеРеквизиты.Свойство = &Свойство)
ГДЕ
ПартнерыДополнительныеРеквизиты.Значение В (NULL, ЛОЖЬ)
Показать
(5)
ВЫБРАТЬ
| ПартнерыДополнительныеРеквизиты.Ссылка КАК Партнер
|ИЗ
| Справочник.Партнеры.ДополнительныеРеквизиты КАК ПартнерыДополнительныеРеквизиты
|ГДЕ
| ПартнерыДополнительныеРеквизиты.Свойство = &Свойство
| И ПартнерыДополнительныеРеквизиты.Значение = Ложь
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Реквизит дополнительный - то есть создан не в конфигураторе. То есть его значение находится в табличной части ДополнительныеРеквизиты справочника Партнеры, там же находятся значения всех остальных дополнительных реквизитов для данного справочника. Для каждого дополнительного реквизита по 1-й строке. Это стандартный механизм типовых конфигураций. То есть мне нужно найти конкретную строку в этой табличной части и если она есть и в ее колонке "Значение" стоит значение ИСТИНА, не выводить такого партнера в результат запроса. Не знаю, понятно ли я объяснил...
И как это сделать через условие ГДЕ?
Реквизит дополнительный - то есть создан не в конфигураторе. То есть его значение находится в табличной части ДополнительныеРеквизиты справочника Партнеры, там же находятся значения всех остальных дополнительных реквизитов для данного справочника. Для каждого дополнительного реквизита по 1-й строке. Это стандартный механизм типовых конфигураций. То есть мне нужно найти конкретную строку в этой табличной части и если она есть и в ее колонке "Значение" стоит значение ИСТИНА, не выводить такого партнера в результат запроса. Не знаю, понятно ли я объяснил...
И как это сделать через условие ГДЕ?
(1)
Я вообще подумал так - сделать отдельную виртуальную таблицу со значениями моего дополнительного реквизита для каждого партнера, потом соединить ее с виртуально таблицей Партнеров и в уже получившейся таблице сделать условие, что если значение доп реквизита ИСТИНА, эту строку не выбирать. Но это решение кажется мне довольно громоздким, может есть получше?
Я вообще подумал так - сделать отдельную виртуальную таблицу со значениями моего дополнительного реквизита для каждого партнера, потом соединить ее с виртуально таблицей Партнеров и в уже получившейся таблице сделать условие, что если значение доп реквизита ИСТИНА, эту строку не выбирать. Но это решение кажется мне довольно громоздким, может есть получше?
(5)
ВЫБРАТЬ
| ПартнерыДополнительныеРеквизиты.Ссылка КАК Партнер
|ИЗ
| Справочник.Партнеры.ДополнительныеРеквизиты КАК ПартнерыДополнительныеРеквизиты
|ГДЕ
| ПартнерыДополнительныеРеквизиты.Свойство = &Свойство
| И ПартнерыДополнительныеРеквизиты.Значение = Ложь
ВЫБРАТЬ
Партнеры.Ссылка КАК Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.ДополнительныеРеквизиты КАК ПартнерыДополнительныеРеквизиты
ПО (Партнеры.Ссылка = ПартнерыДополнительныеРеквизиты.Ссылка
И ПартнерыДополнительныеРеквизиты.Свойство = &Свойство)
ГДЕ
ПартнерыДополнительныеРеквизиты.Значение В (NULL, ЛОЖЬ)
Показать
(14)
На скорую руку (по двум):
И так далее, по любому количеству реквизитов.
На скорую руку (по двум):
ВЫБРАТЬ
Партнеры.Ссылка КАК Ссылка
ИЗ
Справочник.Партнеры КАК Партнеры
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.ДополнительныеРеквизиты КАК ДопРеквизитА
ПО (Партнеры.Ссылка = ДопРеквизитА.Ссылка
И ДопРеквизитА.Свойство = &СвойствоА)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.ДополнительныеРеквизиты КАК ДопРеквизитБ
ПО (Партнеры.Ссылка = ДопРеквизитБ.Ссылка
И ДопРеквизитБ.Свойство = &СвойствоБ)
ГДЕ
(ДопРеквизитА.Значение=ЛОЖЬ) И (ДопРеквизитБ.Значение=ИСТИНА)
ПоказатьИ так далее, по любому количеству реквизитов.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот