Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 окт 2021, 20:14

Выборка в запросе с у

Автор AmoZ, 21 мар 2017, 15:05

0 Пользователей и 1 гость просматривают эту тему.

AmoZ

Доброго времени суток!
Есть регистр накопления "Продажи" и есть регистр сведений с двумя измерениями. Условно назовем "РеквезитОдин" и "РеквезитДва".
И одним ресурсом "Процент".
В "Продажах" так же добавлены "РеквезитОдин" и "РеквезитДва".

В РС есть, к примеру, записи:   
"РеквезитОдин""РеквезитДва""Процент"
Значение1Значение2 13
Значение120
Значение3Значение415

Нужно в запросе если есть Значение1 и Значение2, то выбрать 13.
Если есть только Значение1, а не заполнен "РеквезитДва", то 20.

LexaK

вам надо сделать два левых соединения
примерно так, свои поля/реквизиты/значения подставьте


|ВЫБРАТЬ
| Рег.*
| //если Проц1 не найден, то берем Проц2, если и его нет - то 0
| ЕстьNull(Проц1.Процент, ЕстьNull(Проц2.Процент, 0) ) как Процент
|ИЗ
| РегистрНакопления.Продажи КАК Рег
|
|//поиск по двум Реквизитам
|левое соединение РегистрСведений.Настройка как Проц1
| по Рег.Реквизит1 = Проц1.Реквизит1
| и  Рег.Реквизит2 = Проц1.Реквизит2
|
|//поиск по одному Реквизиту
|левое соединение РегистрСведений.Настройка как Проц2
| по Рег.Реквизит1 = Проц2.Реквизит1
|   и  Проц2.Реквизит2 = Значение(<ПустаяСсылкаЧегоТоТам>)
|   //или если Реквизит2 имеет состаной тип, тогда так
|   //и  Проц2.Реквизит2 = Неопределено
|

ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск