Найти тему

Синтаксис 1С СКД для необязательного параметра

Оглавление

Необязательный параметр в СКД - это параметр отбора, который может быть не заполнен пользователем при запуске отчета. Это позволяет создавать более гибкие и универсальные отчеты, которые могут быть адаптированы под различные условия.

Как сделать параметр необязательным?

Существует несколько способов сделать параметр необязательным в СКД:

1. Использование конструкции ВЫБРАТЬ

  • Логика: Если параметр не заполнен, то вместо него подставляется какое-либо нейтральное значение или выражение, которое не влияет на результаты запроса.
  • Пример:

SQL

ВЫБРАТЬ
*
ИЗ
Документ.Продажа
ГДЕ
(Дата документа >= &ДатаНачала) И
(Дата документа <= &ДатаОкончания) И
(Номенклатура = ВЫБРАТЬ
ЕСЛИ (&Номенклатура = '') ТО
Номенклатура
ИНАЧЕ
&Номенклатура
КОНЕЦ
)

  • В данном примере, если параметр &Номенклатура не заполнен, то отбор по номенклатуре не будет выполняться.

2. Использование функции ЕСТЬNULL

  • Логика: Проверяется, является ли параметр пустым. Если да, то условие отбора не добавляется.
  • Пример:

SQL

ВЫБРАТЬ
*
ИЗ
Документ.Продажа
ГДЕ
(Дата документа >= &ДатаНачала) И
(Дата документа <= &ДатаОкончания) И
(ЕСТЬNULL(&Номенклатура) ИЛИ Номенклатура = &Номенклатура)

3. Использование параметров отбора в макете отчета

  • Логика: В макете отчета можно настроить отбор таким образом, чтобы он применялся только при наличии значения в параметре.
  • Пример:В настройках отбора для параметра &Номенклатура установить условие: "Если значение не пусто".

Важные моменты:

  • Типы данных параметров: Для числовых и строковых параметров можно использовать пустую строку или нулевое значение для обозначения отсутствия значения. Для дат можно использовать специальные значения начала и конца временного интервала.
  • Совместимость с различными версиями 1С: Указанные способы работают в большинстве версий 1С. Однако, в некоторых старых версиях могут быть некоторые нюансы.
  • Сложные условия: Для более сложных условий отбора можно использовать комбинации указанных методов, а также функции языка запросов.

Дополнительные рекомендации:

  • Проверка параметров на корректность: Перед использованием параметров в запросе рекомендуется проверять их на корректность (например, на тип данных, диапазоны значений).
  • Использование подсказок: Для удобства пользователей можно добавлять подсказки к параметрам, которые будут отображаться при запуске отчета.
  • Создание универсальных отчетов: Необязательные параметры позволяют создавать более гибкие отчеты, которые могут быть адаптированы под различные задачи.

Выбор конкретного способа реализации зависит от сложности отчета и требований к его гибкости.

Пример более сложного условия:

SQL

ВЫБРАТЬ
*
ИЗ
Документ.Продажа
ГДЕ
(Дата документа >= &ДатаНачала) И
(Дата документа <= &ДатаОкончания) И
((ЕСТЬNULL(&Номенклатура) ИЛИ Номенклатура = &Номенклатура) И
(ЕСТЬNULL(&Контрагент) ИЛИ Контрагент = &Контрагент))

В этом примере отбор будет выполняться по номенклатуре и контрагенту только в том случае, если соответствующие параметры заполнены.

Помните, что правильное использование необязательных параметров позволяет создавать более гибкие и удобные отчеты.