|
Выражение в параметре СКД (обработка пустого значения) | ☑ | ||
|---|---|---|---|---|
|
0
Asmodeus
14.04.09
✎
15:39
|
1С 8.1.13.37
УТ 10.3.3.3 Имею в СКД НаборДанныхЗапрос, в котором есть параметр &Валюта: " ... ИЗ ... РегистрСведений.КурсыВалют.СрезПоследних(&ДатаОкончания, Валюта = &Валюта) КАК КурсыВалютСрезПоследних ..." В конструкторе СКД, на закладке Параметры заполняется по умолчанию: Имя = "Валюта" Значение = "Валюта" Доступные типы = "СправочникСсылка.Валюты" Значение = "Справочник.Валюты.ПустаяСсылка" Хочу в поле "Выражение" поместить выражение, которое бы при незаполненной валюте считала бы валютой рубли (чтобы отчет что-то показал, если пользователь его открыл и сразу нажал "Сформировать", ничего не заполняя). Не очень понятна логика проверок. Что я перепробовал: 1. Игрался дополнительно в конструкторе СКД, на закладке "Настройки" вариантами заполнения параметра "Валюта" с целью получить ПустуюСсылку или Неопределено. 2. Пробовал разные выражения... .. Нашел, что если в поле "Выражение" поместить "Справочники.Валюты.НайтиПоКоду("810")", то отчет считает все в рублях. Всегда. Игнорируя пользователя :) .. Нашел, что конструкция "Если .. КонецЕсли" не работает, нашел, что работает конструкция "Выбор Когда Тогда Конец" :) А вот с условием беда... 1. "Выбор Когда &Валюта=Справочники.Валюты.ПустаяСсылка() Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - не работает никак (ошибок не выдает, рубли не подхватывает) 2. "Выбор Когда &Валюта=Значение(Справочник.Валюты.ПустаяСсылка) Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - не работает никак 3. "Выбор Когда &Валюта Есть Null Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - не работает никак 4. "Выбор Когда НЕ ЗначениеЗаполнено(&Валюта) Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" - работает всегда на рубли, даже когда параметр выбран (другой валютой) Судя по последней, складывается такое впечатление, что я выбираю одно, а проверяю другое... Как бы поставить правильное условие? Может быть как-то надо обращаться не к &Валюта, а как-нибудь, типа, СКД.Параметры.Валюта? |
|||
|
1
sergeante
14.04.09
✎
15:50
|
эммм... кривой способ есть ;) счас напешу
|
|||
|
2
sergeante
14.04.09
✎
15:54
|
Открываем в консоле отчётов твою схему скд.
Задаём значение параметра (выбираем рубли). Сохраняем схему. в режиме конфигуратора открываем сохранённую схему (заместо старой). В параметре ты увидишь ГУИД твоей валюты вместо наименования. Вот такой отчёт теоретически будет иметь предустановленный параметр. |
|||
|
3
sergeante
14.04.09
✎
15:56
|
разумеется всё это мы делаем в конструкторе схемы скд
|
|||
|
4
sergeante
14.04.09
✎
16:05
|
неа... не канает. гуид конвертится в строку...
|
|||
|
5
Asmodeus
14.04.09
✎
16:06
|
Это ж как надо извращаться чтобы такое найти? :)
Попробовал... Видимо пофиксили... Или наоборот, еще не родился этот баг в моих версиях :)) При попытке загрузить схему, сохраненную из консоли, выдает "Ошибка преобразования данных XDTO"+многобукв :) Параметры и настройки вообще пустые получаются :) |
|||
|
6
Asmodeus
14.04.09
✎
16:07
|
Так, ведь - предустановить параметр вполне получается "Справочники.Валюты.НайтиПоКоду("810")". Не получается правильное условие сделать, чтобы это работало только по умолчанию для незаполненного...
|
|||
|
7
IronDemon
14.04.09
✎
16:09
|
Процедура ПриОткрытии()
ЭлементПараметраДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Валюта"); ЭлементПараметраДанных.Значение = Справочники.Валюты.НайтиПоКоду("810"); КонецПроцедуры |
|||
|
8
Asmodeus
15.04.09
✎
12:41
|
Извиняюсь - убежал вчера.
(7) Спасибо, это отвечает поставленной цели. Но у меня остается первичный вопрос открытым: "Почему не получается задать сравнение значения параметра в поле Выражение, закладки Параметры в конструкторе СКД?" |
|||
|
9
MSensey
15.04.09
✎
17:37
|
Попробуй так - заведи второй параметр &ВалютаПоумолчанию, установи для нее нужное значение
А для &Валюта напиши: ВЫБОР КОГДА &Валюта=Справочники.Валюты.ПустаяСсылка() Тогда &ВалютаПоумолчанию ИНАЧЕ &Валюта КОНЕЦ |
|||
|
10
BabySG
15.04.09
✎
17:40
|
В параметрах надо выставить ссылку пустую на справочник, иначе туда прихожит непонятное значение.
У меня работает определение пустых параметров без проблем. |
|||
|
11
Asmodeus
16.04.09
✎
13:07
|
(10) У меня стоит в Настройках для параметра "Валюта" значение "Справочник.Валюты.ПустаяСсылка", равно как и в Параметрах в поле "Значение"
(9) Вопрос не стоит в том как присвоить параметру значение конкретной валюты - он нормально устанавливается кодом "Справочники.Валюты.НайтиПоКоду("810")". Вопрос в том, что он реагирует ни на условие "Выбор Когда &Валюта=Справочники.Валюты.ПустаяСсылка() Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" ни на "Выбор Когда &Валюта=Значение(Справочник.Валюты.ПустаяСсылка) Тогда Справочники.Валюты.НайтиПоКоду("810") Конец" |
|||
|
12
Asmodeus
16.04.09
✎
13:07
|
+(11) поправка - НЕ реагирует
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |