Статическая переменная в Vanessa

1. AllexSoft 07.03.23 12:21 Сейчас в теме
Добрый день! Хочу в секции Переменные сделать статическую переменную, которая должна быть рассчитана один раз и дальше только использоваться готовое значение. Пишу так
МояТекущаяДата = '{ТекущаяДата()}'

Но при каждом использовании МояТекущаяДата в сценариях я получаю внезапно разные значения, то есть это такой шаблон который вычисляется каждый раз... а вот как сделать эту переменную статичной, то есть вычислить 1 раз и больше не пересчитывать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. uk09 07.03.23 12:54 Сейчас в теме
Добрый день!

ДатаСтрока = ТекущаяДата();
УстановленнаяДата = Дата(ДатаСтрока);
3. AllexSoft 07.03.23 13:26 Сейчас в теме
(2) не работает, не запускает сценарий вообще. "Выполнение сценариев закончено. БЫЛИ ОШИБКИ."
4. uk09 07.03.23 13:57 Сейчас в теме
А , где лог ошибок ? И, что используете в шаблоне ?
5. AllexSoft 07.03.23 14:14 Сейчас в теме
(4) в логе вообще ничего нет... запуск и завершение и все. Помоему так нельзя все же задавать параметры, они же в '' должны быть.
Если что использую Vanessa Automation
6. uk09 07.03.23 15:13 Сейчас в теме
7. AllexSoft 07.03.23 15:18 Сейчас в теме
(6)
Переменные: 

 глУникальныйПостфикс = '{Формат(ТекущаяДата(),"ДФ=ММддЧЧммсс;")}'

Сценарий: Я создаю элемент справочника
.....
.....
И в поле с именем 'Наименование' я ввожу текст 'Тест'"глУникальныйПостфикс"


Пробую заменить на
глУникальныйПостфикс = Формат(ТекущаяДата(),"ДФ=ММддЧЧммсс;")
не запускается.
8. uk09 07.03.23 15:20 Сейчас в теме
МояТекущаяДата = '{ТекущаяДата()}' - работает ?
9. AllexSoft 07.03.23 15:20 Сейчас в теме
10. uk09 07.03.23 15:22 Сейчас в теме
МояТекущаяДата = '{Дата(ДатаСтрока)}' - работает ? Разумеется, с объявленной ДатаСтрока
11. AllexSoft 07.03.23 15:22 Сейчас в теме
(10) работает... только вычисляет ее каждый раз при обращении! в этом и загвоздка...
12. uk09 07.03.23 15:23 Сейчас в теме
так, это - шаблон. Всегда будет вычислять, при обращении. Но, значение , будет одинаковым
15. AllexSoft 07.03.23 15:26 Сейчас в теме
(12) а у меня всегда разное... при каждом обращении разные данные (текущее время меняется он пересчитывает этот шаблон при обращении). В этом вся беда. Как его заставить один раз рассчитать и запомнить, вот это никак не получается
17. uk09 07.03.23 15:28 Сейчас в теме
(15)

Так нужно разнести ДатаСтрока и шаблон. ДатаСтрока объявить глобальной переменной и вычислить 1 раз.
13. uk09 07.03.23 15:25 Сейчас в теме
МояТекущаяДата = '{ТекущаяДата()}' - всегда будет вычислять значение по текущей дате, поэтому МояТекущаяДата - будет меняться
14. uk09 07.03.23 15:25 Сейчас в теме
что - не так ?
"Но при каждом использовании МояТекущаяДата в сценариях я получаю внезапно разные значения, то есть это такой шаблон который вычисляется каждый раз... а вот как сделать эту переменную статичной, то есть вычислить 1 раз и больше не пересчитывать?"
16. uk09 07.03.23 15:26 Сейчас в теме
МояТекущаяДата = '{Дата(ДатаСтрока)}' - одно и то же значение, должно быть
18. uk09 07.03.23 15:29 Сейчас в теме
Если Вы , каждый раз, считаете всю эту конструкцию, то это - ничем не отличается от ТекущаяДата()
19. AllexSoft 07.03.23 15:34 Сейчас в теме
Не, такая же ерунда... там видимо какой то спецсимвол есть что бы объявить статическую переменную.
Вот скрин приложил
Прикрепленные файлы:
20. uk09 07.03.23 15:39 Сейчас в теме
* Существует также другой вариант передать значение переменной в выражение на встроенном языке.
* Для этого нужно использовать специальное слово Контекст для локальных переменных. И специальное слово КонтекстСохраняемый для глобальных переменных.

Это, не работает ? Там же есть окно, для проверки значений переменных
AllexSoft; +1 Ответить
21. AllexSoft 07.03.23 15:40 Сейчас в теме
(20) а есть пример как это использовать ? такое не пробовал
23. uk09 07.03.23 15:41 Сейчас в теме
24. AllexSoft 07.03.23 15:45 Сейчас в теме
(23) да, видимо это правильное направление, в контексте надо инициировать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот