Посмотрел вебинар от 26.08.15. Там было предложение от одного из слушателей о глобальных переменных, которое Алексей Кирсанов не понял.
Я пожалуй разовью тему, так как сам думал об этом.
Когда БП много, очень часто возникает необходимость сохранять результат работы, или какие-либо служебные данные, которые могут понадобиться в другом БП если наступит событие их запуска. Все это, как в рамках внутри CRM, так и всего Битрикс24. Тут либо вариант не завершать БП, чтобы сохранить переменную, либо плодить поля в уникальных списках. Было бы здорово, если иметь возможность просто сохранять результат в глобальную переменную которая продолжает жить после завершения БП. Иметь возможность производить с ней арифметические операции из других БП, дополнять, изменять и всегда иметь возможность посмотреть накопленный результат. Когда не нужно - удалить. Вариантов использования масса. Основная мысль я думаю ясна.
Я вижу это примерно так. Глобальная переменная(ГП) создается\изменяется\удаляется из БП через отдельный блок (ГП) в дизайнере БП. В блоке сразу отображаются все ГП. Время жизни не ограниченно, отдельное поле в БД. Очень хорошо бы было иметь возможность записи переменных типа структура.
Тогда можно было бы хранить эти значения во внешних системах.
Да, константы относятся к шаблону БП. Но, они "живут" пока БП не завершился, и не доступны из других БП.
Да, шаблоны прикрепляются к конкретному БП и при их изменении можно быстро поменять параметры. Но, они прикрепляются к конкретному(одному единственному) шаблону БП.
Попробовал обратиться к значению константы напрямую(в списке константы только внутренние), пробовал и при запущенном БП(из которого пробовал взять переменные и константы) - никак не получилось.
Вообще в FAQ явным образом об этом не указано, но есть намек, что сохранять данные, если они нужны после работы БП - нужно " если необходимо куда-то сохранять переменную, например файл, который пользователь должен добавить на определенном этапе, то следует использовать действие Изменение документа". Источник:
Так что, даже напрямую обратиться к переменной или константе из другого БП не получается. А шаблоны прикрепляются к конкретному БП. Кстати, возможность прикреплять шаблон сразу к группе БП - это тоже идея.
Из описания вашей задачи
API есть, если потребность очень большая, можно воспользоваться им (методы CBPWorkflowTemplateLoader). Но не могу сказать, что это удобно и документации нет, скорее всего.
Ещё как вариант вам, более простой - я для хранения каких-либо глобальных вещей для БП использую COption, гораздо проще устанавливать и считывать, нежели константы БП.
Я о коробке.
я даже не затрагивал.
Ещё как вариант вам, более простой - я для хранения каких-либо глобальных вещей для БП использую COption, гораздо проще устанавливать и считывать, нежели константы БП.
Спасибо за прямую ссылки к нужному классу. Если остро понадобиться - обращусь к ней.
Битрикс можете данную ситуацию пояснить?
ну и про глобальную переменную очень интересно... можно бы было не контантами задавать а ГП тогда.