Выражение в параметре СКД (обработка пустого значения) #402486


#0 by Asmodeus
Имею в СКД НаборДанныхЗапрос, в котором есть параметр &Валюта: " ... ИЗ ..." В конструкторе СКД, на закладке Параметры заполняется по умолчанию: Имя = "Валюта" Хочу в поле "Выражение" поместить выражение, которое бы при незаполненной валюте считала бы валютой рубли (чтобы отчет что-то показал, если пользователь его открыл и сразу нажал "Сформировать", ничего не заполняя). Не очень понятна логика проверок. Что я перепробовал: 1. Игрался дополнительно в конструкторе СКД, на закладке "Настройки" вариантами заполнения параметра "Валюта" с целью получить ПустуюСсылку или Неопределено. 2. Пробовал разные выражения... .. Нашел, что если в поле "Выражение" поместить "Справочники.Валюты.НайтиПоКоду("810")", то отчет считает все в рублях. Всегда. Игнорируя пользователя :) .. Нашел, что конструкция "Если .. КонецЕсли" не работает, нашел, что работает конструкция "Выбор Когда Тогда Конец" :) А вот с условием беда... 1. "Выбор Когда &Валюта=Справочники.Валюты.ПустаяСсылка Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - не работает никак (ошибок не выдает, рубли не подхватывает) 2. "Выбор Когда &Валюта=Значение(Справочник.Валюты.ПустаяСсылка) Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - не работает никак 3. "Выбор Когда &Валюта Есть Null Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - не работает никак 4. "Выбор Когда НЕ ЗначениеЗаполнено(&Валюта) Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - работает всегда на рубли, даже когда параметр выбран (другой валютой) Судя по последней, складывается такое впечатление, что я выбираю одно, а проверяю другое... Как бы поставить правильное условие? Может быть как-то надо обращаться не к &Валюта, а как-нибудь, типа, СКД.Параметры.Валюта?
#1 by sergeante
эммм... кривой способ есть ;) счас напешу
#2 by sergeante
Открываем в консоле отчётов твою схему скд. Задаём значение параметра (выбираем рубли). Сохраняем схему. в режиме конфигуратора открываем сохранённую схему (заместо старой). В параметре ты увидишь ГУИД твоей валюты вместо наименования. Вот такой отчёт теоретически будет иметь предустановленный параметр.
#3 by sergeante
разумеется всё это мы делаем в конструкторе схемы скд
#4 by sergeante
неа... не канает. гуид конвертится в строку...
#5 by Asmodeus
Это ж как надо извращаться чтобы такое найти? :) Попробовал... Видимо пофиксили... Или наоборот, еще не родился этот баг в моих версиях :)) При попытке загрузить схему, сохраненную из консоли, выдает "Ошибка преобразования данных XDTO"+многобукв :) Параметры и настройки вообще пустые получаются :)
#6 by Asmodeus
Так, ведь - предустановить параметр вполне получается "Справочники.Валюты.НайтиПоКоду("810")". Не получается правильное условие сделать, чтобы это работало только по умолчанию для незаполненного...
#7 by IronDemon
#8 by Asmodeus
Извиняюсь - убежал вчера. Спасибо, это отвечает поставленной цели. Но у меня остается первичный вопрос открытым: "Почему не получается задать сравнение значения параметра в поле Выражение, закладки Параметры в конструкторе СКД?"
#9 by MSensey
Попробуй так - заведи второй параметр &ВалютаПоумолчанию, установи для нее нужное значение А для &Валюта напиши:
#10 by BabySG
В параметрах надо выставить ссылку пустую на справочник, иначе туда прихожит непонятное значение. У меня работает определение пустых параметров без проблем.
#11 by Asmodeus
У меня стоит в Настройках для параметра "Валюта" значение "Справочник.Валюты.ПустаяСсылка", равно как и в Параметрах в поле "Значение" Вопрос не стоит в том как присвоить параметру значение конкретной валюты - он нормально устанавливается кодом "Справочники.Валюты.НайтиПоКоду("810")". Вопрос в том, что он реагирует ни на условие "Выбор Когда &Валюта=Справочники.Валюты.ПустаяСсылка Тогда Справочники.Валюты.НайтиПоКоду("810") Конец"
#12 by Asmodeus
+ поправка - НЕ реагирует
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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