Пустые параметры СКД #749753


#0 by Майбах
Здравствуйте эксперты! Скажите как настроить отчет с использованием СКД чтобы он формировался, даже когда не установлены его параметры например: Если  КонецПериод пустое, что отчет формируется за все время. Как сделал я: Прописал в СКД на закладке параметры в поле Выражение - ВЫБОР КОГДА &КонецПериода=ДАТАВРЕМЯ(1,1,1) ТОГДА ТекущаяДата  ИНАЧЕ &КонецПериода КОНЕЦ Выводит ошибку - Не задано значение параметра "КонецПериод". Подскажи пожалуйста как решить данную проблему.
#1 by ViSo76
Используя в запросе {КонецПериода}
#2 by Майбах
Нельзя. Ошибка. параметр у меня используется в выражении ВЫБРАТЬ, а не конструкции условия ГДЕ.
#3 by Майбах
ВЫБРАТЬ
#4 by Chin
Установи параметру в конструкторе СКД признак "Использовать всегда"
#5 by Майбах
Вот так выдает ошибку. Что не верно записан запрос. Если убрать фигурные скобки с конструкции ВЫБРАТЬ тогда выйдет ошибка - не задан параметр КонецПериода.
#6 by Майбах
Спасибо. Помогло. Если мы не ставим эту галочку то передает значение NULL да?
#7 by Chin
Поставь параметр в результат запроса и посмотри, честно не помню. Либо NULL, либо пустое значение по типу параметра. Под рукой нет 1С-ки.
#8 by Chin
И не знаю что ты там получаешь, но при пустых значениях ты точно правильно считаешь поля по срокам годности. Проверь ещё раз, возможно у тебя там будут неправильные значения рассчитываться.
#9 by Майбах
Да. При незаполненной дате в поле "Оставшийся срок годности" пишет = -24 173
#10 by Майбах
Есть еще у кого-нибудь варианты, как сделать правильно? :)
#11 by GenV
Вариант 1: Сделать параметр "КонецПериода" обязательным. Сделать еще один параметр в котором в выражении прописывать твой код из и использовать в запросе. Тогда если "КонецПериода" будет не заполнен, то в доп. параметре будет текущая дата. Вариант 2: Для отчета на СКД добавить код в ПриКомпоновкиРезультата в котором проверять и заполнять "КонецПериода"
#12 by Chin
Ну итить налево... Твоя задача, твое решение. Хрен знает что ты там считаешь в своем запросе. У меня конечно большие сомнения, что при незаполненном параметре (, вариант 1)"КонецПериода", там будет текущая дата (скорее пустая), но проверить сейчас не могу, а на память точно не помню. Я бы просто создал ещё один параметр &ТекущаяДата И если &КонецПериода пустой использовал бы параметр с текущей датой (через конструкцию Выбор Когда...).
#13 by Майбах
Получилось через создание второго параметра. Спасибо. Интересно почему же не работает с одним параметром, ведь я просто создал параметр, и переместил код Выражение в новый параметр.
#14 by Chin
Потому что при использовании пустого значения параметра в регистре и расчетном поле он приобретает разный смысл. Регистр считает, что параметр не задан и смотрит актуальные остатки, а поле тупо считает разность с нулевой датой.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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