Необходимо иметь возможность создавать отчет с необязательной фильтрацией по параметрам. В имеющемся отчете задана только схема компоновки данных.

Для параметров заданы соотв. типы. Значения по умолчанию пробовал задавать или не задавать -- как в "Параметры", так и "Настройки->Параметры" (илл. 1,2). Для поля подразделенния значение по умолчанию выбирал либо "ПустаяСсылка" соотв. справочника, либо ничего.

При выборе в форме только одного параметра (илл. 3), в зависимости от варианта ниже, либо отчет получается пустым, либо возникает ошибка "Не задано значение параметра <параметр>".

---

Найденная информация и опробованные варианты:
* https://www.mykib.org/article/1s8-primenenie-neobyazatelnyh-parametrov-otcheta-v-skd-isklyuchenie-oshibki-pri-ispolnenii, http://forum.infostart.ru/forum9/topic122169/message1270859/#message1270859 -- заключать всё условие фильтрации по параметрам в фигурные скобки.

```1c
    {ГДЕ
    (Сотрудники.Подразделение В ИЕРАРХИИ (&ГоловноеПодразделение)),
    (ГОД(ЗаданиеНаРаботу.ДатаВыполненияРабот) = &Год)}
```

Такое условие исключается только если ВСЕ параметры не заданы. Задание своего блока "{ГДЕ}" для каждого параметра ничего не меняет.

* https://wiki.programstore.ru/1s-skd-parametry-i-neobyazatelnye-parametry/ -- не указывать "Псевдоним" в конструкторе отчета в "Компоновка данных->Условия" (нужно удалить псевдонимы, сгенерированные UI конструктора) -- в варианте выше убирает ошибку "поле не заполнено", если какой-то из параметров не выбран, но на применение/неприменение условий не влияет.

* http://forum.infostart.ru/forum9/topic122169/message1270946/#message1270946 -- short-circuit условие

```1c
    ГДЕ
    ВЫБОР КОГДА &ГоловноеПодразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
    ТОГДА ИСТИНА ИНАЧЕ Сотрудники.Подразделение В ИЕРАРХИИ (&ГоловноеПодразделение) КОНЕЦ
```

или

```1c
    ГДЕ
    (&ГоловноеПодразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
    ИЛИ Сотрудники.Подразделение В ИЕРАРХИИ (&ГоловноеПодразделение))
```

ошибка "Не задано значение параметра".

* Выбирать в запросе всё, а фильтрацию делать в настройках отбора.

Невозможно. В отборе нельзя сравнивать с параметром, а только с явно заданным конкретным значением (илл. 4).

* http://forum.infostart.ru/forum9/topic122169/message1270969/#message1270969 -- редактировать программную логику формирования отчета: менять схему компоновки в зависимости от параметров. В сообщении предлагается добавлять отбор, но, видимо, можно и изменить текст запроса.

Не смог это попробовать, т.к.

  * в "голом" отчете на СКД нет никакого кода, нечего редактировать. (Эта тема, видимо, обширная, достаточно ссылки на релевантный материал, как кастомизировать отчеты на СКД.)
    * У отчета, сгенерированного по СКД, вообще нет ни форм, ни модулей, ни даже обработчиков в св-вах, редактировать/переопределять нечего. Каких-то примеров переопределения логики для вставки в модуль объекта также не нагуглил.
    * Насколько вижу, в моем случае для "голого" отчета используется общая форма "ФормаОтчета" из БСП, указанная в "Конфигурация->Свойства->Основная форма отчета", и логика формирования находится в модуле этой формы. Из логики этого модуля я также не могу ничего переопределить в своем отчете, т.к. при создании в отчете своей формы создается совсем другая, независимая форма, никак не связанная с общей. Более того, у стандартных кнопок командной панели этой новой формы нет никаких св-в, и у формы нет никаких релевантных генерации отчета событий и никаких команд -- опять переопределять нечего!
  * Непонятно, как проверять, что параметр не выбран. "ЗначениеЗаполнено(<Реквизит формы>)" проверяет, что указано в соотв. поле ввода, но меня интересует не оно, а галка рядом с ним. В форме названия полей/реквизитов посмотреть не могу, т.к. эти поля автогенерируемые.
---
Сработал вариант

```1c
    {ГДЕ
    (Сотрудники.Подразделение В ИЕРАРХИИ (&ГоловноеПодразделение)),
    (ГОД(ЗаданиеНаРаботу.ДатаВыполненияРабот) = &Год)}
```

Когда я в "Параметры" для подразделения выбрал значением по умолчанию не ничего и не ПустаяСсылка, а пустую строку (отображается как "<Пустое значение>") (см. илл.)
(4)
---
а если сделать так:
в запрос добавить условие
```1c
    {ГДЕ
    Сотрудники.Подразделение,
    (ГОД(ЗаданиеНаРаботу.ДатаВыполненияРабот)) КАК ГодДатыВыполненияРабот}
```

затем в настройках СКД добавить в отбор эти поля
для подразделения ВидСравнения = В группе
для года - Равно
и ещё в наборе данных для поля ГодДатыВыполненияРабот установить формат редактирования ЧГ=0
после этого включить эти отборы в пользовательские настройки
---
Попробовав, вспомнил, что через настройки отбора я тоже уже пробовал.

В настройках отбора нельзя сравнивать с параметром, только с константой (см. илл.).

(Добавил эту инфу в исходное сообщение.)
---
Задание своего блока "{ГДЕ}" для каждого параметра ничего не меняет. Проверьте еще раз, это должно работать.
---
Сработал вариант

```1c
    {ГДЕ
    (Сотрудники.Подразделение В ИЕРАРХИИ (&ГоловноеПодразделение)),
    (ГОД(ЗаданиеНаРаботу.ДатаВыполненияРабот) = &Год)}
```

Когда я в "Параметры" для подразделения выбрал значением по умолчанию не ничего и не ПустаяСсылка, а пустую строку (отображается как "<Пустое значение>") (см. илл.)
(4)