# JEXL-скрипты в Global ERP

JEXL-скрипты используются в Global ERP для настройки и автоматизации прикладной логики без разработки отдельного программного модуля. С их помощью можно выполнять небольшие служебные операции, донастраивать поведение интерфейса, проверять условия, вызывать методы API, обрабатывать данные и автоматизировать повторяющиеся действия.

Эта статья дает общее представление о назначении JEXL-скриптов и типовых сценариях их применения. Подробное описание синтаксиса, редактора, библиотеки скриптов, особенностей выполнения и практических примеров приведено в отдельной методике: [Методика работы с JEXL](http://helpcenter.gs.local/JEXL_Guide/html/index.html).

JEXL применяется как встроенный язык сценариев. Скрипт выполняется в контексте системы и может обращаться к доступным объектам, параметрам текущей формы, API-классам, пакетам бизнес-логики, SQL-запросам и служебным функциям платформы.

## Для чего используются JEXL-скрипты

JEXL-скрипты применяются в разных прикладных сценариях:

- запуск служебных и разовых операций из интерфейса;
- автоматизация действий пользователя;
- настройка операций, кнопок и точек расширения;
- проверка условий при изменении состояния объектов;
- назначение участников маршрутов согласования;
- формирование параметров печатных форм и имен файлов;
- массовая обработка и корректировка данных;
- обработка файлов, в том числе XLSX;
- настройка автонумерации, интерфейсных сценариев и служебных правил;
- диагностика, восстановление и сопровождение данных.

JEXL удобен там, где требуется быстро реализовать прикладную логику на уровне настройки или выполнить ограниченную служебную операцию без полноценной доработки серверного кода.

## Где применяются JEXL-скрипты

JEXL-скрипты используются в настраиваемых точках системы, где требуется выполнить прикладную логику без отдельной серверной доработки.

Они могут применяться:

- в операциях пользовательского интерфейса;
- в точках расширения API и выборок;
- в процедурах маршрутов согласования;
- в настройках печатных форм и автонумерации;
- в служебных сценариях обработки и корректировки данных.

Доступные переменные и объекты зависят от места выполнения скрипта. Например, в интерфейсной операции может быть доступен контекст выборки, в процедуре изменения состояния — текущий объект, а в маршруте согласования — параметры процесса.

## Отличие от SQL и серверной разработки

JEXL-скрипт не является обычным SQL-скриптом. SQL-запросы могут использоваться внутри JEXL для поиска или отбора данных, но сам сценарий выполняется в контексте Global ERP и может вызывать API-методы, работать с объектами системы, выполнять проверки и управлять логикой обработки.

Также JEXL не заменяет полноценную серверную разработку. Если требуется сложная, повторно используемая или критичная бизнес-логика, ее лучше реализовывать в API/Pkg-классах прикладного модуля. JEXL подходит для настроечных сценариев, точечных расширений, служебных операций и шаблонов автоматизации.

## Рекомендации по использованию

При разработке JEXL-скриптов рекомендуется:

- проверять место выполнения и доступный контекст;
- не использовать жестко заданные идентификаторы без необходимости;
- по возможности получать объекты по мнемокодам или системным именам;
- тестировать скрипты на отдельной среде перед применением в продуктивном контуре;
- учитывать права пользователя, от имени которого выполняется скрипт;
- осторожно использовать прямые SQL-обновления;
- фиксировать назначение скрипта и условия его применения.