Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Значение константы в выражении, параметр СКД

Значение константы в выражении, параметр СКД
Я
   Veronikin
 
06.10.20 - 12:31
Подскажите пожалуйста,
мне нужно в параметр в СКД получить значение константы. Пишу в выражение: ЗНАЧЕНИЕ(Константа.ДатаРеорганизации), ругается - неверные параметры.
Как правильно написать выражение?
   toypaul
 
1 - 06.10.20 - 12:36
Константы.ДатаРеорганизации.Получить()
   mikecool
 
2 - 06.10.20 - 12:36
+1 в параметрах
а сам параметр - в запрос
   Veronikin
 
3 - 06.10.20 - 12:38
(1) Так выдает ошибку на этапе формирования:
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{ВнешнийОтчет.ДанныеДляРасчетаЛистковНетрудоспособности.МодульОбъекта(16)}: Ошибка при вызове метода контекста (Инициализировать)

по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка "Константы.ДатаРеорганизации.Получить"
   mistеr
 
4 - 06.10.20 - 12:40
Константу нельзя получить в выражении СКД. Нужно получить в коде и передать в параметр.
   Dionisious
 
5 - 06.10.20 - 12:40
Можно таблицу Константы добавить в запрос.
Или в ПриКомпоновкеРезультата установить параметр данных компоновщика настроек.
   Veronikin
 
6 - 06.10.20 - 12:41
(4) Понятно. Просто на ИТС аналогичный пример разобран, там предлагается через ЗНАЧЕНИЕ()
   toypaul
 
7 - 06.10.20 - 12:46
какая-то дискриминация констант ... например Справочники.ХХХ.НайтиПоНаименованию работает
   Андроны едут
 
8 - 06.10.20 - 12:49
Синтаксическая ошибка "Константы.ДатаРеорганизации.Получить"  скобочек () не хватает
   Veronikin
 
9 - 06.10.20 - 12:53
(8) В выражении вот так написано: Константы.ДатаРеорганизации.Получить()
   mistеr
 
10 - 06.10.20 - 13:51
(7) Где работает?
   bolder
 
11 - 06.10.20 - 14:11
(5) Это правильное решение.Именно так работает в РЛС.
   toypaul
 
12 - 06.10.20 - 14:37
(10) в выражении параметра
   fisher
 
13 - 06.10.20 - 14:46
(6) На ИТС? Константу? Через ЗНАЧЕНИЕ()? Не верю! Покажи где.
   fisher
 
14 - 06.10.20 - 14:48
(7) В СКД случаются "протечки" в глобальный контекст, хотя должно работать только то, что описано в возможностях языка выражений СКД. На инфостарте даже статьи были на эту тему, где народ находил чего работает из недокументированного и списки составлял. Но я бы поостерегся это использовать. В любой момент зарубить могут.
   Veronikin
 
15 - 06.10.20 - 17:47
(13) я же написала - аналогично, там перечисление
   Veronikin
 
16 - 06.10.20 - 17:47
В итоге вот так сделала:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

   Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
   
   Параметры.УстановитьЗначениеПараметра("ДатаРеорганизации", Константы.ДатаРеорганизации.Получить());
      
КонецПроцедуры
   fisher
 
17 - 06.10.20 - 17:56
(15) Тогда понятно. Константы в ЗНАЧЕНИЕ() не поддерживаются. Если открыть справку по ЗНАЧЕНИЕ() - константы отсутствуют в списке допустимых вариантов.
Но, по-моему, ЗНАЧЕНИЕ() вообще нельзя использовать в поле "Выражение" параметров СКД. Этого ключевого слова нет в языке выражений СКД. Это ключевое слово языка запросов.
   youalex
 
18 - 06.10.20 - 18:08
Можно параметром, а значение параметра указать  на закладке Параметры, в поле "Выражение", стандартно Константы.Константа1.Получить()
   youalex
 
19 - 06.10.20 - 18:10
в вычисляемые поля - тоже можно тем же макаром

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.