Функция ВЫПОЛНИТЬ
Функция ВЫПОЛНИТЬ запускает алгоритм на клиентском месте (виртуальной машиной клиентского приложения).
ФУНКЦИЯ ЛОГИКА: ВЫПОЛНИТЬ(<имя_файла>;
[(<список_параметров>)];
ЛОГИКА: режим_запуска = ДА)
Параметры
- имя_файла
-
Имя файла алгоритма. Синтаксис зависит от места хранения файла:
- Локальное расположение файла. В этом случае имя файла записывается в квадратных скобках: [<имя_локального_файла>]. Поиск файла алгоритма осуществляется по списку папок, заданных в конфигурационном файле клиентского или серверного приложения (для клиентского приложения настраивается в окне Настройки, страница Директории, категория Бланки). По умолчанию принимается расширение файла *.ibx.
- Алгоритм хранится в файле на сервере. В этом случае имя файла берется в фигурные скобки: {<имя_файла_на_сервере>}. Поиск файла осуществляется по списку папок, заданному в конфигурационном файле сервера. По умолчанию принимается расширение файла *.ibx.
- Алгоритм хранится в базе данных (как свойство объекта аналитики). В квадратных скобках через запятую указывается код объекта аналитики и имя его свойства, которое содержит алгоритм: [<код_объекта_аналитики>, <имя_свойства_алгоритма>].
- список_параметров
- Параметры, передаваемые алгоритму при запуске. Список параметров должен соответствовать количеству, типам и способу передачи параметров списку после ключевого слова ВЫЧИСЛИТЬ запускаемого алгоритма. Параметры-значения могут задаваться выражениями соответствующего типа, параметры-переменные обозначаются ключевым словом ПЕРЕМ, после которого следует имя переменной. В случае синхронного запуска алгоритма параметры-переменные могут изменить свои значения в результате работы запускаемого алгоритма. При асинхронном запуске параметры-переменные не изменяют свои значения, т.е. передаются подобно параметрам-значениям. Список параметров заключается в круглые скобки, а параметры разделяются запятыми.
- режим_запуска
- Определяет режим запуска алгоритма. Значение ДА соответствует синхронному запуску, т.е. запуску с ожиданием результата, а значение НЕТ – асинхронному, когда результат работы запускаемого алгоритма не нужен запускающему алгоритму.
Возвращаемое значение
ДА – в случае успешного выполнения, НЕТ – в случае ошибки.
Пример:
Синхронный запуск алгоритма без параметров из локального файла:
ВЫПОЛНИТЬ ( ["balance.ibx"] )
Асинхронный запуск серверного алгоритма без параметров (не надо ждать завершения его работы, параллельно могут выполняться другие процессы):
ВЫПОЛНИТЬ ( {"balance.ibx"}, НЕТ )
Синхронный запуск алгоритма без параметров, хранящегося как свойство объекта аналитики:
ВЫПОЛНИТЬ ( ["БЛ/ОТЧ/БАЛАНС", "старт"], ДА )
Синхронный запуск алгоритма из локального файла квадрат.ibx с параметром-переменной х:
ВЫЧИСЛИТЬ ПЕРЕМ ЦЕЛОЕ: х х = 5 ВЫПОЛНИТЬ(["квадрат.ibx"] (ПЕРЕМ х), ДА) СООБЩЕНИЕ(СТР(х)) //25 КОНЕЦ
квадрат.ibx
ВЫЧИСЛИТЬ(ПЕРЕМ ЦЕЛОЕ: х) х = х * х КОНЕЦ
Синхронный запуск алгоритма из локального файла квадрат.ibx с параметром-значением х и параметром-переменной рез:
ВЫЧИСЛИТЬ ПЕРЕМ ЦЕЛОЕ: х, рез х = 5 ВЫПОЛНИТЬ(["квадрат.ibx"] (х, ПЕРЕМ рез), ДА) СООБЩЕНИЕ(СТР(рез) //25 СООБЩЕНИЕ(СТР(х) //5 КОНЕЦ
квадрат.ibx
ВЫЧИСЛИТЬ(ЦЕЛОЕ: х; ПЕРЕМ ЦЕЛОЕ: рез) рез = х * х х = х * х КОНЕЦ