Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Необязательные параметры СКД и ВЫБОР КОГДА

Необязательные параметры СКД и ВЫБОР КОГДА
Я
   salvator
 
14.02.20 - 15:28
Всем привет.
С СКД сто лет не работал. Нужно в секции ГДЕ поставить необязательные условия.
Пишу:
...
{ГДЕ
    (ХозрасчетныйОстатки.Организация = &Организация),
    (ВЫБОР
            КОГДА &ОтборПоПодразделению
                ТОГДА ХозрасчетныйОстатки.Подразделение = &Подразделение
            ИНАЧЕ НЕ ХозрасчетныйОстатки.Подразделение В
                        (ВЫБРАТЬ
                            ПодразделенияОрганизаций.Ссылка
                        ИЗ
                            Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
                        ГДЕ
                            ПодразделенияОрганизаций.ОбособленноеПодразделение
                            И ПодразделенияОрганизаций.Владелец = &Организация)
        КОНЕЦ)}
...

Если не заполнить параметр "Подразделение", то выдается ошибка, что параметр не указан.
Как написать конструкцию ГДЕ, чтобы параметры "Организация", "Подразделение" могли быть незаполненными?
Параметр "ОтборПоПодразделению" рассчитываю ПриКомпоновкеРезультата.
 
 
   vicof
 
1 - 14.02.20 - 15:41
Убрать галку у параметра на вкладке параметры
   DrWatson
 
2 - 14.02.20 - 15:44
(0) Может убрать ВЫБОР, сделать отдельные необязательные условия, и уже в ПриКомпоновкеРезультата задавая те или иные параметры управлять какой отбор будет присутствовать в итоговом запросе.
   salvator
 
3 - 14.02.20 - 15:45
(1) Какую, "Запрет незаполненных"? Она не стоит
(2) Поподробнее можно? Как "управлять какой отбор будет"?
   DrWatson
 
4 - 14.02.20 - 15:51
(3) Если нужен отбор по подразделению - задаёшь параметр Подразделение, если по организации - Организация.
Не надо усложнять всё это конструкцией ВЫБОР.
   salvator
 
5 - 14.02.20 - 16:03
(4) ВЫБОР нужен для того, чтобы в зависимости от того, что указано в отборе по подразделению, формировать свой отбор. Там видно, что в конструкции ВЫБОР указано.
   toypaul
 
6 - 14.02.20 - 16:11
извращение какое-то. если ты сумел в модуле заполнить один параметр то почему бы не заполнить другой?

{ГДЕ
    (ХозрасчетныйОстатки.Организация = &Организация),
    (ХозрасчетныйОстатки.Подразделение = &Подразделение),
    (ХозрасчетныйОстатки.Подразделение В &СписокПодразделений),
}

СписокПодразделений - сам понимаешь как заполнить ...
   toypaul
 
7 - 14.02.20 - 16:12
если положить болт на оптимизацию то можно и вовсе оставить только

{ГДЕ
    (ХозрасчетныйОстатки.Организация = &Организация),
    (ХозрасчетныйОстатки.Подразделение В &СписокПодразделений)
}
   toypaul
 
8 - 14.02.20 - 16:13
да и кстати. если ты подумал про оптимизацию, то ВЫБОР тут вообще ни к месту
   toypaul
 
9 - 14.02.20 - 16:14
а если еще раз вспомнить про оптимизацию, то почему все условия в ГДЕ, а не в параметрах таблицы.

у нас за такое не принимают на работу :)
   salvator
 
10 - 14.02.20 - 16:16
Не, мне нужно как:
Если параметр пустая ссылка, то в качестве параметра брать все, кроме обособок.
Если указано, то брать его.
Не нужны несколько параметров с подразделениями, нужен один.
В результате решил ПриКомпоновкеРезультата изменять текст запроса, работает.
   pechkin
 
11 - 14.02.20 - 16:19
(7) а что разве В делается медленне чем = ?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.