Страница 1 из 1

Шаблон регламента документа и системные алгортмы

Добавлено: 01 июл 2014, 11:05
Zver
Уважаемые коллеги,
В шаблонах регламента документа при изменении статусов можно настраивать выполнение системных алгоритмов.

Как можно запретить переход на следующих статус по результатам работы системного алгоритма?

Re: Шаблон регламента документа и системные алгортмы

Добавлено: 14 июл 2014, 13:11
mwoland
Если я правильно понял вопрос, то по правой кнопке в редактировании шаблона регламента на строке с парой состояний -> пункт "Условие перехода".
Из хэлпа:
Для каждой пары состояний, выбранной в средней панели, с помощью локальной функции можно задать "Условие перехода" – алгоритм, который должен завершить работу без ошибки перед тем, как документ будет переведен в новое состояние (т.е. выполнение алгоритма с ошибкой делает такой переход невозможным).
Большие возможности здесь предоставляет использование сценариев на языке JavaScript, исполняемых с помощью системного алгоритма №52.
Например, JavaScript может использоваться для контроля превышения какой-либо суммой из документа лимитированного значения, содержащегося в некотором поле. В окне настройке алгоритма JavaScript на вкладке "Библиотеки" подключается библиотека Планирование Запуск алгоритмов Работа с переменными окружения. Эта библиотека содержит функцию EnvironmentSetStr(nameVariable, ValueVariable), позволяющую установить значение переменной окружения nameVariable в ValueVariable. При настройке системного алгоритма №52 по кнопке [Поля алгоритма] открывается окно =Настройка дополнительных параметров= - в этом окне следует установить флаг Error. Введенное справа от данного флага имя строковой Переменной окружения должно использоваться в качестве nameVariable в указанной выше функции для передачи кода ошибки. "Ошибкой" при этом считается любое значение переменной, отличное от '0' ('0' – значение по умолчанию).

Таким образом, если в =Настройке дополнительных параметров= введено:
Error – MyErrorCode,
то для возврата кода ошибки в скрипте следует использовать фрагмент вида:
if (<Сумма> > <Лимитированное значение>) EnvironmentSetStr('MyErrorCode', '1');

Re: Шаблон регламента документа и системные алгортмы

Добавлено: 15 июл 2014, 20:25
Zver
Это очень интересно.
Мне нужно остановить перевод статуса с помощью системного алгоритма.
Обычно для возврата результата выполнения алгоритма используется передаваемая по ссылке переменная типа TRecAcc.

Можно и узнать, какие значения и каким параметра этой структуры надо присваивать, чтобы происходило прерывание перехода статуса.
Попытки присвоения различным полям этой структуры (Error и Binding) оказались неудачными.