EditScriptDialog

From SunFlurry wiki
Jump to: navigation, search
  EditScriptDialog (Визуальные функции)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку
Визуальность:Да

Функция выводит модальный диалог редактирования исходного текста программы, заданного первым аргументом. Диалог имеет стандартную подсветку текста и позволяет провести синтаксический контроль при необходимости. Результат редактирования возвращается в переменной, задающей первый аргумент. Диалог может использоваться, к примеру, для редактирования мини-исходных текстов, принадлежащих элементам справочника, управляющего типами каких-либо расчетов.

Синтаксис

EditScriptDialog(<Исходный текст программы (STRING)>,<Заголовок диалога (STRING)>,<Внешние переменные ч/з запятые (STRING)>):<Пользователь нажал на ОК (INT)>

Аргументы

  • <Исходный текст программы (STRING)> - (возможен аргумент-переменная (ByRef)) Переменная, в которой хранится и возвращается исходный текст. Строка будет преобразована и возвращена в формате UTF-16.
  • <Заголовок диалога (STRING)> - (необязательный аргумент) Задает заголовок диалога редактирования.
  • <Внешние переменные ч/з запятые (STRING)> - (необязательный аргумент) Задает наименования внешних переменных исходного текста, разделенных запятыми. Внешние переменные используются, если оператор проверяет синтаксическую корректность исходного текста. Переменные, которые будут доступны и могут быть использованы исходным текстом при его исполнении, должны быть перечислены в данном аргументе, иначе при синтаксическом контроле исходного текста возникнет ошибка. Глобальные переменные и функции вегда будут доступны при синтаксическом контроле.

Возвращаемое значение

Возвращает 1, если пользователь нажал на "ОК" по окончании редактирования, иначе возвращает 0.

Примеры

//Блок использует переменную стрСценарий, в которой хранится сценарий, принадлежащий текущему элементу справочника.
Стр:=стрСценарий;
If Стр="" Then
  Стр:="//Сценарий представляет собой произвольную программу на встроенном языке, которая исполняется в пределах (обычно) основного потока консольного клиента"+_NEWLINE+
    "//Можно использовать вызовы функций глобальных модулей, оперировать любыми данными и запускать любые модули."+_NEWLINE+_NEWLINE;
EndIf;
If not EditScriptDialog(Стр,"Редактор сценария") Then
  Exit;
EndIf;
стрСценарий:=Стр;
Form.IsChanged(1);