В процессе выполнения алгоритма для обмена данными между действиями существует сессия. Сессия представляет собой хранилище записей переменных вида «Имя» - «Данные» (например, Document – Строки документа). Каждое действие имеет набор каких-то входных данных, с которыми оно работает и какой-то результат своей работы. Действия, используя сессию, добавляют, удаляют или вносят изменения в данные записей, они берут исходные данные из сессии и по результату своей работы кладут обратно данные по именам.
У нас есть действие «Выбор номенклатуры», которое представляет визуальное действие, с помощью которого пользователь должен выбрать какую-то позицию номенклатуры (например, отсканировав штрихкод или выбрав позицию из списка).
Результат работы этого действия занесение в сессию переменной SelectedProduct (объект, который содержит информацию о товаре, количестве и других дополнительных полях).
После этого процесс происходит дальше по алгоритму.
Следующее действие, которое необходимо выполнить в данном примере это «Правка количества». Теперь действие «Правка количества» использует данные лежащие в сессии. Это тоже визуальное действие, отображающее формочку для ввода количества товара. После того как пользователь ввел данные, действие «Правка количества» вносит изменения в сессию, изменив количество номенклатуры (Молоко «Деревенское» вместо 1 пачки было занесено 6 пачек).
Следующее действие «Занесение в документ». Оно берет данные из сессии и в соответствии со своими настройками, которые мы сделали у этого действия, и заносит запись непосредственно в документ. Документ также лежит в сессии и все действия имеют к нему доступ.
После прекращения работы с документом (завершение или временный выход) сессия прекращает свое существование. При возобновлении работы с документом появляется новая сессия.