Show/Hide Toolbars

Руководство администратора

term_icon LUA-скрипт — это код, написанный на языке Lua.

По сравнению с использованием SMART-выражений смарт-скрипты имеют ряд преимуществ:

Смарт-скрипты выполняются на сервере, а не в СУБД, а значит

oпозволяют снизить нагрузку на СУБД;

oвыполняются быстрее чем SMART-выражения.

Смарт-скрипты позволяют работать с контекстными данными, еще не записанными в БД.

В отличие от SMART и SQL, Lua — это полноценный программный язык. В Lua-скриптах удобнее работать с циклами, массивами, файлами и пр.

Смарт-скрипты имеют более высокую степень безопасности (например, защищены от SQL-инъекций).

В смарт-скриптах можно вызывать любые смарт-действия и хранимые процедуры, т.е. можно использовать накопленный "багаж" разработок в "Первой Форме".

Смарт-скрипты могут использоваться как вместо смарт-выражений, так и вместо смарт-фильтров (в последнем случае они должны возвращать значение true/false). Но обычно с помощью смарт-скриптов автоматизируют какие-то действия (создать задачу, заполнить таблицу и пр.). Если нужно просто вычислить и вернуть какое-то значение, чаще используют смарт-выражения.

Создание и редактирование смарт-скрипта

Вы можете создать смарт-скрипт по кнопке + или отредактировать — по кнопке !editиз окна редактирования смарт-действия. Для создания и редактирования смарт-скрипта открывается специальный интерфейс в отдельной вкладке браузера.

По кнопке ? (1) откроется подсказка по работе с смарт-скриптом и вызову смарт-действий. В зависимости от контекста, в котором вызывается смарт-скрипт, в него передается разный набор контекстных параметров (2). Нажав кнопку Выполнить, вы можете протестировать Исходный код. Результаты выполнения будут отображаться внизу окна (3).

lua_help

Интерфейс редактирования смарт-скрипта

Новый редактор смарт-скриптов

dev_icon Новый редактор находится в разработке и может временно не поддерживать ряд привычных возможностей.

В системе доступен новый редактор смарт-скриптов (LUA), он позволяет протестировать созданный код на существующих задачах по кнопке Выполнить. Нажатие на кнопку Отменить сбрасывает изменения к последнему сохраненному виду.

В редакторе поддерживается возможность выполнить часть выделенного фрагмента кода.

lua_editor

Новый LUA-редактор

По кнопке lua_editor_icon в панели инструментов редактора откроется подсказка по работе с смарт-скриптом и вызову смарт-действий.

lua_editor2

Окно Помощь по lua-скриптам

Репозиторий

В системе доступен репозиторий Lua-скриптов — он служит в качестве библиотеки, к которой можно обратиться при написании скрипта. Скрипт из репозитория можно импортировать в текущий скрипт и вызывать функции, которые в нем содержатся.

Перейти в репозиторий прямо из редактора по кнопке Репозиторий — в модальном окне откроется табличный список скриптов с описанием и ID скрипта. Нажатие по строке из списка откроет выбранный скрипт в новом окне.  

У всех скриптов из репозитория активна опция Из репозитория/библиотеки.

Для подключения библиотеки необходимо использовать LUA-функцию include:

include(id) — Подключение скрипта по его ID (Рекомендуется).

include('Description') — Подключение скрипта по его описанию (Не рекомендуется).

Подключать через функцию include можно только скрипты из репозитория, использование обычных скриптов вызовет ошибку. Скрипты рекомендуется подключать только в начале исходного кода. В подключаемых скриптах не должно быть вычислений, только определения функций и глобальных переменных. Максимальная глубина рекурсии — 5. В системе запрещено удаление скриптов из библиотеки, которые используются в коде.

lua_lib

Репозиторий

Полезные ссылки