|
Пустые параметры СКД | ☑ | ||
---|---|---|---|---|
0
Майбах
03.08.15
✎
19:16
|
Здравствуйте эксперты!
Скажите как настроить отчет с использованием СКД чтобы он формировался, даже когда не установлены его параметры например: Если КонецПериод пустое, что отчет формируется за все время. Как сделал я: Прописал в СКД на закладке параметры в поле Выражение - ВЫБОР КОГДА &КонецПериода=ДАТАВРЕМЯ(1,1,1) ТОГДА ТекущаяДата() ИНАЧЕ &КонецПериода КОНЕЦ Выводит ошибку - Не задано значение параметра "КонецПериод". Подскажи пожалуйста как решить данную проблему. |
|||
1
ViSo76
03.08.15
✎
19:27
|
Используя в запросе {КонецПериода}
|
|||
2
Майбах
03.08.15
✎
19:39
|
(1) Нельзя. Ошибка. параметр у меня используется в выражении ВЫБРАТЬ, а не конструкции условия ГДЕ.
|
|||
3
Майбах
03.08.15
✎
19:39
|
ВЫБРАТЬ
СостояниеОборудованияОстатки.Оборудование, СостояниеОборудованияОстатки.КоличествоОстаток, ВЫБОР КОГДА СостояниеОборудованияОстатки.СрокИспользования > ДАТАВРЕМЯ(1, 1, 1) ТОГДА РАЗНОСТЬДАТ(СостояниеОборудованияОстатки.СрокИспользования, {&КонецПериода}, МЕСЯЦ) ИНАЧЕ 0 КОНЕЦ КАК ОставшийсяСрокИспользования, ВЫБОР КОГДА СостояниеОборудованияОстатки.СрокГодности > ДАТАВРЕМЯ(1, 1, 1) ТОГДА РАЗНОСТЬДАТ(СостояниеОборудованияОстатки.Оборудование.СрокИспользования, {&КонецПериода}, МЕСЯЦ) ИНАЧЕ 0 КОНЕЦ КАК ОставшийсяСрокГодности ИЗ РегистрНакопления.СостояниеОборудования.Остатки({(&КонецПериода)}, ПринятКУчету) КАК СостояниеОборудованияОстатки |
|||
4
Chin
03.08.15
✎
19:40
|
(1) Установи параметру в конструкторе СКД признак "Использовать всегда"
|
|||
5
Майбах
03.08.15
✎
19:40
|
Вот так выдает ошибку. Что не верно записан запрос. Если убрать фигурные скобки с конструкции ВЫБРАТЬ тогда выйдет ошибка - не задан параметр КонецПериода.
|
|||
6
Майбах
03.08.15
✎
19:42
|
(4) Спасибо. Помогло. Если мы не ставим эту галочку то передает значение NULL да?
|
|||
7
Chin
03.08.15
✎
19:44
|
(6) Поставь параметр в результат запроса и посмотри, честно не помню. Либо NULL, либо пустое значение по типу параметра. Под рукой нет 1С-ки.
|
|||
8
Chin
03.08.15
✎
19:48
|
И не знаю что ты там получаешь, но при пустых значениях ты точно правильно считаешь поля по срокам годности. Проверь ещё раз, возможно у тебя там будут неправильные значения рассчитываться.
|
|||
9
Майбах
03.08.15
✎
20:00
|
(8) Да. При незаполненной дате в поле "Оставшийся срок годности" пишет = -24 173
|
|||
10
Майбах
03.08.15
✎
20:09
|
Есть еще у кого-нибудь варианты, как сделать правильно? :)
|
|||
11
GenV
03.08.15
✎
20:13
|
(0)
Вариант 1: Сделать параметр "КонецПериода" обязательным. Сделать еще один параметр в котором в выражении прописывать твой код из (0) и использовать в запросе. Тогда если "КонецПериода" будет не заполнен, то в доп. параметре будет текущая дата. Вариант 2: Для отчета на СКД добавить код в ПриКомпоновкиРезультата в котором проверять и заполнять "КонецПериода" |
|||
12
Chin
03.08.15
✎
20:39
|
(10) Ну итить налево... Твоя задача, твое решение. Хрен знает что ты там считаешь в своем запросе. У меня конечно большие сомнения, что при незаполненном параметре ((11), вариант 1)"КонецПериода", там будет текущая дата (скорее пустая), но проверить сейчас не могу, а на память точно не помню. Я бы просто создал ещё один параметр &ТекущаяДата И если &КонецПериода пустой использовал бы параметр с текущей датой (через конструкцию Выбор Когда...).
|
|||
13
Майбах
03.08.15
✎
22:36
|
(11) (12) Получилось через создание второго параметра. Спасибо. Интересно почему же не работает с одним параметром, ведь я просто создал параметр, и переместил код Выражение в новый параметр.
|
|||
14
Chin
04.08.15
✎
01:54
|
(13) Потому что при использовании пустого значения параметра в регистре и расчетном поле он приобретает разный смысл. Регистр считает, что параметр не задан и смотрит актуальные остатки, а поле тупо считает разность с нулевой датой.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |