РЕКЛАМА

На главную страницу

РЕКЛАМА




Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок SAPE.


На главную 1с форева.ру
На страницу "Программисту \ Разработка СКД отчетов в 1с.".

Как сделать чтобы отчет СКД не выдавал ошибку если параметр не заполнен?

Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 06.02.2017


1с. СКД. Необязательный параметр.
Если в отчете СКД вы используете параметры, и на момент формирования отчета хотя-бы один из них окажется не заполнен, то произойдет ошибка "Ошибка исполнения отчета" и отчет не сформируется. Чтобы сделать не обязательным параметр используемый в отборе виртуальной таблицы или в условии ГДЕ, в коде запроса его надо взять в фигурные скобки. Тогда, при незаполненном параметре условие с ним будет игнорироваться.

Есть одно неудобство. Нельзя использовать в одних скобках условие с более чем одним параметром. В этом случае ошибка о незаполненном параметре возникает всё равно. Как быть? В условии виртуальной таблицы оставить условие с одним параметром в скобках, а остальные вынести в ГДЕ. Причем для каждого условия сделать отдельное ГДЕ, которое и взять в скобки. Тогда это работает.

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


Скобки надо добавлять в последний момент, когда отчет уже отлажен. Если после добавления скобок вы откроете запрос в Конструкторе запросов, то он склеит все конструкции ГДЕ в одну. И кстати, условия взятые в фигурные скобки в Конструкторе запроса видны не будут, но сохранятся при перезаписи запроса.



Copyright (c) by iKai, 2016