v8: Дополнить условие в текст запроса, исходя из условия. #591606


#0 by IBTM
Простая ситуация. Есть два условия (отбора) подразделение и должность, Например отбираю Сотрудников по подразделению соответствоенно: но например если указанно ещё и должность то нужно в этот запрос добавить условие Нашел тупое решение - двумя запросами... Как это мне сделать используя один запрос?
#1 by zak555
ВЫБРАТЬ    СотрудникиОрганизаций.Ссылка ИЗ    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
#2 by IBTM
Нееее... а если мне в данный момент не нужно отбор и по должности?
#3 by 1с-кин
используйте построитель запросов
#4 by 1с-кин
Там можно задать - если некое условие (ТекущаяДолжность пустая) выполняется, то СотрудникиОрганизаций.ТекущаяДолжностьОрганизации = &ТекДолжн отбор по ТекДолжность не делается.
#5 by IBTM
намек понел попробуем
#6 by guitar_player
вот так например
#7 by xarann
Или Понятно, что в данном случа можно было использовать простое добавление к тексту запроса, но предложенный вариант работает и при необходимости изменения середины запроса, например динамическое изменение полей выборки...
#8 by xarann
#9 by guitar_player
а нахрена изобретать лесопед с квадратными колесами? Ты еще предлагаешь 10 условий написать по типу?        ИначеЕсли ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ        ИначеЕсли ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии ИЛИ как когда то давно было в табеле? убытсо можно...
#10 by Defender aka LINN
Еще можно отбор СКД воткнуть, с группами условий... Это ж сразу сколько говнокода можно выдать!
#11 by xarann
Первым словом моего сообщения было "Или", целью служило осветить альтернативный вариант решения задачи, а на каких велосипедах кататься каждый вылысыпыдыст решает сам :) Тема определения "ЭтотОбъект.ВидСравненияПодразделение;" тобой тоже не раскрыта...
#12 by guitar_player
это было для примера выдрано из шаблона и чтобы не показывать что там было, написал так... А вообще можно отбор на форму закинуть или еще что-нибудь
#13 by Ненавижу 1С
#14 by xarann
Я все это прекрасно понимаю ;) Разное оружие для разных ситуаций, два языка - два крыла и т.д. В общем, Пусть ТС смотрит и решает, мы вариантов решений набросали.
#15 by Defender aka LINN
Месье знает толк в извращениях...
#16 by Ненавижу 1С
да я такой!
#17 by Maxus43
ГДЕ    (СотрудникиОрганизаций.ТекущееПодразделениеОрганизации = &ТекПодр ИЛИ СотрудникиОрганизаций.ТекущееПодразделениеОрганизации = Значение(Справочник.ПодразделенияОрганизаций.ПустаяСсылка))    И (СотрудникиОрганизаций.ТекущаяДолжностьОрганизации = &ТекДолжн ИЛИ СотрудникиОрганизаций.ТекущаяДолжностьОрганизации = Значение(Справочник.ДолжностиОрганизаций.ПустаяСсылка))
#18 by Ненавижу 1С
а вот это может сказаться на том, что индексы будут не использованными
#19 by Maxus43
хотя не так... Ну а в коде Запрос.УстановитьПараметр("НеОтбиратьПоПодразделению", ?(ЗначениеЗаполнено(ТекПодр), Ложь, Истина))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С