Уважаемые коллеги,
В шаблонах регламента документа при изменении статусов можно настраивать выполнение системных алгоритмов.
Как можно запретить переход на следующих статус по результатам работы системного алгоритма?
Шаблон регламента документа и системные алгортмы
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Шаблон регламента документа и системные алгортмы
Программист-самоучка
Re: Шаблон регламента документа и системные алгортмы
Если я правильно понял вопрос, то по правой кнопке в редактировании шаблона регламента на строке с парой состояний -> пункт "Условие перехода".
Из хэлпа:
Для каждой пары состояний, выбранной в средней панели, с помощью локальной функции можно задать "Условие перехода" – алгоритм, который должен завершить работу без ошибки перед тем, как документ будет переведен в новое состояние (т.е. выполнение алгоритма с ошибкой делает такой переход невозможным).
Большие возможности здесь предоставляет использование сценариев на языке JavaScript, исполняемых с помощью системного алгоритма №52.
Например, JavaScript может использоваться для контроля превышения какой-либо суммой из документа лимитированного значения, содержащегося в некотором поле. В окне настройке алгоритма JavaScript на вкладке "Библиотеки" подключается библиотека Планирование Запуск алгоритмов Работа с переменными окружения. Эта библиотека содержит функцию EnvironmentSetStr(nameVariable, ValueVariable), позволяющую установить значение переменной окружения nameVariable в ValueVariable. При настройке системного алгоритма №52 по кнопке [Поля алгоритма] открывается окно =Настройка дополнительных параметров= - в этом окне следует установить флаг Error. Введенное справа от данного флага имя строковой Переменной окружения должно использоваться в качестве nameVariable в указанной выше функции для передачи кода ошибки. "Ошибкой" при этом считается любое значение переменной, отличное от '0' ('0' – значение по умолчанию).
Таким образом, если в =Настройке дополнительных параметров= введено:
Error – MyErrorCode,
то для возврата кода ошибки в скрипте следует использовать фрагмент вида:
if (<Сумма> > <Лимитированное значение>) EnvironmentSetStr('MyErrorCode', '1');
Из хэлпа:
Для каждой пары состояний, выбранной в средней панели, с помощью локальной функции можно задать "Условие перехода" – алгоритм, который должен завершить работу без ошибки перед тем, как документ будет переведен в новое состояние (т.е. выполнение алгоритма с ошибкой делает такой переход невозможным).
Большие возможности здесь предоставляет использование сценариев на языке JavaScript, исполняемых с помощью системного алгоритма №52.
Например, JavaScript может использоваться для контроля превышения какой-либо суммой из документа лимитированного значения, содержащегося в некотором поле. В окне настройке алгоритма JavaScript на вкладке "Библиотеки" подключается библиотека Планирование Запуск алгоритмов Работа с переменными окружения. Эта библиотека содержит функцию EnvironmentSetStr(nameVariable, ValueVariable), позволяющую установить значение переменной окружения nameVariable в ValueVariable. При настройке системного алгоритма №52 по кнопке [Поля алгоритма] открывается окно =Настройка дополнительных параметров= - в этом окне следует установить флаг Error. Введенное справа от данного флага имя строковой Переменной окружения должно использоваться в качестве nameVariable в указанной выше функции для передачи кода ошибки. "Ошибкой" при этом считается любое значение переменной, отличное от '0' ('0' – значение по умолчанию).
Таким образом, если в =Настройке дополнительных параметров= введено:
Error – MyErrorCode,
то для возврата кода ошибки в скрипте следует использовать фрагмент вида:
if (<Сумма> > <Лимитированное значение>) EnvironmentSetStr('MyErrorCode', '1');
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Шаблон регламента документа и системные алгортмы
Это очень интересно.
Мне нужно остановить перевод статуса с помощью системного алгоритма.
Обычно для возврата результата выполнения алгоритма используется передаваемая по ссылке переменная типа TRecAcc.
Можно и узнать, какие значения и каким параметра этой структуры надо присваивать, чтобы происходило прерывание перехода статуса.
Попытки присвоения различным полям этой структуры (Error и Binding) оказались неудачными.
Мне нужно остановить перевод статуса с помощью системного алгоритма.
Обычно для возврата результата выполнения алгоритма используется передаваемая по ссылке переменная типа TRecAcc.
Можно и узнать, какие значения и каким параметра этой структуры надо присваивать, чтобы происходило прерывание перехода статуса.
Попытки присвоения различным полям этой структуры (Error и Binding) оказались неудачными.
Программист-самоучка