Значение переменной окружения и ф-я EnvironmentSetStr

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Один Из Вас
Посетитель
Сообщения: 43
Зарегистрирован: 18 мар 2015, 13:35

Значение переменной окружения и ф-я EnvironmentSetStr

Сообщение Один Из Вас »

-Доброе время суток, форумчане.
Надо в 52-м алгоритме определить значение переменной окружения EnvironmentSetStr('MyError', X), которое по действую аналогично Esc, т.к. используем настройку "Настройки Галактики \ Логистика \ Документы \ Управление снабжением \ Приходная накладная \ Запуск алгоритмов \ Перед оприходованием выполнить алгоритм".
Сейчас система выдает сообщение:

Код: Выделить всё

 В процессе выполнения алгоритма произошли ошибки!
 Формировать ордера?
а формирование ордеров надо запретить, т.е. хотим чтобы было как по ESC если от выполнения алгоритма отказаться:

Код: Выделить всё

 По результатам выполнения алгоритма
 формирование ордеров запрещено
Из документации:
2.7. ПРИМЕНЕНИЕ АЛГОРИТМОВ JAVASCRIPT В ШАБЛОНАХ РЕГЛАМЕНТОВ
...
Например, JavaScript может использоваться для контроля превышения какой-либо суммой из документа лимитированного значения, содержащегося в некотором поле. В окне настройки алгоритма JavaScript на вкладке Библиотеки под-ключается библиотека Планирование ⇒ Запуск алгоритмов ⇒ Работа с переменными окружения. Эта библиотека содержит функцию EnvironmentSetStr(nameVariable, ValueVariable), позволяющую установить значение переменной окружения nameVariable в ValueVariable. При настройке системного алгоритма №52 по кнопке [Поля алгоритма] открывается окно =Настройка дополнительных параметров= — в этом окне следует установить флаг Error. Введенное справа от данного флага имя строковой Переменной окружения должно использоваться в качестве nameVariable в указанной выше функции для передачи кода ошибки. "Ошибкой" при этом считается любое значение переменной, отличное от '0' ('0' — значение по умолчанию).Таким образом, если в =Настройке дополнительных параметров= введено:
Error — MyErrorCode,то для возврата кода ошибки в скрипте следует использовать фрагмент вида:
if (<Сумма> > <Лимит>) EnvironmentSetStr('MyErrorCode', '1');

Т.е. судя по тексту система различает только "НОЛЬ" и "НЕ НОЛЬ" ?
А МИР так разнообразен. :)
Для справки: в 99-м (Пакетном) алгоритме прерывание осуществляется именно так.
Ответить