Функции общего назначения

From SunFlurry wiki
Jump to: navigation, search

Функции общего назначения представляют собой обширную коллекцию совершенно разных по действию и применению функций. Условное деление, представленное здесь, помогает быстрее найти необходимую функцию.

Общие системные функции

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

Идентификатор Статус Тип Визуальная Параметры Описание
TypeStr Реализована Функция TypeStr(<Аргумент>):<Тип аргумента (STRING)> Функция возвращает строку, соответствующую типу аргумента или типу объекта аргумента. Пример возвращаемых значений: NUMBER, STRING, DATE, LIST, TAB, DB.REF.<Вид справочника>, и т.п.
TypeNum Реализована Функция TypeNum(<Аргумент>):<Тип аргумента (INT)> Функция возвращает число, соответствующую типу аргумента или типу объекта аргумента. Числа является внутренними идентификаторами типов объектов. Пример возвращаемых значений: 0 (пустое значение), 1 (целое число), 2 (вещественное число), 50 (список), 54 (таблица), 61 (объект базы данных), и т.п.
NumeralTypeStr Реализована Функция NumeralTypeStr(<Аргумент>):<Тип числового аргумента (STRING)> Функция возвращает строку "REAL", в случае, если числовое представление аргумента является вещественным, иначе будет возвращена строка "INT"
StringTypeStr Реализована Функция StringTypeStr(<Аргумент>):<Тип строкового аргумента (STRING)> Функция возвращает строку "ANSI", в случае, если строковое представление аргумента использует однобайтовую кодировку (ANSI), иначе будет возвращена строка "UNICODE"
IsEmpty Реализована Функция IsEmpty(<Аргумент>):<Является ли аргумент пустым объектом (INT)> Функция возвращает 1, если аргумент является пустым объектом (пустое значение, 0, пустая строка, объект базы данных с невыбранным типом или видом и пр.), иначе будет возвращен 0.
Coalesce Реализована Функция Coalesce(<Аргумент 1>,<Аргумент 2>...):<Первый не пустой или не БД объект> Функция возвращает первый из аргументов, который не является пустым (не выбранным) объектом базы данных, пустым значением, либо не является объектом базы данных.
CoalesceEx Реализована Функция CoalesceEx(<Режим>=1,<Аргумент 1>,<Аргумент 2>...):<Первый не пустой объект по правилам, заданым режимом> Функция возвращает первый из аргументов, который не является пустым объектом по правилам, заданным режимом. В режиме 0 функция работает аналогично функции Coalesce.
Sleep Реализована Функция Sleep(<Период в миллисекундах (INT)>) Функция выполняет цикл ожидания в течение указанного в миллисекундах времени.
GetNothing, Nothing Реализована Функция GetNothing(<Тип базы данных (STRING)>=""):<Пустое значение или пустое значение базы данных> Функция получает пустое значение, если аргумент не указан, либо не выбранный объект базы данных, если аргумент указан.
DisableGUIInterrupts Реализована Функция DisableGUIInterrupts(<Защита (INT)>,<Текст защиты (STRING)>="") Функция позволяет запретить прерывание выполнения потока или закрытие программы, если первый аргумент равен 1, до того, как она будет вызвана повторно с первым аргументом, равным 0. Дополнительный текст будет показан пользователю, в момент попытки прерывания или закрытия программы. Функция работает только для визуального режима, и должна использоваться только с блоком Try ... Finally, так как в ином случае существует опасность получить состояние клиента, когда он не отвечает на попытки закрытия корректным образом.
_If, ? Реализована Магическая конструкция _If(<Условие>,<Результат, если условие выполнено>,<Результат, если условие не выполнено>=<NOTHING>):<Результат> Магическая функция позволяет превратить конструкцию If в вычисляемое выражение.
_And Реализована Магическая конструкция _And(<Условие 1>,<Условие 2>,<Условие 3> ...):<Результат 0 или 1 (INT)> Магическая функция позволяет вычислять только требуемые условия, для получения результата -- логического "и".
_Or Реализована Магическая конструкция _Or(<Условие 1>,<Условие 2>,<Условие 3> ...):<Результат 0 или 1 (INT)> Магическая функция позволяет вычислять только требуемые условия, для получения результата -- логического "или".
CreateOLE Реализована Функция CreateOLE(<Идентификатор объекта OLE (STRING)>):<Новый объект OLE (OLE)> Функция создает новый объект OLE (COM) по строке идентификатора
CreateThreadedOLE Реализована Функция CreateThreadedOLE(<Идентификатор объекта OLE (STRING)>):<Новый объект OLE (OLE)> Функция создает новый объект OLE (COM) по строке идентификатора. Объект может быть доступен в любом потоке, не только в том, который создал объект. Вызовы к таким объектам осуществляются несколько медленнее.
SetTimeout Планируется Функция OLE.SetTimeout(<Время ожидания исполнения команд в мс. (INT)>):<Предыдущее время ожидания исполнения команд в мс. (INT)> Функция задает или получает для объекта максимальное время ожидания исполнения команд. По умолчанию при создании объекта, это время равно 0 (не ограничено). При истечении времени ожидания система произведет отсоединение от текущего OLE-объекта и выполнявшаяся функция вызовет исключение.
IsMultithreaded Реализована Функция IsMultithreaded(<Аргумент>):<Является ли объект многопоточным (INT)> Функция проверяет, является ли объект, содержащийся в переменной-аргументе многопоточным или однопоточным (см. статью Объекты)
SetMultiThreaded Реализована Функция SetMultiThreaded(<Аргумент>) Функция позволяет безусловно установить флаг многопоточности на объекте, содержащемся в переменной-аргументе. Функция может использоваться при работе с объектами, содержащими ссылки на самого себя (см. статью Объекты)
LockObject Реализована Функция LockObject(<Аргумент>) Функция позволяет заблокировать доступ к сложному объекту из других программных потоков. Обычно система выполняет это действие автоматически, однако, если состояние непротиворечивости объекта требует нескольких вызовов функций изменения, эта функция может стать гарантом его непротиворечивости в других потоках. После окончания выполнения кода изменения объекта, необходимо вызвать функцию UnlockObject. Функция не должна применяться к визуальным объектам, кроме того внутри кода изменения существуют ограничения по вызову визуальных функций.
UnlockObject Реализована Функция UnlockObject(<Аргумент>) Функция позволяет разблокировать доступ к сложному объекту, заблокированному ранее с помощью функции LockObject.
LockCount Реализована Функция LockCount(<Аргумент>):<Количество вложенных блокировок (INT)> Функция позволяет получить количество вложенных блокировок объекта (осуществленных с помощью функции LockObject или системой) даже если объект не удерживается текущим потоком (таким образом ее можно также использовать, как индикатор того, что объект заблокирован другим потоком, если известно, что текущий поток его не блокировал, однако, нужно понимать, что объекты, могут автоматически блокироваться системой на время вызова функций, вероятность обнаружить такую блокировку может быть высока, если объект, используется в потоке, который выполняет какую-то работу в данный момент).
Message Реализована Функция
Да
Message(<Аргумент>,<Тип текста (STRING)>="",<Интерактивный объект 1 для подстановки в текст>,<Интерактивный объект 2 для подстановки в текст>...) Функция выводит строковое представление аргумента в лог клиента, при этом текст может быть выделен, если необходимо, как ошибка или информация.
LoadModule Реализована Функция
Да
LoadModule(<Способ вызова (INT)>,<Путь или имя базы данных (STRING)>,<Параметр>,<Опция>,<Имя модуля (STRING)>="Module",<Имя формы (STRING)>="SelectForm",<Серийный номер потока, в котором происходит исполнение (INT)>):<Результат модального выполнения> Функция позволяет загружать и инициировать выполнение произвольного модуля с произвольной формой. Модуль может быть загружен как модально к текущему потоку (если текущий поток не является корневым), так и создавать новый поток, передавая ему два аргумента. В случае модального исполнения, функция не возвратит результат до тех пор, пока модуль не закончит работы, при этом, модуль может возвратить результат и изменить переданные параметры, если они представляли собой переменные.
LoadToolForm Реализована Функция
Да
LoadToolForm(<Способ вызова (INT)>,<Режим загрузки формы (INT)>,<Путь или имя базы данных (STRING)>,<Параметр>,<Опция>,<Имя формы (STRING)>="Form",<Серийный номер открытой формы (INT)>):<Результат, возвращенный при инициализации формы> Функция позволяет загружать произвольную форму в режиме инструментария. Формы в таком режиме не имеют модулей и работают в контексте текущего модуля, либо в контексте корневого модуля, в зависимости от параметров загрузки. Функция может возвратить серийный номер открытой формы, чтобы программа могла осуществлять переговоры с ней с помощью отсылки сообщений.
ImportFunctionsFromModule Планируется Функция ImportFunctionsFromModule(<Путь или имя базы данных (STRING)>,<Имя модуля (STRING)>="Module",<Пространство имен (STRING)>="") Функция позволяет импортировать в текущий выполняющийся модуль функции другого модуля, после импорта функции можно исполнять, как будто они были созданы в текущем модуле. Если при импорте, имя создаваемой функции уже существует, будет вызвано исключение. Часть кода, не находящаяся внутри функций, будет игнорирована. Чтобы увеличить устойчивость загрузки из разных источников, можно использовать дополнительный идентификатор -- пространство имен. Идентификатор не должен содержать знаков, недоступных в наименованиях функций и знаков ".". После импорта новые функции можно будет вызвать с помощью конструкции <Идентификатор>.<Имя функции>([...]). Функцию можно использовать для увеличения функциональности, доступной во внешних модулях, к примеру, если модуль производит выгрузку, которая зависит от поключенного устройства, можно импортировать функции модуля, который был создан для конкретного устройства.
ImportFunctionsFromText Планируется Функция ImportFunctionsFromText(<Строка с кодом для компиляции (STRING)>,<Пространство имен (STRING)>="") Функция позволяет импортировать в текущий выполняющийся модуль функции из строки текста. Перед началом импорта, текст будет скомпилирован в контексте текущего модуля. Если при импорте, имя создаваемой функции уже существует, будет вызвано исключение. Часть кода, не находящаяся внутри функций, будет игнорирована. Чтобы увеличить устойчивость загрузки из разных источников, можно использовать дополнительный идентификатор -- пространство имен. Идентификатор не должен содержать знаков, недоступных в наименованиях функций и знаков ".". После импорта новые функции можно будет вызвать с помощью конструкции <Идентификатор>.<Имя функции>([...]). Функцию можно использовать для увеличения функциональности, доступной во внешних модулях, к примеру, если модуль производит выгрузку, которая зависит от поключенного устройства, можно импортировать функции текста кода, который был создан для конкретного устройства.
RemoveImportedFunctions Планируется Функция RemoveImportedFunctions() Функция удаляет из контекста текущего модуля все функции, импортированные из других модулей или текстовых строк (см. ImportFunctionsFromModule и ImportFunctionsFromText).
OpenObject Реализована Функция
Да
OpenObject(<Объект базы данных (DB)>,<Режим просмотра (INT)>,<Способ вызова (INT)>,<Параметр>,<Опция>,<Имя модуля (STRING)>,<Имя формы (STRING)>):<Результат модального выполнения> Функция позволяет загружать и инициировать выполнение модуля и формы, связанных с заданным объектом, при этом сам объект загружается в форму для редактирования или просмотра. Модуль может быть загружен как модально к текущему потоку (если текущий поток не является корневым), так и создавать новый поток, передавая ему два аргумента. В случае модального исполнения, функция не возвратит результат до тех пор, пока модуль не закончит работы, при этом, модуль может возвратить результат и изменить переданные параметры, если они представляли собой переменные. Функция может возвратить особые текстовые результаты, если требуемый объект был заблокирован другим пользователем. Для полной информации см. описание функции.
SelectObject, AskObject Реализована Функция
Да
SelectObject(<Путь или имя базы данных (STRING)>,<Параметр>,<Опция>,<Имя модуля (STRING)>="Module",<Имя формы (STRING)>="SelectForm",<Объект для позиционирования>,<Наименование объекта формы, осуществляющего выбор (STRING)>,<Заголовок формы (STRING)>,<Дополнительные установки (INT)>):<Выбранный объект или пустое значение> Функция позволяет загружать и инициировать выполнение модуля и формы в модальном режиме для выбора объекта базы данных из списка объектов, при этом возможно начальное позиционирование на указанный объект, определение требуемого объекта формы списка объектов (если их несколько), изменение заголовка формы, использование других возможностей. Функция не возвратит результат до тех пор, пока модуль не закончит работы, при этом, модуль может изменить переданные параметры, если они представляли собой переменные.
MassSelectObjects Реализована Функция
Да
MassSelectObjects(<Имя функции для принятия результата выбора (STRING)>,<Путь или имя базы данных (STRING)>,<Параметр>,<Опция>,<Имя модуля (STRING)>="Module",<Имя формы (STRING)>="SelectForm",<Объект для позиционирования>,<Наименование объекта формы, осуществляющего выбор (STRING)>,<Заголовок формы (STRING)>,<Параметр функции принятия выбора>,<Дополнительные установки (INT)>=0) Функция позволяет загружать и инициировать выполнение модуля и формы в модальном режиме для выбора множества объектов базы данных из списка объектов, при этом возможно начальное позиционирование на указанный объект, определение требуемого объекта формы списка объектов (если их несколько), изменение заголовка формы, использование других возможностей. В момент выбора очередного объекта пользователем, система вызывает особую функцию выбора (возможно с доп. параметром), имя которой задается в первом аргументе. Функция не возвратится до тех пор, пользователь не закроет исполняемый модуль, при этом, модуль может изменить переданные параметры, если они представляли собой переменные.
SendMessageToForm Частичная реализация Функция
Да
SendMessageToForm(<Серийный номер формы (INT)>,<Код сообщения (INT)>,<Параметр>,<Опция>,<Гарантировать доставку (INT)>=1,<Имя макроса или страницы объекта формы (STRING)>=""):<Сообщение не было доставлено 0 или результат выполнения OnMessage> Функция осуществляет доставку пользовательского сообщения с параметрами указанной по серийному номеру форме. Для формы будет вызвано визуальное событие OnMessage. Доставка также может быть осуществлена макросу, располагающемуся на форме или указанной по имени странице страничного элемента. Функция возвращается после обработки сообщения формой или ошибке при доставке.
PostMessageToForm Частичная реализация Функция
Да
PostMessageToForm(<Серийный номер формы (INT)>,<Код сообщения (INT)>,<Параметр>,<Опция>,<Гарантировать доставку (INT)>=1,<Имя макроса или страницы объекта формы (STRING)>=""):<Сообщение было отправлено 0 или 1 (INT)> Функция осуществляет доставку пользовательского сообщения с параметрами указанной по серийному номеру форме. Для формы будет вызвано визуальное событие OnMessage. Доставка также может быть осуществлена макросу, располагающемуся на форме или указанной по имени странице страничного элемента. Функция возвращается сразу после успешной отправки сообщения или ошибке при отправке. Измененные формой параметры не будут переданы назад.
BroadcastGlobalMessage Реализована Функция
Да
BroadcastGlobalMessage(<Код сообщения (INT)>,<Содержимое сообщения (STRING)>,<Для всех пользователей (INT)>=0):<Сообщение успешно отправлено (INT)> Функция рассылает пакеты, которые вызывают исполнения событий OnMessage для всех открытых форм (в момент когда они активны или когда они станут активными), в текущей системе или глобально всем клиентам сервера. В последнем случае, нужно быть осторожным, чтобы не перегружать сервер внезапным большим количеством запросов, даже с учетом того, что серверная часть использует особую систему замедления отправки запросов клиентам.
BroadcastMessage Планируется Функция
Да
BroadcastMessage(<Код сообщения (INT)>,<Параметр>,<Опция>,<Тип форм-получателей (INT)>=1,<Имя макроса или страницы объекта формы (STRING)>=""):<Сообщение было отправлено 0 или 1 (INT)> Функция осуществляет доставку пользовательского сообщения с параметрами всем открытым в данный момент в системе формам с указанным типом. Для форм будет вызвано визуальное событие OnMessage. Доставка также может быть осуществлена макросу, располагающемуся на формах или указанной по имени странице страничного элемента. Функция возвращается сразу после успешной отправки сообщений или ошибке при отправке. Измененные формой параметры не будут переданы назад.
ModuleTag Реализована Функция ModuleTag(<Новое значение>):<Предыдущее значение> Функция получает или изменяет свободную переменную, привязанную к текущему (исполняемому) модулю. Значение может использоваться по усмотрению разработчика.
IsKeyComboActive Реализована Функция IsKeyComboActive(<Комбинация клавиш (STRING)>):<Комбинация активирована в данный момент, 0 или 1 (INT)> Функция проверяет, активирована ли в данный момент пользователем заданная комбинация клавиш (к примеру, "Ctrl+Alt+D").
ObjectToString Реализована Функция ObjectToString(<Значение>):<Значение, закодированное в строку (ANSI STRING)> Функция кодирует внутрисистемным образом заданное значение в строку, значение может быть почти любым. К примеру, может представлять собой список, таблицу, объект базы данных, OLE-объект и пр.
ObjectFromString Реализована Функция ObjectFromString(<Закодированное значение (STRING)>):<Значение> Функция перекодирует строку в значение, закодированное внутрисистемным образом.
ObjectToFile Реализована Функция ObjectToFile(<Значение>,<Имя файла (STRING)>) Функция кодирует внутрисистемным образом заданное значение в строку, значение может быть почти любым. К примеру, может представлять собой список, таблицу, объект базы данных, OLE-объект и пр. Значение, затем, будет сохранено в заданный файл. При наличии ошибки при сохранении в файл, будет вызвано исключение.
ObjectFromFile Реализована Функция ObjectFromFile(<Имя файла (STRING)>):<Значение> Функция получает строку из указанного файла и перекодирует строку в значение, закодированное внутрисистемным образом.
Swap Реализована Функция Swap(<Переменная 1>,<Переменная 2>) Функция меняет местами значения переменных.
DoesFunctionExist Реализована Функция DoesFunctionExist(<Имя функции (STRING)>,<Глубина поиска или компилированная функция (INT, COMPILEDFUNCTION)>=0):<Существует ли функция (INT)> Функция проверяет, существует ли функция с указанным именем в текущем контексте исполнения, способ поиска задается вторым аргументом.
ArgumentsNumber Реализована Функция ArgumentsNumber(<Имя функции (STRING)>,<Глубина поиска или компилированная функция (INT, COMPILEDFUNCTION)>=0):<Количество аргументов (INT)> Функция возвращает количество аргументов функции с указанным именем в текущем контексте исполнения, способ поиска задается вторым аргументом. Если искомая функция не существует, будет возвращено значение -1.
ExecuteFunction Реализована Функция ExecuteFunction(<Имя функции (STRING)>,<Глубина поиска или компилированная функция (INT, COMPILEDFUNCTION)>=0,<Аргумент 1>,<Аргумент 2>...):<Результат исполнения функции> Функция инициирует исполнение функции с указанным именем в текущем контексте исполнения с заданными аргументами, способ поиска задается вторым аргументом. Если искомая функция не существует, пропущен обязательный аргумент или заданное количество аргументов слишком велико, будет создано исключение. Функция может использоваться как более быстрая альтернатива функции Eval (если необходимо вызвать только одну функцию).
AsyncExecuteFunction Планируется Функция AsyncExecuteFunction(<Имя функции (STRING)>,<Глубина поиска или компилированная функция (INT, COMPILEDFUNCTION)>=0,<Аргумент 1>,<Аргумент 2>...):<Результат исполнения функции> Функция инициирует исполнение функции с указанным именем в текущем контексте исполнения с заданными аргументами, способ поиска задается вторым аргументом. Если искомая функция не существует, пропущен обязательный аргумент, заданное количество аргументов слишком велико или исполнение в визуальном контексте невозможно, будет создано исключение. Функция будет исполнена в визуальном контексте асинхронно, в момент, когда он будет свободен (если это не произойдет в течение некотрого промежутка времени, функция не будет выполнена). Подобный способ исполнения можно использовать, к примеру, в обработчике события OnOpen, с тем, чтобы функция была запущена когда обработчик закончит исполнение и форма будет ожидать действия пользователя. См. также Form.InvokeEventAsync.
GlobalBegPeriodDate Реализована Функция GlobalBegPeriodDate(<Дата начала периода изменения периодических значений (DATE)>):<Предыдущая дата начала периода изменения периодических значений (DATE)> Функция возвращает или/и изменяет дату начала изменения периодических значений при визуальном сохранении элементов с наличием таких значений.
GlobalEndPeriodDate Реализована Функция GlobalEndPeriodDate(<Дата окончания периода изменения периодических значений (DATE)>):<Предыдущая дата окончания периода изменения периодических значений (DATE)> Функция возвращает или/и изменяет дату окончания изменения периодических значений при визуальном сохранении элементов с наличием таких значений. Данная дата совпадает с датой просмотра периодических значений в визуально открытом элементе базы данных или таблице с такими элементами.
MinPeriodicalAccessDate Реализована Функция MinPeriodicalAccessDate(<Новая минимальная дата просмотра периодических реквизитов (DATE)>):<Текущая минимальная дата просмотра периодических реквизитов (DATE)> Функция возвращает и/или изменяет минимальную дату просмотра периодических значений реквизитов в стандартных формах периодических реквизитов. Значения с датой менее данной не будут отображаться при выводе формы просмотра или редактирования, невозможно будет также создать новые записи с датами, ранее указанной. Дата используется для всех потоков клиента, но не влияет на программное получение периодических данных.
MinPeriodicalEditDate Реализована Функция MinPeriodicalEditDate(<Новая минимальная дата редактирования периодических реквизитов (DATE)>):<Текущая минимальная дата редактирования периодических реквизитов (DATE)> Функция возвращает и/или изменяет минимальную дату редактирования периодических значений реквизитов в стандартных формах периодических реквизитов. Значения с датой менее данной не будут доступны для редактирования, невозможно будет также создать новые записи с датами, ранее указанной. Дата используется для всех потоков клиента, но не влияет на программное получение периодических данных.
GlobalDefaultSystemFont Реализована Функция GlobalDefaultSystemFont(<Новое значение шрифта системы по умолчанию (STRING)>):<Предыдущее значение шрифта системы по умолчанию (STRING)> Функция возвращает или/и изменяет внутрисистемный шрифт по умолчанию. Будут обновлены значения глобальных коэффициентов масштабирования форм. В зависимости от новых установок, текст и формы будут выглядеть крупнее или мельче. Шрифт умолчания для систем на Windows XP и более ранних "MS Sans Serif, 8" (не поддерживает международные символы), умолчания для более новых систем "Tahoma, 8" (поддерживает международные символы).
GlobalFormScaleFactorX Реализована Функция GlobalFormScaleFactorX(<Новое значение горизонтального коэффициента глобального масштабирования форм (REAL)>):<Предыдущее значение горизонтального коэффициента глобального масштабирования форм (REAL)> Функция возвращает или/и изменяет значение горизонтального коэффициента глобального масштабирования форм. Значение этого коэффициента по умолчанию равно 1. Если значение больше 1, элементы всех форм будут растянуты по горизонтали, если меньше 1, элементы будут сжаты.
GlobalFormScaleFactorY Реализована Функция GlobalFormScaleFactorY(<Новое значение вертикального коэффициента глобального масштабирования форм (REAL)>):<Предыдущее значение вертикального коэффициента глобального масштабирования форм (REAL)> Функция возвращает или/и изменяет значение вертикального коэффициента глобального масштабирования форм. Значение этого коэффициента по умолчанию равно 1. Если значение больше 1, элементы всех форм будут растянуты по вертикали, если меньше 1, элементы будут сжаты.
DefaultTablesRestrictMode Реализована Функция DefaultTablesRestrictMode(<Новое значение режима доступа по умолчанию для новых таблиц (INT)>):<Предыдущее значение режима доступа по умолчанию для новых таблиц (INT)> Функция возвращает или/и изменяет значение режима доступа по умолчанию для новых таблиц. При создании таблицы режим доступа устанавливается в соответствии с режимом по умолчанию. Режим можно изменить с помощью свойства Table.Restrict.
Eval Реализована Функция Eval(<Выражение для вычисления (STRING)>):<Результат вычисления выражения> Функция производит компиляцию и вычисление выражения, заданного на внутреннем языке. Выражение исполняется в контексте текущей функции с доступом к именам, совпадающим с доступом из кода, вызвавшего функцию. Функция вызывает прерывание, если аргумент не может быть скомпилирован из-за ошибки, либо он не является вычисляемым выражением. Функция возвращает результат вычисления выражения.
Exec Реализована Функция Exec(<Блок для исполнения или компилированная функция (STRING, COMPILEDFUNCTION)>):<Исполнение завершено удачно 1 или 0 (INT)> Функция производит компиляцию и исполнение блока текста, заданного на внутреннем языке, или компилированной заранее функции. Блок исполняется в контексте текущей функции с доступом к именам, совпадающим с доступом из кода, вызвавшего функцию. Функция вызывает прерывание, если аргумент не может быть скомпилирован из-за ошибки. Исполняемый код обладает свойствами кода внутри новой функции (счетчик циклов равен нулю, создаваемые переменные не будут переданы в вызывавшую функцию), однако, имеет доступ к локальным переменным вызывавшей функции.
ExecEx Реализована Функция ExecEx(<Блок для исполнения или компилированная функция (STRING, COMPILEDFUNCTION)>,<Установки ограничения исполнения (INT)>=0,<Ограничение по времени в мс. (INT)>=0,<Наименование функции, получающей выводимую в лог информацию (STRING)>,<Глубина поиска (INT)>=0,<Ограничение по использованию памяти потоком (INT)>=0):<Значение переменной Result при исполнении функции> Функция производит компиляцию и исполнение блока текста, заданного на внутреннем языке, или компилированной заранее функции в контролируемой среде исполнения. Аргументы могут ограничить возможности, предоставляемые исполняемому коду, как функционально (некоторые группы функций будут запрещены к использованию), или в заданных пределах доступа к переменным и функциям, так и с ограничением по времени исполнения или по выделяемой памяти. Функция может использоваться для исполнения кода, который может быть опасным или злонамеренным, либо кода из неизвестного источника.
Compile Реализована Функция Compile(<Блок для компилирования (STRING)>,<Степень изолированности (INT)>=0,<Добавочные переменные (STRING)>,<Свойства исходного текста для отладчика (STRING,INT)>):<Компилированная функция в виде объекта (COMPILEDFUNCTION)> Функция производит компиляцию блока текста, заданного на внутреннем языке, и возвращает объект, представляющий результат компиляции. В зависимости от второго аргумента, блок может компилироваться в контексте текущей функции, глобальных модулей или без доступа к внешним переменным и функциям. Функция вызывает прерывание, если компиляция прервана из-за ошибки. Результирующий объект можно использовать многократно с функциями Exec и ExecEx, это быстрее, чем компилировать блок текста при каждом вызове.
LoadFunctionFromBuffer Реализована Функция LoadFunctionFromBuffer(<Экспортированная в память компилированная функция (BUFFER, STRING)>,<Путь к исходному тексту (STRING),<Исходный текст (STRING)>):<Компилированная функция в виде объекта (COMPILEDFUNCTION)> Функция производит импорт из памяти экспортированной ранее с помощью SaveFunctionToBuffer компилированной функции. Функция возвращает объект аналогичный результату функции Compile, который можно использовать многократно с функциями Exec и ExecEx.
SaveFunctionToBuffer Реализована Функция SaveFunctionToBuffer(<Компилированная функция (COMPILEDFUNCTION)>):<Экспортированная в память компилированная функция (BUFFER)> Функция производит экспорт в память компилированной функции. Функция возвращает буфер с содержимым подобным файлам с компилированными модулями системы.
InfoPanelClose Реализована Функция
Да
InfoPanelClose(<Очистить панель (INT)>=0) Функция закрывает информационную панель (панель логов) визуального клиента, очищая текущий текст в ней при необходимости.
InfoPanelClear Реализована Функция
Да
InfoPanelClear() Функция очищает текст в информационной панели (панели логов) визуального клиента.
InfoPanelOpen Реализована Функция
Да
InfoPanelOpen() Функция открывает информационную панель (панель логов) визуального клиента.
IsInfoPanelOpen Реализована Функция
Да
IsInfoPanelOpen():<Результат 0 или 1 (INT)> Функция проверяет, открыта ли в данный момент информационная панель (панель логов) визуального клиента.
HideControlPanel Реализована Функция
Да
HideControlPanel(<Идентификатор панели инструментов (STRING)>) Функция прячет всех окон указанную панель инструментов. Пользовательские панели инструментов задаются в свойствах проекта, кроме пользовательских панелей, можно использовать специальные следующие идентификаторы для адресации стандартных панелей: COMMON, TABLE, TEXT. См. также функцию для определенного окна Form.HideControlPanel.
ShowControlPanel Реализована Функция
Да
ShowControlPanel(<Идентификатор панели инструментов (STRING)>) Функция отображает для всех окон указанную панель инструментов. Пользовательские панели инструментов задаются в свойствах проекта, кроме пользовательских панелей, можно использовать специальные следующие идентификаторы для адресации стандартных панелей: COMMON, TABLE, TEXT. См. также функцию для определенного окна Form.ShowControlPanel.
InterThreadWindowsMode Реализована Функция
Да
InterThreadWindowsMode(<Новый режим отображения окон всех потоков (INT)>):<Текущий режим отображения окон всех потоков (INT)> Функция возвращает и/или изменяет текущий режим отображения окон всех потоков. Для более подробной информации см. описание.
StandardOutputHook Реализована Функция StandardOutputHook(<Тип перехватываемого события (INT)>=0,<Наименование функции, вызываемой при перехвате (STRING)>,<Глубина поиска (INT)>=0,<Параметр для передачи в функцию>):<Наименование предыдущей функции-перехватчика (STRING)> Функция добавляет или удаляет ссылку на функцию-перехватчик визуальных событий (к примеру, вывода информации в лог или панель состояния формы). Может использоваться, к примеру, для получения и вывод на экран информации об обработках, протекающих в скрытом потоке. Крайне желательно использование конструкции Try .. Finally, чтобы гарантированно вернуть предыдущее состояние перехватчика после того, как работа будет завершена.
RemoveUnacceptablePathChars Реализована Функция RemoveUnacceptablePathChars(<Имя файла, которое необходимо очистить от недопустимых символов (STRING)>,<Заменить недопустимые символы на (STRING)>=""):<Очищенное имя файла (STRING)> Функция очищает имя файла (без имен папок) от непечатных и недопустимых символов (удаляются сл. печатные символы <, >, :, ", /, \,
GetPath Реализована Функция GetPath(<Имя файла с папками (STRING)>):<Имена папок без имени файла (STRING)> Функция получает из полного имени файла строку пути с папками (пример, строка C:\Folder\My.File.txt будет превращена в C:\Folder\).
GetFileName Реализована Функция GetFileName(<Имя файла с папками (STRING)>):<Имя файла без папок (STRING)> Функция получает из полного имени файла с папками, имя файла без папок (пример, строка C:\Folder\My.File.txt будет превращена в My.File.txt).
GetExt Реализована Функция GetExt(<Имя файла (STRING)>):<Расширение файла (STRING)> Функция получает из имени файла его расширение (пример, строка C:\Folder\My.File.txt будет превращена в txt).
AddBackslash Реализована Функция AddBackslash(<Путь с папками (STRING)>):<Преобразованный путь (STRING)> Функция добавляет в конец строки знак \, если он там уже не присутствует. Пустая строка не будет изменена.
RemoveBackslash Реализована Функция RemoveBackslash(<Путь с папками (STRING)>):<Преобразованный путь (STRING)> Функция удаляет с конца строки знак \, если он там был.
RemoveExt Реализована Функция RemoveExt(<Имя файла (STRING)>):<Имя файла без расширения (STRING)> Функция удаляет из имени файла его расширение (пример, строка C:\Folder\My.File.txt будет превращена в C:\Folder\My.File).
GetAccountNames Реализована Функция GetAccountNames():<Список учетных записей системы (LIST)> Функция получает список текущих учетных записей системы (сервера). Для исполнения функции необходимо наличие административных прав. Значениями списка будут строки с наименованиями учетных записей, имена списка будут представлены в виде строки с флагами соответствующих учетных записей.
UserCredentialsLock Реализована Функция UserCredentialsLock(<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция временно блокирует доступ к редактору учетных записей пользователей (для подготовки к изменениям). Для исполнения функции необходимо наличие административных прав. Внимание: после функции должен следовать блок <Try> ... <Finally><EndTry> для гарантированного вызова функции разблокировки UserCredentialsUnlock. Если доступ уже был заблокирован ранее, функция возвращает имя пользователя, машины и время, когда он был заблокирован.
UserCredentialsUnlock Реализована Функция UserCredentialsUnlock():<0 или 1 (INT)> Функция разблокирует доступ к редактору учетных записей пользователей, заблокированному ранее функцией UserCredentialsLock. Для исполнения функции необходимо наличие административных прав.
UserCredentialsLoad Реализована Функция UserCredentialsLoad():<Файл учетных записей сервера в виде строки (STRING)> Функция получает строку-содежимое файла учетных записей пользователей с сервера. Для исполнения функции необходимо наличие административных прав. Строку можно использовать, к примеру, для заполнения объекта ini-файла. Чтение учетных записей пользователей, без их предвариельной блокировки функцией UserCredentialsLock, разрешено, однако если данные будут изменяться, необходимо убедиться, что вы читаете актуальную копию данных, поэтому необходимо использование UserCredentialsLock до начала чтения.
UserCredentialsStore Реализована Функция UserCredentialsStore(<Файл учетных записей сервера в виде строки (STRING)>):<0 или 1 (INT)> Функция сохраняет строку-содежимое файла учетных записей пользователей на сервер. Для исполнения функции необходимо наличие административных прав. Перед вызовом данной функции строго рекомендуется использовать функцию блокировки доступа к редактору учетных записей UserCredentialsLock.
ValidateUserPassword Реализована Функция ValidateUserPassword(<Имя пользователя (STRING)>,<Пароль пользователя (STRING)>,<Ошибка или ответ сервера (STRING,INT)>):<Упешная проверка учетной записи (INT)> Функция проверяет корректность имени пользователя и пароля с точки зрения учетных записей сервера (иначе говоря, проверяет, сможет ли этот пользователь зарегистрироваться на сервере под указанным паролем). Если регистрация невозможна, функция возвращает краткое описание причины третьим аргументом, если регистрация удачна, функция возвращает уровень полномочий пользователя третьим аргументом.
SendChatMessage Планируется Функция
Да
SendChatMessage(<Получатели через запятую (STRING)>,<Текст сообщения (STRING)>):<Сообщение успешно отправлено (INT)> Функция отправляет сообщение во встроенный чат клиентов, зарегистрированных под пользователями, которые указаны, как получатели сообщения в первом аргументе.
GetStandardIcon Реализована Функция GetStandardIcon(<Объект базы данных (DB)>,<Закрепленная строка папок (INT)>=0):<Индекс стандартной иконки объекта (INT)> Функция возвращает индекс стандартной иконки указанного объекта базы данных, данные индексы не совпадают с номерами иконок из библиотеки иконок и могут быть использованы только для столбцов визуальных таблиц, имеющих тип "стандартная иконка". Различное состояние объекта (удален, новый и пр.) отображается разными иконками. Возможно также указание на то, что иконка находится для открытой папки справочника.

Функции диалога с пользователем

В данный раздел входят функции, осуществляющие вывод на экран различных диалогов для получения информации от пользователя. Большинство этих функций не будет работать в консольных клиентах.

Идентификатор Статус Тип Визуальная Параметры Описание
Box, MsgBox Реализована Функция
Да
Box(<Сообщение (STRING)>,<Тип диалога (INT)>=Q_OK) Функция выводит модальное окно с текстом сообщения, при этом стиль окна будет зависеть от второго аргумента.
AskQuestion Реализована Функция
Да
AskQuestion(<Текст вопроса (STRING)>,<Тип диалога и его кнопки (INT)>,<Индекс кнопки по умолчанию (INT)>=1):<Идентификатор выбранной кнопки (INT)> Функция выводит модальное окно с текстом вопроса со стилем и кнопками, заданными вторым аргументом. При необходимости, нужную кнопку можно выделить, как кнопку по умолчанию. Пользователь не может закрыть окно, без выбора одной из кнопок, идентификатор которой будет возвращен в результате функции. Для задания режимов и кнопок диалога рекомендуется использовать константы диалогов.
SelectDataType Реализована Функция
Да
SelectDataType(<Список типов объектов для выбора (STRING)>,<Заголовок формы (STRING)>):<Тип и имя выбранного объекта или пустая строка (STRING)> Функция позволяет выбрать тип (включая типы и виды объектов базы данных) из списка типов, ограниченного, если необходимо, первым аргументом. Функция возвращает выбранный пользователем тип или пустую строку, если пользователь отказался от выбора.
SelectFormSettingsFile Реализована Функция
Да
SelectFormSettingsFile(<Загрузка установок (INT)>,<Путь файла установок (STRING)>,<Имя файла установок (STRING)>):<Пользователь осуществил выбор 1 или 0 (INT)> Функция показывает диалог сохранения или загрузки установок формы. Если пользователь выбрал файл установок (для загрузки или сохранения), будут заполнены переменные путь к файлу или имя файла установок, и функция возвратится с результатом 1.
OpenFileDialog Реализована Функция
Да
OpenFileDialog(<Имя файла (STRING)>,<Заголовок диалога (STRING)>,<Доступные фильтры файлов (STRING)>,<Тип диалога (INT)>=0,<Расширение по умолчанию (STRING)>):<Пользователь выбрал файл (INT)> Функция выводит стандартный системный диалог открытия файла с заголовком и установками, определяемыми аргументами. Результат выбора возвращается в переменной, задающей первый аргумент.
SaveFileDialog Реализована Функция
Да
SaveFileDialog(<Имя файла (STRING)>,<Заголовок диалога (STRING)>,<Доступные фильтры файлов (STRING)>,<Тип диалога (INT)>=0,<Расширение по умолчанию (STRING)>):<Пользователь нажал на ОК (INT)> Функция выводит стандартный системный диалог сохранения файла с заголовком и установками, определяемыми аргументами. Выбранное имя файла для сохранения возвращается в переменной, задающей первый аргумент.
OpenFileDialogServer Реализована Функция
Да
OpenFileDialogServer(<Имя файла (STRING)>,<Заголовок диалога (STRING)>,<Доступные фильтры файлов (STRING)>,<Тип диалога (INT)>=0,<Расширение по умолчанию (STRING)>,<Ограничить доступ этим каталогом (STRING)>):<Пользователь выбрал файл (INT)> Функция выводит стандартный системный диалог открытия файла на стороне сервера с заголовком и установками, определяемыми аргументами. Результат выбора возвращается в переменной, задающей первый аргумент.
SaveFileDialogServer Реализована Функция
Да
SaveFileDialogServer(<Имя файла (STRING)>,<Заголовок диалога (STRING)>,<Доступные фильтры файлов (STRING)>,<Тип диалога (INT)>=0,<Расширение по умолчанию (STRING)>,<Ограничить доступ этим каталогом (STRING)>):<Пользователь нажал на ОК (INT)> Функция выводит стандартный системный диалог сохранения файла на стороне сервера с заголовком и установками, определяемыми аргументами. Выбранное имя файла для сохранения возвращается в переменной, задающей первый аргумент.
SelectFontDialog Реализована Функция
Да
SelectFontDialog(<Наименования шрифта с его свойствами (STRING)>,<Запретить выбор стилей (INT)>=0,<Минимальный размер шрифта (INT)>=0,<Максимальный размер шрифта (INT)>=0):<Пользователь нажал на ОК (INT)> Функция выводит стандартный системный диалог выбора шрифта с установками, определяемыми аргументами. Выбранное имя шрифта и его свойства возвращаются в переменной, задающей первый аргумент.
SelectIconDialog Реализована Функция
Да
SelectIconDialog(<Индекс выбранной иконки или ноль (INT)>,<Заголовок диалога (STRING)>):<Пользователь выполнил выбор (INT)> Функция выводит стандартный модальный диалог выбора иконки из библиотеки иконок. Если пользователь выберет какую-либо иконку или пункт "без картинки", функция возвратит 1, иначе 0.
SelectFolderDialog Реализована Функция
Да
SelectFolderDialog(<Имя папки (STRING)>,<Заголовок диалога (STRING)>):<Пользователь выбрал папку (INT)> Функция выводит стандартный системный диалог выбора папки с файлами с заголовком, определяемым вторым аргументом. Результат выбора возвращается в переменной, задающей первый аргумент.
EditScriptDialog Реализована Функция
Да
EditScriptDialog(<Исходный текст программы (STRING)>,<Заголовок диалога (STRING)>,<Внешние переменные ч/з запятые (STRING)>):<Пользователь нажал на ОК (INT)> Функция выводит модальный диалог редактирования исходного текста программы, заданного первым аргументом. Диалог имеет стандартную подсветку текста и позволяет провести синтаксический контроль при необходимости. Результат редактирования возвращается в переменной, задающей первый аргумент.
AskString Реализована Функция
Да
AskString(<Текст для редактирования (STRING)>,<Заголовок диалога (STRING)>,<Максимальная длина строки (INT)>=256,<Тип строки (INT)>=0):<Пользователь нажал на ОК (INT)> Функция выводит модальный диалог редактирования текста, заданного первым аргументом. Текст может содержать как одну строку, так быть и многострочным. Результат редактирования возвращается в переменной, задающей первый аргумент.
AskNumber Реализована Функция
Да
AskNumber(<Число для редактирования (NUMBER)>,<Заголовок диалога (STRING)>,<Максимальная длина числа (INT)>=30,<Количество знаков после точки (INT)>=0):<Пользователь нажал на ОК (INT)> Функция выводит модальный диалог редактирования числа, заданного первым аргументом. Число может быть как целым, так и вещественным. В диалоге имеется возможность вызова калькулятора. Результат редактирования возвращается в переменной, задающей первый аргумент.
AskDate Реализована Функция
Да
AskDate(<Дата по умолчанию (DATE)>,<Заголовок диалога (STRING)>,<Режим показа диалога (INT)>=0):<Выбранная дата или 0 (DATE,INT)> Функция выводит диалог в виде поля или календаря для выбора даты. В режиме поля, у пользователя есть возможность вызвать календарь. Функция возвращает результат выбора или ноль, если пользователь отказался от выбора.
AskPeriod Реализована Функция
Да
AskPeriod(<Начальная дата периода (DATE)>,<Конечная дата периода (DATE)>,<Заголовок диалога (STRING)>,<Тип ограничения при выборе периода (INT)>=0):<Пользователь нажал на ОК (INT)> Функция выводит диалог для выбора периода времени. На возможность выбора могут быть наложены ограничения (к примеру, выбирать только периоды в целый месяц). Результат выбора возвращается в переменных, задающих первые два аргумента.

Функции, связанные с сервером и базой данных

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

Идентификатор Статус Тип Визуальная Параметры Описание
DBCodeLength Реализована Функция DBCodeLength():<Длина строки внутреннего кода объекта БД (INT)> Функция возвращает число 20, являющееся длиной строки внутреннего кода объекта базы данных.
DBTypeStr Реализована Функция DBTypeStr(<Аргумент>):<Тип объекта базы данных (STRING)> Функция возвращает тип объекта базы данных в виде строки. Пример возвращаемых значений: DOC, REF, ENUM и т.п. В случае, если аргумент не является объектом базы данных, будет возвращена пустая строка.
DBObjectName Реализована Функция DBObjectName(<Аргумент>):<Вид объекта базы данных (STRING)> Функция возвращает вид объекта базы данных в виде строки. Пример для элемента справочника REF.Справочник1 будет возвращена строка Справочник1. Результат функции соответствует конструкции <Переменная>.DBName(). В случае, если аргумент не является объектом базы данных или вид объекта не выбран, будет возвращена пустая строка.
IsDBObject Реализована Функция IsDBObject(<Аргумент>):<Является ли аргумент объектом БД (INT)> Функция возвращает 1, если аргумент является объектом базы данных, иначе будет возвращен 0.
MassLockWithWait Реализована Функция MassLockWithWait(<Список с объектами для блокировки (LIST)>,<Режим пропуска (INT)>=0,<Разблокировка при ошибках (INT)>=1,<Период ожидания млс. (INT)>=0,<Объект ошибки>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция позволяет установить блокировку на множестве объектов базы данных (или/и семафорах), блокировка происходит по указанным правилам (см. полное описание)
MassUnlock Реализована Функция MassUnlock(<Список с объектами для разблокировки (LIST)>,<Объект ошибки>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция позволяет снять блокировку со множества объектов базы данных (или/и семафоров) по указанным правилам (см. полное описание)
DBLockStringMutex Реализована Функция DBLockStringMutex(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)> Функция осуществляет блокировку именованного серверного семафора, либо возвращает данные пользователя, который его заблокировал.
DBIsStringMutexLocked Реализована Функция DBIsStringMutexLocked(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)> Функция проверяет, заблокирован ли именованный серверный семафор, и возвращает данные пользователя, который его заблокировал при необходимости.
DBUnlockStringMutex Реализована Функция DBUnlockStringMutex(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)> Функция осуществляет разблокировку именованного серверного семафора, либо возвращает данные пользователя, который его заблокировал.
StoreValue Реализована Функция StoreValue(<Имя переменной (STRING)>,<Значение переменной>) Функция сохраняет на сервере для текущего пользователя произвольное значение под выбранным именем. Функция работает только если клиент имеет подключение к серверу.
RestoreValue Реализована Функция RestoreValue(<Имя переменной (STRING)>):<Значение переменной> Функция получает, сохраненное ранее на сервере для текущего пользователя произвольное значение с выбранным именем. Функция работает только если клиент имеет подключение к серверу. Если значение с указанным именем не было сохранено, будет возвращено пустое значение.
StoreGlobalTempString Реализована Функция StoreGlobalTempString(<Имя переменной (STRING)>,<Значение переменной (STRING)>) Функция изменяет значение временной именной переменной на сервере, которая будет доступна другим пользователям, однако, будет потеряна при перезагрузке сервера.
RestoreGlobalTempString Реализована Функция RestoreGlobalTempString(<Имя переменной (STRING)>):<Значение переменной (STRING)> Функция получает значение временной именной переменной на сервере. Подобные переменные доступны другим пользователям, однако, теряются при перезагрузке сервера.
BroadcastDBUpdate Реализована Функция BroadcastDBUpdate(<Тип базы данных (STRING)>,<Для всех пользователей (INT)>=0):<Сообщение успешно отправлено (INT)> Функция рассылает запросы на обновление форм, содержащих таблицы базы данных указанного типа в текущей системе или глобально по всем клиентам сервера. В последнем случае, нужно быть осторожным, чтобы не перегружать сервер внезапным большим количеством запросов, даже с учетом того, что серверная часть использует особую систему замедления отправки запросов клиентам.
DBObjectFromDBCode Реализована Функция DBObjectFromDBCode(<Внутренний код базы данных (STRING)>):<Объект базы данных (DB)> Функция создает объект базы данных по его внутреннему коду. Нужно понимать, что внутренний код является уникальным в пределах текущей базы данных, при перенесении информации в другую базу данных, внутренние коды объектов будут совсем другими.
MassLoadObjects Реализована Функция MassLoadObjects(<Объект для загрузки>,<Аргумент 1>,<Аргумент 2>,<Также загружать периодические реквизиты (INT)>=0,<Производить загрузку заголовков (INT)>=0,<Доп. реквизиты при загрузке заголовков (STRING)>=""):<Количество объектов, которые были загружены (INT)> Функция производит загрузку большого количества объектов из списка, таблицы или являющихся реквизитами объекта БД, одновременно, что быстрее, чем загрузка этих объектов один за другим. Дополнительные параметры позволяют настроить загрузку, в т.ч. ограничить ее загрузкой только заголовков.
LockDBPath Планируется Функция LockDBPath(<Путь или объект для блокировки (STRING,DB)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция производит попытку блокировки всей таблицы указанных объектов (к примеру, всего справочника с указанным видом).
UnlockDBPath Планируется Функция UnlockDBPath(<Путь или объект для разблокировки (STRING,DB)>,<Описание ошибки (STRING)>):<0 или 1 (INT)> Функция производит разблокировки всей таблицы указанных объектов (к примеру, всего справочника с указанным видом), заблокированных ранее функцией LockDBPath
GetServerLocksInformation Реализована Функция GetServerLocksInformation(<Перекрестная проверка (INT)>=0):<Таблица блокировок сервера (TAB)> Функция получает полный список блокированных в данный момент объектов на сервере (включая именованные семафоры).
GetServerStoragesInformation Реализована Функция GetServerStoragesInformation(<Имена накопителей через запятую (STRING)>=""):<Информация по накопителям (TAB)> Функция получает информацию по всем накопителям проекта с сервера в виде таблицы. В ней присутствует информация по крайним документам, дате остатков и пр.
GetServerUsedSpaceInformation Реализована Функция GetServerUsedSpaceInformation():<Информация по объему таблиц БД (TAB)> Функция получает информацию по затраченному месту в базе данных по всем объектам проекта и системным таблицам с сервера в виде таблицы. В таблице также присутствует информация строчным частям и таблицам периодических значений.
CheckDBConsistency Планируется Функция CheckDBConsistency(<Путь или объект (STRING,DB)>="",<Режим (INT)>=0):<Информация по проблемам БД (TAB)> Функция осуществляет проверку корректности информации на сервере для всех таблиц или таблиц с заданным путем. Информация возвращается в виде таблицы.
BeginTransaction Реализована Функция BeginTransaction():<Уровень вложения транзакции (INT)> Функция инициирует начало транзактного изменения объектов БД. По умолчанию транзакция на сервере не включена и возникает периодически при записи объектов или обработке документов. Каждый поток имеет свой уровень вложения транзакции. Функция опасна и при некорректном использовании может привести к порче данных. См. полное описание.
CommitTransaction Реализована Функция CommitTransaction():<Уровень вложения транзакции (INT)> Функция уменьшает текущий уровень транзакции на единицу и, если он равен нулю, фиксирует изменения в базе данных. См. также BeginTransaction.
RollbackTransaction Реализована Функция RollbackTransaction() Функция отменяет все изменения, произведенные в текущей транзакции и уменьшает уровень транзакции до нуля. См. также BeginTransaction.
IsTransactionActive Реализована Функция IsTransactionActive():<0 или 1 (INT)> Функция возвращает 1 в случае, если в данном потоке уровень транзакции больше нуля (транзакция активна).
CollectObjectsLinks Реализована Функция CollectObjectsLinks(<Список объектов (LIST)>):<Таблица ссылок данных объектов (TAB)> Функция возвращает полную таблицу ссылок всех объектов БД из заданного списка. К примеру, если объект содержится в движениях накопителя или выбран в реквизите другого объекта (в т.ч. периодическом), в таблицу добавится запись о такой ссылке. Функция может использоваться перед физическим удалением объектов из БД, чтобы убедиться, что никакие другие таблицы БД не имеют на них ссылок. Функция может сильно загрузить сервер базы данных.
LockStorage Реализована Функция LockStorage(<Наименование накопителя (STRING)>) Функция производит блокировку указанного накопителя для всех пользователей сервера. Если накопитель был заблокирован другим пользователем, функция вызовет исключение. Функция вызывается автоматически при обработке документов с включенным режимом автоматической транзакции. Время между блокировкой и разблокировкой необходимо минимизировать, чтобы улучшить производительность базы данных. При ошибке, функция не предлагает имени пользователя, заблокировавшего накопитель, если такая информация необходима, разработчик может использовать функцию LockDBPath вместо текущей. Обычно функция используется вне модуля обработки документа. В отличие от функции UnlockStorage, функция может использоваться как внутри транзакции, так и вне оной.
UnlockStorage Реализована Функция UnlockStorage(<Наименование накопителя (STRING)>) Функция производит разблокировку указанного накопителя, при его блокировке функцией LockStorage. Функция может использоваться только вне режима транзакции, так как при окончании транзакции, все заблокированные накопители автоматически будут разблокированы системой.
InitiateBackupCreation Реализована Функция InitiateBackupCreation(<Идентификатор протокола резервного копирования (STRING)>,<Ожидать завершения процесса (INT)>=0):<Внутренний код процесса резервного копирования (INT)> Функция инициирует (и ожидает завершения, если необходимо) процесс резервного копирования базы данных и сопутствующих файлов проекта по протоколу, заданному в файлах инициализации сервера. Идентификатор протокола задается из установок в файле инициализации сервера. Если ожидание окончания процесса не задано, функция возвращается сразу же после инициации процесса резервного копирования, иначе только после окончания процесса или возникновения ошибки. Для получения информации по асинхронному процессу, а также для получения описания ошибки, остановившей процесс, используется функция QueryBackupProgress.
QueryBackupProgress Реализована Функция QueryBackupProgress(<Код процесса резервного копирования (INT)>,<Текущее сообщение процесса копирования или сообщение об ошибке (STRING)>,<Дата и время начала последнего процесса (DATE)>):<Код состояния процесса резервного копирования (INT)> Функция используется для получения информации об окончании или состоянии процесса резервного копирования, инициированого функцией InitiateBackupCreation.
QueryScheduledBackupFailure Реализована Функция QueryScheduledBackupFailure(<Идентификатор протокола последней ошибки резервного копирования (STRING)>,<Сообщение об ошибке, произошедшей во время резервного копирования (STRING)>,<Дата и время начала последнего процесса (DATE)>):<Ошибка происходила (1), ошибки не было (0) (INT)> Функция возвращает информацию по последней ошибке при резервном копировании, выполнявшемся по расписанию. Если ошибка произошла при инициации копирования функцией InitiateBackupCreation, она не будет возвращена этой функцией. Функция может выполняться при запуске клиента с административными правами, чтобы предупредить администратора о том, что какой-либо из процессов резервного копирования закончился с ошибкой. Чтобы очистить информацию об ошибке, необходимо удалить сохраненный файл ошибки в каталоге проекта на сервере.
SysRebuildIndexes Реализована Функция SysRebuildIndexes(<Наименование объекта, для которого необходимо выполнить процедуру перестроения индексов (STRING)>) Функция выполняет процедуру перестроения индексов для указанного объекта базы данных или для всех объектов базы данных. Данная процедура может занять продолжительное время. Необходимость в такой процедуре может появляться при обновлении сервера базы данных или порче данных в базе данных и т.д. Для некоторых типов СУБД нет возможности выполнить такую процедуру с помощью сторонних утилит, к примеру, для SQLite3 использование особых типов сравнения для текстовых данных, делает невозможным использование сторонних утилит, альтернативой перестроения индексов может служить выгрузка дампа базы данных и создание с помощью него новой базы данных.

Функции отладки

Функции, собранные здесь, используются для изменения параметров и работы со встроенным отладчиком. Отладчик доступен как для визуальных, так и для консольных клиентов.

Идентификатор Статус Тип Визуальная Параметры Описание
DebuggingRights Реализована Функция DebuggingRights(<Режим отладки 0 или 1 (INT)>):<Текущий режим отладки (INT)> Функция получает или/и изменяет текущий режим отладки. Если режим отладки не включен, встроенный отладчик не будет выведен в момент появления исключения или нажатия Ctrl+Alt+C.
Debugbreak Реализована Функция Debugbreak() Функция приостанавливает выполнение и открывает окно отладчика на текущей инструкции, если это позволяет текущий режим отладки. Функция не должна быть последней в модуле.
ProfilerStart Реализована Функция ProfilerStart() Функция включает встроенный профайлер, если это позволяет текущий режим отладки. Данные, накопленные профайлером ранее не изменяются. При включенном профайлере программа исполняется несколько медленнее.
ProfilerStop Реализована Функция ProfilerStop() Функция отключает встроенный профайлер. Данные, накопленные профайлером ранее не изменяются.
ProfilerClear Реализована Функция ProfilerClear() Функция очищает данные, накопленные профайлером.
Assert Реализована Функция Assert(<Условие утверждения (INT)>,<Описание ошибки утверждения (STRING)>) Функция проверяет истинность утверждения, заданного первым аргументом, если утверждение ложно, функция вызывает исключение 71 (ERR_ASSERTIONERROR) с требуемым описанием, если необходимо.
AssertMode Реализована Функция AssertMode(<Режим ошибок утверждения (INT)>) Функция изменяет способ обработки ошибок утверждения (Assert). Режим используется для всех потоков клиента.
Raise Реализована Магическая конструкция Raise <Описание исключения (STRING)> Функция вызывает исключение 41 (ERR_USER) с требуемым описанием, если необходимо.
Reraise Планируется Функция Reraise() Функция может использоваться внутри блока Except ... EndTry для того, чтобы снова вызвать подавленное конструкцией Except исключение.
PopError Реализована Функция PopError(<Режим (INT)>=15):<Описание исключения (STRING)> Функция получает описание текущего исключения, собирая его из требуемых частей. Информация об исключении удаляется из очереди (но не само исключение). Функцию рекомендуется использовать внутри блока Except ... EndTry
PeekError Реализована Функция PeekError(<Режим (INT)>=15):<Описание исключения (STRING)> Функция получает описание текущего исключения, собирая его из требуемых частей. Информация об исключении не удаляется из очереди. Функцию можно использовать внутри блоков Except ... EndTry или Finally ... EndTry
SuppressException Реализована Функция SuppressException() Функция может использоваться только внутри блока Finally ... EndTry. Текущее исключение в очереди исключений будет удалено, оно не будет инициировано после выполнения EndTry. Функция позволяет превратить конструкцию Try ... Finally в аналог конструции Try ... Except программно.
Writeln Реализована Функция
Да
Writeln(<Аргумент>) Отладочная функция выводит строковое представление аргумента в лог клиента. Функция является упрощенной версией функции Message.

Внутренние отладочные функции

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

Идентификатор Статус Тип Визуальная Параметры Описание
RefCount Реализована Функция RefCount(<Аргумент>):<Значения счетчика ссылок объекта (INT)> Функция возвращает значение счетчика внешних ссылок сложного объекта (см. Объекты), либо -1, если аргумент не является сложным объектом.
BusyCount Реализована Функция BusyCount(<Аргумент>):<Значения счетчика занятости однопоточных объектов (INT)> Функция отладки позволяет узнать величину свойства "занят" для однопоточных объектов.
dbgVarStackSize Реализована Функция dbgVarStackSize():<Количество переменных в стеке (INT)> Отладочная функция возвращает общее количество переменных в стеке переменных текущего потока.
dbgVarDump Реализована Функция dbgVarDump() Отладочная функция выводит в консоль или панель логов визуального клиента отладочную информацию по текущему состоянию стека переменных текущего потока.
dbgObjectHeapsNumber Реализована Функция dbgObjectHeapsNumber():<Количество объектных стеков в системе (INT)> Отладочная функция получает количество стеков объектов, существующих во всех работающих потоках, а также стеков объектов, которые принадлежали закрытым потокам, однако, содержащих адресуемые объекты.
dbgEvalObjectsNumber Реализована Функция dbgEvalObjectsNumber():<Количество объектов в стеке исполнения (INT)> Отладочная функция получает количество объектов в стеке исполнения текущего потока.
dbgObjectsNumber Реализована Функция dbgObjectsNumber(<Объект, стек которого необходимо использовать>):<Количество объектов в стеке объектов (INT)> Отладочная функция получает количество объектов в стеке объектов текущего потока исполнения, либо потока, в котором был создан объект аргумента.
dbgMemoryAllocated Реализована Функция dbgMemoryAllocated():<Объем памяти, выделенный системой (INT)> Отладочная функция получает текущий объем памяти в байтах, выделенный системой (с учетом всех внутренних переменных, стеков потоков, объектных стеков и пр.)
dbgShowAllocInfo Реализована Функция dbgShowAllocInfo(<Включение режима накопления информации по объектам текущего стека объектов (INT)>) Отладочная функция должна использоваться дважды. В первый раз до выполнения операции, которая может произвести утечку объектов с параметром 1 (включить), затем второй раз после операции с параметром 0 (выключить), после чего функция выводит в консоль информацию по всем объектам, созданным за время операции, оставшимся в памяти после ее окончания. Функция может использоваться только в консольном клиенте.
dbgOLEMethodsList Реализована Функция dbgOLEMethodsList(<OLE-объект (OLE)>):<Дерево методов и свойств объекта (TREE)> Отладочная функция, позволяет получить внутренний список имен методов и свойств OLE-объекта в виде дерева. Может использоваться, чтобы найти имя метода, если документация недоступна или недостаточно подробна.
dbgStackTrace Реализована Функция dbgStackTrace():<Стек вызовов текущего потока (STRING)> Отладочная функция получает языковый стек вызовов текущего исполняемого потока в виде строки.
dbgSysStackTrace Реализована Функция dbgSysStackTrace():<Системный стек вызовов текущего потока (STRING)> Отладочная функция получает системный стек вызовов текущего исполняемого потока в виде строки. Без наличия соответствующего .map файла клиента, стек будет иметь неописательную информацию.
dbgSysStackTraceVisual Реализована Функция dbgSysStackTraceVisual():<Системный стек вызовов визуального потока (STRING)> Отладочная функция получает системный стек вызовов визуального потока в виде строки. Без наличия соответствующего .map файла клиента, стек будет иметь неописательную информацию. Функция может быть вызвана только для визуального клиента.
dbgSysLastExceptionStackTrace Планируется Функция dbgSysLastExceptionStackTrace():<Системный стек вызовов последнего системного исключения (STRING)> Отладочная функция получает системный стек вызовов последнего исключения на уровне системы в виде строки. Без наличия соответствующего .map файла клиента, стек будет иметь неописательную информацию.
dbgHRPCAvailable Реализована Функция dbgHRPCAvailable():<Можно ли использовать т.в.т. (INT)> Отладочная функция проверяет, включен ли на данной машине таймер высокой точности (обычно включение происходит в BIOS компьютера).
dbgHRPCCurrent Реализована Функция dbgHRPCCurrent():<Текущее значение т.в.т. (INT)> Отладочная функция получает текущее значение таймера высокой точности. Если таймер не включен на системном уровне, функция возвращает 0.
dbgHRPCGetPeriod Реализована Функция dbgHRPCGetPeriod(<Предыдущее значение т.в.т. (INT)>):<Прошедшее время в наносекундах (INT)> Отладочная функция получает промежуток времени, прошедший от предыдущего значения таймера высокой точности (заданного аргументом) до текущего момента, выраженное в наносекундах. Если таймер не включен на системном уровне, функция возвращает пустое значение. Перевод периода в секунды можно осуществить по формуле <Результат>/1000000000.

Объект сторожевого пса

Основная характеристика консольных клиентов, работающих в режиме сервера, это их постоянная доступность. Если консольное приложение вызывает внешние функции, есть вероятность зависания, если в этих внешних функциях содержатся ошибки (OLE-объекты могут зависнут, либо, печать на принтер, драйвер которого, может войти в вечный цикл ожидания или вывести сообщение об ошибке на экран, ожидая действия пользователя и пр.). Функции сторожевого пса помогают при появлении зависаний перезапустить программу-клиент. Каждый объект сторожевого пса в активном состоянии работает в отдельном системном потоке, наличие большого количества таких объектов может негативно сказаться на ресурсах системы.

Идентификатор Статус Тип Визуальная Параметры Описание
Create Реализована Функция Watchdog.Create(<Режим сторожевого пса (INT)>=0):<Новый объект сторожевого пса (Watchdog)> Функция создает новый объект сторожевого пса с указанным режимом. Сторожевой пес создается в неактивном состоянии. Для активации необходимо использовать функцию Guard.
Guard Реализована Функция Watchdog.Guard(<Количество миллисекунд (INT)>):<Сторожевой пес удачно активирован 1 или 0 (INT)> Функция производит включение режима сторожевого пса с указанным периодом слежения. Функция может использоваться только в консольном клиенте.
Feed Реализована Функция Watchdog.Feed() Функция обнуляет время ожидания в режиме сторожевого пса. Функция может использоваться только в консольном клиенте. Функция должна исполняться периодически, чтобы пес не инициировал перезагрузку консольного клиента.
Sleep Реализована Функция Watchdog.Sleep():<Сторожевой пес удачно деактивирован 1 или 0 (INT)> Функция производит выключение (деактивацию) сторожевого пса. Деактивация будет произведена автоматически в момент удаления объекта из системы, если он был в активном состоянии в момент удаления. Функция может использоваться только в консольном клиенте.
Mode Реализована Атрибут Watchdog.Mode Атрибут получает или изменяет режим сторожевого пса. Изменения можно производить даже если пес еще не активирован.
Active Реализована Атрибут Watchdog.Active Атрибут возвращает 1, если сторожевой пес активирован, иначе возвращает 0. Атрибут доступен только для чтения.

Функции криптографии

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

Идентификатор Статус Тип Визуальная Параметры Описание
CreateKeySchedule Реализована Функция CreateKeySchedule(<Стандарт кодирования (STRING)>,<Ключ (пароль) (STRING,BUFFER)>,<Для декодирования (INT)>=0):<Параметр кодировщика (BUFFER)> Функция позволяет создать из текстового ключа объект, необходимый для кодирования или декодирования информации с помощью этого ключа. В дальнейшем этот объект может использоваться для вызова функций кодирования Encrypt или декодирования Decrypt. Первый аргумент задает стандарт кодирования, к примеру, "AES256".
Encrypt Реализована Функция Encrypt(<Стандарт кодирования (STRING)>,<Информация для кодирования (STRING,BUFFER)>,<Параметр кодировщика (расписание кодирования) (BUFFER)>,<Источник в формате UTF-16 (INT)>=0):<Закодированная строка или 1> Функция производит кодирование строки или буфера по стандарту, заданному первым аргументом. Размер строки или буфера должен быть кратен определенному количеству байт, заданному стандартом кодирования (к примеру, для AES-256, это число 16); если размер не будет кратен нужному количеству байт, функция вызове исключение. Нужно иметь в виду, что для UTF-16 строк, размер в байтах в два раза больше, чем количество символов в строке. Если первым параметром служит буфер, в результате функция возвратит единицу, а содержимое буфера будет закодировано, если первым параметром была передана строка, функция возвратит ANSI строку.
Decrypt Реализована Функция Decrypt(<Стандарт кодирования (STRING)>,<Информация для декодирования (STRING,BUFFER)>,<Параметр декодировщика (расписание декодирования) (BUFFER)>,<Результат в формате UTF-16 (INT)>=0):<Декодированная строка или 1> Функция производит декодирование строки или буфера, закодированных по стандарту, заданному первым аргументом. Размер строки или буфера должен быть кратен количеству байт, заданному стандартом кодирования (к примеру, для AES-256, это число 16); если размер не будет кратен нужному количеству байт, функция вызове исключение. Нужно иметь в виду, что для UTF-16 строк, размер в байтах в два раза больше, чем количество символов в строке. Если первым параметром служит буфер, в результате функция возвратит единицу, а содержимое буфера будет декодировано, если первым параметром была передана строка, функция возвратит ANSI или UTF-16 строку, в зависимости от значения третьего аргумента.
CalculateHash Частичная реализация Функция CalculateHash(<Информация для нахождения контрольной суммы (STRING,BUFFER)>,<Алгоритм (STRING)>="INTERNAL",<Завершающий блок (INT)>=1,<Сумма или состояние предыдущего блока (STRING,BUFFER)>,<Дополнительный параметр (STRING)>=""):<Сумма или текущее состояние (STRING,BUFFER)> Функция подсчет контрольной суммы или хэша буфера или строки по указанному алгоритму, имеется также возможность подсчитать сумму нескольких блоков, как единого целого, вызывая эту функцию для каждого из блоков один раз. В список алгоритмов входят такие, как "MD5", "CRC32", "SHA-1" и пр.

Функции архивации

Функции архивации помогают распаковать или упаковать информацию без необходимости использования внешних исполняемых файлов или библиотек. StreamCompress и StreamDecompress упаковывают и распаковывают поток данных, не связанный с файлами на диске, позволяя сжимать информацию передаваемую по WEB или создавать сжатые данные произвольного размера.

Идентификатор Статус Тип Визуальная Параметры Описание
StreamCompress Реализована Функция StreamCompress(<Данные для упаковки (STRING,BUFFER,TEXT)>,<Алгоритм (STRING)>="ZLIB",<Уровень (INT)>=6,<Завершающий блок (INT)>=1,<Словарь упаковки>):<Результат упаковки (STRING,BUFFER)> Функция производит упаковку блока данных по заданному алгоритму. Для последовательной упаковки частей одного большого блока данных, функцию необходимо вызвать несколько раз с каждой частью блока данных.
StreamDecompress Реализована Функция StreamDecompress(<Данные для распаковки (STRING,BUFFER)>,<Алгоритм (STRING)>="ZLIB",<Завершающий блок (INT)>=1,<Словарь распаковки или общий размер упакованного блока (INT,?)>):<Результат распаковки (STRING,BUFFER)> Функция производит распаковку блока данных по заданному алгоритму. Для последовательной распаковки частей одного большого блока данных, функцию необходимо вызвать несколько раз с каждой частью блока данных.

Функции штрихкодов и символов

Функции штрихкодов и символов позволяют создавать штрихкоды в виду картинок, которые затем можно добавить на форму, напечатать, вывести на web-странице и пр.

Идентификатор Статус Тип Визуальная Параметры Описание
Generate1DBarcode Реализована Функция Generate1DBarcode(<Тип штрихкода (STRING)>,<Ширина (INT)>,<Высота (INT)>,<Кодируемое сообщение (STRING)>,<Установки (STRING)>):<Результат (PICTURE)> Функция генерирует линейный штрихкод указанного типа с указанными размерами, если необходимо. Параметры генерации настраиваются с помощью дополнительных установок, если необходимо. Функция поддерживает следующие виды штрихкодов: Code 128,UPC,EAN,Code 39,ISBN,Code 93,ITF (Interleaved 2 of 5),MSI,Codabar.
Generate2DBarcode Частичная реализация Функция Generate2DBarcode(<Тип символа (STRING)>,<Ширина (INT)>,<Высота (INT)>,<Кодируемое сообщение (STRING)>,<Установки (STRING)>):<Результат (PICTURE)> Функция генерирует двумерный символ указанного типа с указанными размерами, если необходимо. Параметры генерации настраиваются с помощью дополнительных установок, если необходимо. Функция поддерживает следующие виды символов: PDF 417, Aztec Code, QR Code, Data Matrix, MaxiCode.
CountBarcodeCRC Реализована Функция CountBarcodeCRC(<Тип контрольной суммы (STRING)>,<Полное кодируемое сообщение (STRING)>):<Контрольная сумма (INT,STRING)> Функция используется для случаев, когда кодируемое сообщение разделено на несколько символов (или штрихкодов), при этом необходима контрольная сумма всего сообщения, чтобы программа декодирования смогла проверить корректность результата.

Функции среды исполнения

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

Идентификатор Статус Тип Визуальная Параметры Описание
SysExecNoConsole Реализована Функция SysExecNoConsole(<Командная строка исполнения (STRING)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)> Функция производит запуск приложения с параметрами в командной строке, подавляя создание консоли при запуске, приложение может находиться на сервере, в этом случае, оно сначала будет перенесено на локальный диск.
SysExec Реализована Функция SysExec(<Командная строка исполнения (STRING)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)> Функция производит запуск приложения с параметрами в командной строке, приложение может находиться на сервере, в этом случае, оно сначала будет перенесено на локальный диск.
SysExecNoConsoleLocal Реализована Функция SysExecNoConsoleLocal(<Командная строка исполнения (STRING)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)> Функция производит запуск приложения с параметрами в командной строке, подавляя создание консоли при запуске, приложение может находиться только на локальном компьютере, разбор командной строки не производится.
SysExecLocal Реализована Функция SysExecLocal(<Командная строка исполнения (STRING)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)> Функция производит запуск приложения с параметрами в командной строке, приложение может находиться только на локальном компьютере, разбор командной строки не производится.
StdStreamsSysExec Планируется Функция StdStreamsSysExec(<Командная строка исполнения (STRING)>,<Буфер с дескрипторами (BUFFER)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)> Функция производит запуск приложения с параметрами в командной строке, подавляя создание консоли при запуске, приложение может находиться на сервере, в этом случае, оно сначала будет перенесено на локальный диск. Переменная, заданная вторым аргументом, получает набор дескрипторов для манипуляции со стандартными потоками и самим приложением. Для закрытия дескрипторов должна быть использована функция StdStreamsCloseHandles
StdStreamsTransfer Планируется Функция StdStreamsTransfer(<Текст для отправки (STRING)>,<Буфер с дескрипторами (BUFFER)>) Функция производит выгрузку текста в StdIn потока запущенного ранее приложения.
StdStreamsRead Планируется Функция StdStreamsRead(<Буфер с дескрипторами (BUFFER)>,<StdErr поток (INT)>=0):<Полученный текст (STRING)> Функция производит получение текста из StdOut или StdErr потоков запущенного ранее приложения.
StdStreamsCloseHandles Планируется Функция StdStreamsCloseHandles(<Буфер с дескрипторами (BUFFER)>) Функция закрывает дескрипторы, полученные ранее при запуске приложения. Если не пользоваться этой функцией, в системе будет наблюдаться утечка ресурсов.
StdStreamsApplicationExited Планируется Функция StdStreamsApplicationExited(<Буфер с дескрипторами (BUFFER)>):<Завершена ли работа приложения (INT)> Функция проверяет, завершена ли работа приложения, идентифицируемого дескрипторами, полученными при его запуске.
StdStreamsTerminateApplication Планируется Функция StdStreamsTerminateApplication(<Буфер с дескрипторами (BUFFER)>):<Приложение было завершено (INT)> Функция производит попытку завершить работу приложения, идентифицируемого дескрипторами, полученными при его запуске.
SysEmulateKeystroke Реализована Функция
Да
SysEmulateKeystroke(<Виртуальный код клавиши (INT)>,<Произведено нажатие (INT)>) Функция эмулирует нажатие или отпускание клавиши по ее виртуальному коду. Эмуляция производится средствами системы и выполняется даже если окно клиента не является активным окном.
SysParamCount Реализована Функция SysParamCount():<Количество параметров командной строки клиента (INT)> Функция возвращает количество параметров, которые были переданы в командной строке при запуске клиента.
SysParam Реализована Функция SysParam(<Номер параметра (INT)>):<Параметр командной строки (STRING)> Функция возвращает параметр командной строки запуска клиента с требуемым номером.
SysSetEnvValue Планируется Функция SysSetEnvValue(<Имя переменной (STRING)>,<Значение переменной (STRING)>) Функция изменяет переменную системного окружения (environment)
SysGetEnvValue Планируется Функция SysGetEnvValue(<Имя переменной (STRING)>):<Значение переменной (STRING)> Функция получает значение переменной системного окружения (environment). Если переменная не была установлена, будет возвращена пустая строка.
CopyFileToTemp Реализована Функция CopyFileToTemp(<Файл на сервере (STRING)>):<Путь и имя файла в локальной временной папке (STRING)> Функция копирует файл во временную папку, отдавая его путь и имя. Исходный файл может находиться на сервере ил локальном диске.
ClipboardGetText Реализована Функция ClipboardGetText(<Формат текста буфера (INT)>=0):<Текст из буфера или пустая строка (STRING)> Функция получает текст из буфера обмена операционного системы в требуемом формате. При ошибке или отсуствии нужного формата, функция возвращает пустую строку.
ClipboardPutText Реализована Функция ClipboardPutText(<Текст (STRING)>,<Формат текста буфера (INT)>=0):<Удачно изменен системный буфер (INT)> Функция помещает текст в буфер обмена операционного системы в требуемом формате.
ExitProgram Реализована Функция ExitProgram(<Вопрос о сохранении данных (INT)>=1) Функция позволяет завершить выполнения клиента, по умолчанию, создавая запрос о сохранении текущих форм, требующих сохранения. Все незавершенные транзакции будут либо отменены, либо приняты. Событие OnSystemExit может отменить действие этой функции.
CloseProgram Реализована Функция CloseProgram() Функция завершает выполнение клиента без каких-либо дополнительных предупреждений и вопросов. Все незавершенные транзации будут отменены в следствии разрыва связи клиентом. Событие OnSystemExit не будет вызвано.
RestartProgram Реализована Функция RestartProgram(<Мгновенный перезапуск (INT)>=1) Функция может использоваться только для консольного клиента. Если аргумент равен 1, функция завершает выполнение клиента без каких-либо дополнительных предупреждений и вопросов. Все незавершенные транзации будут отменены в следствии разрыва связи клиентом. Событие OnSystemExit не будет вызвано. В случае, если аргумент равен 0, функция закрывает транзакции корректным образом, событие OnSystemExit может отменить действие этой функции. После завершения работы клиента, будет произведена попытка его повторного запуска.
sysIsTerminalMode Реализована Функция sysIsTerminalMode():<Клиент работает в терминальном режиме (INT)> Функция проверяет, запущен ли текущий клиент в терминальном режиме (1), либо в режиме локального компьютера (0).
sysTerminalGetComputerName Реализована Функция sysTerminalGetComputerName():<Наименование клиентского компьютера (STRING)> Функция находит наименование клиентского компьютера, с которого он осуществляет работу на терминальном сервере. Если работа не ведется на терминальном сервере, будет возвращена пустая строка.
sysLowVideoMemoryMode Реализована Функция sysLowVideoMemoryMode(<Включить режим экономия видеопамяти (INT)>):<Состояние режима экономии видеопамяти (INT)> Функция получает или/и изменяет состояние режима экономии видеопамяти (рекомендуется для терминальных клиентов).
MainWindowCaption Планируется Функция
Да
MainWindowCaption(<Заголовок основного окна клиента (STRING)>):<Текущее заголовок основного окна (STRING)> Функция изменяет заголовок основного окна клиента на необходимый.
ReturnToForeground Планируется Функция
Да
ReturnToForeground() Функция делает приложение активным и возвращает ему фокус. Функция может пригодиться после модального вызова внешних библиотек или приложений, которые выводят информацию или окна на экран. После завершения такого приложения (в зависимости от его функциональности) окно программы может не быть активировано корректно или вообще быть скрыто.
CurrentFormCaption Планируется Функция
Да
CurrentFormCaption(<Заголовок текущей формы клиента (STRING)>) Функция изменяет заголовок текущей формы клиента на необходимый. Функция является аналогом функции Form.Caption.
ComputerName Реализована Функция ComputerName():<Сетевое имя машины клиента (STRING)> Функция получает сетевое имя машины (компьютера), на которой запущен клиент.
UserName Реализована Функция UserName():<Имя учетной записи пользователя на текущей машине (STRING)> Функция получает имя учетной записи, под которой работает пользователь на текущей машине (компьютере).
ServerUserName, LogonName Реализована Функция ServerUserName():<Имя учетной записи сервера базы данных (STRING)> Функция получает имя учетной записи сервера базы данных под которым работает клиент, если клиент не зарегистрирован на сервере базы данных (локальный клиент), функция может возвратить пустую строку.
IsDBAdministrator Реализована Функция IsDBAdministrator():<Уровень административных полномочий клиента (INT)> Функция отдает 0, если клиент зарегистрирован на сервере в режиме обычного пользователя, 1 -- в режиме ограниченного администратора, и 2 -- в режиме администратора (может выполнять привилегированные команды, редактировать учетные записи пользователей и пр.).
IsSlowConnection Реализована Функция IsSlowConnection():<Используется медленное соединение (необходима оптимизация) (INT)> Функция отдает 1, если для базы данных активен режим "медленное соединение". В этом режиме клиент будет оптимизировать некоторые запросы к серверу (пытаться уменьшить количество запросов за счет включения нескольких запросов в один), данная функция может служить флагом для программной оптимизации или даже загрузки другого интерфейса для пользователей, работающих по Интернету, а не по локальной сети.
ServerName Реализована Функция ServerName():<Внутреннее наименование сервера БД (STRING)> Функция возвращает короткое наименование сервера базы данных. Если клиент не зарегистрирован на сервере базы данных (локальный клиент), функция возвратит пустую строку.
DBMSVersion Реализована Функция DBMSVersion():<Версия ПО СУБД сервера базы данных (STRING)> Функция возвращает версию ПО СУБД, которая используется сервером базы данных.
ServerName Реализована Функция ServerName():<Внутреннее наименование сервера БД (STRING)> Функция возвращает короткое наименование сервера базы данных. Если клиент не зарегистрирован на сервере базы данных (локальный клиент), функция возвратит пустую строку.
GetTempDirectory Реализована Функция GetTempDirectory():<Папка временных файлов (STRING)> Функция получает путь к папке временных файлов. Вне зависимости от прав пользователя в системе, он имеет доступ к чтению и записи внутри такой папки. Папка находится на локальном компьютере.
GetDatabaseDirectory Реализована Функция GetDatabaseDirectory():<Путь к файлам текущей локальной конфигурации (STRING)> Функция работает только для локальных клиентов (не связанных с сервером базы данных), и возвращает локальный (или сетевой) путь к файлам текущей конфигурации.
GetBinaryDirectory Реализована Функция GetBinaryDirectory():<Путь к папке, из которой запущен исполняемый файл клиента (STRING)> Функция возвращает путь к папке, из которой запущен исполняемый файл клиента (консольного или визуального).
GetUserDirectory Реализована Функция GetUserDirectory():<Путь к личной папке пользователя (STRING)> Функция возвращает путь к личной папке пользователя, при наличии подключения к серверу, этот путь указывает на папку на сервере, и выглядит UserSettings\<Имя пользователя>\, если клиент работает без подключения к серверу, этот путь указывает на локальную папку, и будет выглядеть <Путь с файлам конфигурации>\UserSettings\<Имя пользователя>\. В данной папке можно хранить установки, предпочтения и другие файлы, связанные с текущим пользователем. Клиент также сохраняет свои установки форм и печати внутри этой папки, поэтому, нельзя рассчитывать, что она будет пустой.
CurrentLanguage Реализована Функция CurrentLanguage():<Код текущего языка по умолчанию (STRING)> Функция возвращает код текущего языка по умолчанию. Язык по умолчанию используется в функциях прописи и подобных, где есть возможность кодирования на разных языках. Код языка обычно состоит из двух букв (RU,EN...). См. также функцию SelectLanguage.
SelectLanguage Реализована Функция SelectLanguage(<Код языка по умолчанию (STRING)>):<Код текущего языка по умолчанию (STRING)> Функция изменяет код текущего языка по умолчанию, возвращая предыдущий. Язык по умолчанию используется в функциях прописи и подобных, где есть возможность кодирования на разных языках. Код языка обычно состоит из двух букв (RU,EN...).
OSVersion Реализована Функция OSVersion():<Версия операционной системы (STRING)> Функция возвращает версию операционной системы, под которой запущен клиент в виде <Тип> Version X.X (Build XXXX: <Название пакета обновления>) (к примеру Windows Version 6.1 (Build 7601: Service Pack 1)).
ProgramVersion Реализована Функция ProgramVersion():<Версия клиента (STRING)> Функция возвращает текущую версию клиента в виде X.X (Build: XXXXXX) (к примеру 1.1 (Build: 190511)). Функция работает как для консольных, так и для визуальных клиентов.
ProgramMode Реализована Функция ProgramMode():<Тип клиента (INT)> Функция возвращает код типа клиента текущей сессии. 0 -- консольный режим, 1 -- визуальный клиент.
ProgramArchitecture Реализована Функция ProgramArchitecture():<Тип архитектуры приложения клиента (STRING)> Функция возвращает тип архитектуры приложения клиента (к примеру, x64 или x86).
PointerSize Реализована Функция PointerSize():<Размер системного указателя в байтах (INT)> Функция возвращает размер системного указателя в байтах. Для x86 размер равен 4, для x64 размер равен 8.
ProjectVersion Реализована Функция ProjectVersion():<Номер сборки проекта (STRING)> Функция возвращает номер сборки проекта (конфигурации) в виде Build: XXXX.
ProjectName, DBCaption Реализована Функция ProjectName():<Наименование проекта (STRING)> Функция возвращает наименование проекта (конфигурации), как оно было задано в Студии.
DBDescription Реализована Функция DBDescription():<Описание проекта (STRING)> Функция возвращает описание проекта (конфигурации), как оно было задано в Студии.
ProjectGUID Реализована Функция ProjectGUID():<GUID проекта (STRING)> Функция возвращает GUID проекта (конфигурации) в виде {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
UnsupportedServerFeatures Реализована Функция UnsupportedServerFeatures():<Возможности, не поддерживаемые сервером (STRING)> Функция возвращает строку с кодами возможностей, не поддерживаемых текущим сервером базы данных. Некоторые серверы могут не поддерживать все возможности, предоставляемые программой, в этом случае, при выполнении запроса к серверу, будет создаваться исключение и запрос не будет выполнен.
IsAsyncExecutionMode Реализована Функция IsAsyncExecutionMode():<Текущий контекст асинхронный 1 или 0 (INT)> Функция возвращает 1, если исполнение производится внутри асинхронного визуального события, иначе будет возвращен 0.
IsRootThread Реализована Функция IsRootThread():<Результат 0 или 1 (INT)> Функция возвращает 1, если текущая программа исполняется в корневом потоке, иначе будет возвращен 0.
IsExecutingInSeparateThread Реализована Функция IsExecutingInSeparateThread():<Результат 0 или 1 (INT)> Функция возвращает 1, если текущая программа исполняется в потоке, созданном функцией ExecuteFunctionInSeparateThread.
IsExecutingInSeparateProcess Реализована Функция IsExecutingInSeparateProcess(<Идентификатор процесса (STRING)>):<Результат 0 или 1 (INT)> Функция возвращает 1, если текущая программа исполняется в процессе, созданном функцией InitializeSeparateProcess. Также может получить идентификатор процесса, заданный при его создании.
IsExecutingInExternalModule Реализована Функция IsExecutingInExternalModule(<Путь и имя файла внешнего объекта (STRING)>):<Результат 0 или 1 (INT)> Функция возвращает 1, если текущая программа исполняется в контексте внешнего объекта (*.sfo). Также функция может получить имя файла объекта, с помощью которого, можно получить сам объект (см. ExternalObject.Load), если это необходимо.
ThreadSerial Реализована Функция ThreadSerial():<Серийный номер (INT)> Функция получает уникальный для данной сессии серийный номер потока. Данный серийный номер может использоваться для получения временно-уникального имени семафора или папки для временного хранения данных.
ThreadCount Реализована Функция ThreadCount():<Количество программных потоков в текущей сессии (INT)> Функция возвращает количество программных потоков в текущей сессии. После запуска и инициализации клиента, эта функция будет возвращать 1.
GetThreadForm Реализована Функция
Да
GetThreadForm(<Серийный номер потока (INT)>):<Верхнее окно потока (INT)> Функция объект формы для верхнего окна потока, заданного его серийным номером, если поток с указанным серийным номером отсутствует, функция возвращает пустое значение.
GetInstalledPrinters Реализована Функция GetInstalledPrinters():<Список принтеров системы (LIST)> Функция получает список текущих принтеров системы. Значениями списка будут строки с наименованиями принтеров, имена списка будут представлены в виде <Имя сервера>@<Атрибуты>@<Имя принтера>. Подробнее см. описание функции.
GetDefaultPrinter Реализована Функция GetDefaultPrinter():<Имя принтера по умолчанию (STRING)> Функция получает наименование принтера, заданного в системе по умолчанию, либо пустую строку, если такого принтера не существует.

Внешний загружаемый объект

Внешние объекты представляют собой файлы с расширением sfo, созданные в Студии. Файл sfo является архивом, и содержит набор модулей, форм, таблиц или бинарных файлов, необходимых для выполнения какого-то действия (обработки, отчета и пр.), помещение которого в основном проект по каким-то причинам неудобно или нецелесообразно. Такой внешний объект можно загрузить из главного меню, но иногда необходимо получить программный доступ к файлам объекта, либо запустить модуль и форму объекта из основного проекта. При работе с внешними объектами, полезно знать:

  • Файл внешнего объекта находится в памяти системы, пока открыт, по крайней мере, один модуль или одна форма из него, либо существуют переменные, содержащие данный объект. Если объект находится памяти (даже если его открыл пользователь), функция ExternalObject.Load не будет вызывать его повторной загрузки с диска или сервера, а просто увеличит внутренний счетчик обращений к нему.
  • Путь к файлу задается стандартным образом (элементы пути отделяются помощью знаков \), однако, для элементов пути внутри файла используются уже знаки / (см. Имена файлов). К примеру c:\Обработки\Обрабока.sfo/Modules/FreeForms/Таблицы/Table.sft. Для загрузки других модулей и форм объекта из форм самого объекта системный путь к файлу sfo можно опустить (пример: /Modules/FreeForms/Таблицы/Table.sft), если модуль форма или таблица находятся в той же папке объекта, как и текущий модуль, из которого происходит запрос, достаточно указать знак /, без какого либо дополнительного пути. Стандартную часть /Modules/FreeForms можно пустить, но путь всегда должен начитаться на знак /.
  • См. также функцию IsExecutingInExternalModule, позволяющую определить среду исполнения для внешних объектов.
Идентификатор Статус Тип Визуальная Параметры Описание
FileName Реализована Атрибут ExternalObject.FileName:<Путь и имя файла внешнего объекта (STRING)> Атрибут позволяет получить путь и имя файла внешнего объекта. Объект должен быть загруженным.
Load Реализована Функция ExternalObject.Load(<Путь и имя файла внешнего объекта (STRING)>):<Загруженный внешний объект (EXTERNALOBJECT)> Функция загружает (или находит в системе) внешний объект и отдает его, как результат. Если в процессе загрузки произошла ошибка, функция вызывает исключение. Функция может быть вызвана для интерфейса ExternalObject.
DoesFileExist Реализована Функция ExternalObject.DoesFileExist(<Путь и имя файла внутри объекта (STRING)>):<Существует ли указанный файл (INT)> Функция проверяет наличие произвольного файла внутри загруженного внешнего объекта. При указании пути используется разделитель /, начальная часть пути Modules/FreeForms обязательна к указанию, если файл находится внутри этой ветки (к примеру: Modules/FreeForms/Таблицы/Table.sft).
LoadFileNames Реализована Функция ExternalObject.LoadFileNames(<Путь и маска для выборки файлов (STRING)>,<Включать вложенные папки (INT)>=0):<Список с файлами выборки (LIST)> Функция получает список файлов внутри загруженного внешнего объекта с указанным путем и маской.
FileToString Реализована Функция ExternalObject.FileToString(<Путь и имя файла файла внутри объекта (STRING)>,<Кодовая страница (INT)>=0):<Результат (STRING)> Функция загружает указанный файл внешнего объекта в строку, используя указанную кодовую страницу.
FileToBuffer Реализована Функция ExternalObject.FileToBuffer(<Путь и имя файла файла внутри объекта (STRING)>):<Результат (BUFFER)> Функция загружает указанный файл внешнего объекта в буфер.

Объект семафор

Семафор -- сложный объект, позволяющий реализовать совокупность методов, для синхронизацию в многозадачном режиме, выполнения частей кода в отдельных потоках и пр. Объект можно применять:

  • Как именованный системный объект, позволяющий синхронизировать доступ к файлам и другим внешним ресурсам в пределах одной машины. Пока семафор существует в операционной системе, другая программа, запущенная на той же машине, а также другой программный поток, программы, создавшей семафор, не смогут получить к нему доступ (создать). Такой способ синхронизации позволяет избежать, к примеру, записи в один и тот же временный файл двумя копиями программы. Вторая копия программы, которая не смогла создать семафор с именем файла, может пытаться это сделать с другим именем до тех пор, пока не получится создать семафор.
  • Как системное событие, использующееся для синхронизации между потоками в многозадачной среде. Событие имеет два состояния: установлено или сброшено, и позволяет организовать цикл ожидания состояния установлено. Такие циклы используются, чтобы исключить паузу между поступлением команды из другого рабочего потока и началом ее выполнения. Существует также возможность создания цикла ожидания для нескольких семафоров одновременно.
  • Как указатель на среду функции, создающийся в момент начала выполнения функции в отдельном потоке. Функции, выполняющиеся в отдельных потоках, являются подчиненными вызвавшему потоку, при завершении основного потока, система автоматически вызывает функцию TerminateThread для всех работающих в данных момент подчиненных потоков. Поток также завершается автоматически при завершении работы функции.
  • Как указатель на среду процесса, создающийся в момент начала выполнения функции в отдельном процессе. Функции, выполняющиеся в отдельных процессах, могут использоваться для изолирования кода исполнения, к примеру когда внешняя библиотека (или OLE объект) работают со сбоями и могут испортить системную память, тем самым вызывая завершение с ошибкой всего процесса клиента. После инициализации режима с помощью функции InitializeSeparateProcess, процесс будет находиться в режиме ожидания исполнения, клиент же может периодически вызывать функцию InterProcessExecuteFunction для исполнения программы в ожидающем процессе. После удаления объекта семафора из системы, подчиненный процесс также будет завершен. Исполнение всегда происходит в синхронном режиме (функция InterProcessExecuteFunction ожидает окончания исполнения удаленной функции и только после этого возвращает результат), асинхронный режим для большей гибкости при работате планируется в будущем.
Идентификатор Статус Тип Визуальная Параметры Описание
CreateMutex Реализована Функция Mutex.CreateMutex(<Имя семафора (STRING)>):<Ноль или новый объект семафора (INT,MUTEX)> Функция создает именованный семафор с указанным именем, либо возвращает ноль, если семафор с таким именем уже существует в системе. В момент, когда объект будет удален из системы, созданный семафор также удаляется.
CheckMutex Реализована Функция Mutex.CheckMutex(<Имя семафора (STRING)>):<Существует ли семафор (INT)> Функция проверяет, существует ли в системе именованный семафор с указанным именем.
CreateEvent Реализована Функция Mutex.CreateEvent(<Начальное состояние (INT)>=0):<Новый объект события (MUTEX)> Функция создает новое системное событие с возможным указанием его начального состояния. Событие может принимать два состояния: установлено и сброшено, и может использоваться при вызове функций WaitForEvent или WaitForEvents.
WaitForEvent Реализована Функция Mutex.WaitForEvent(<Время ожидания в мс. (INT)>=-1):<0, если время закончилось, 1, если произошло событие (INT)> Функция выполняет цикл ожидания для текущего события в течение указанного времени (по умолчанию, время не ограничено). Если событие произошло (было установлено функцией SignalEvent), функция возвращает 1 и автоматически сбрасывает состояние события.
WaitForEvents Реализована Функция Mutex.WaitForEvents(<Список событий (LIST)>,<Время ожидания в мс. (INT)>=-1):<0, если время закончилось, иначе индекс произошедшего события (INT)> Функция выполняет цикл ожидания для списка с событиями в течение указанного времени (по умолчанию, время не ограничено). Если одно из событий произошло (было установлено функцией SignalEvent), функция возвращает индекс этого события и автоматически сбрасывает его (и только его) состояние. Функция может быть вызвана для интерфейса Mutex.
SignalEvent Реализована Функция Mutex.SignalEvent() Функция меняет состояние текущего события на установлено.
ResetEvent Реализована Функция Mutex.ResetEvent() Функция меняет состояние текущего события на сброшено. Функция не рекомендуется к использованию (так как есть вероятность потерять одно событие), кроме как внутри конструкции блокировки объекта с помощью LockObject и проверке EventState до ее вызова.
EventState Реализована Функция Mutex.EventState():<0, если сброшено, 1, если установлено (INT)> Функция возвращает текущее состояние события, при этом состояние не изменяется.
ExecuteFunctionInSeparateThread Реализована Функция Mutex.ExecuteFunctionInSeparateThread(<Имя функции (STRING)>,<Глубина поиска или компилированная функция (INT, COMPILEDFUNCTION)>=0,<Аргумент 1>,<Аргумент 2>...):<Указатель на среду функции (MUTEX)> Функция создает новый поток для указанной функции, поток будет создан, как подчиненный текущему и будет автоматически завершен, если выполнение функции завершится (в т.ч. из-за исключения), либо если основной поток будет завершен. При завершении подчиненного потока, система не ждет полного окончания завершения, так как оно может занять продолжительное время, если функция выполняет внешний вызов OLE и пр., чтобы убедиться, что поток завершен, можно использовать функцию TerminateThread. Функция может быть вызвана для интерфейса Mutex.
TerminateThread Реализована Функция Mutex.TerminateThread(<Без ожидания (INT)>=0) Функция безусловно завершает выполнение подчиненного потока, с ожиданием окончания завершения, если необходимо. При завершении потока, будут выполнены все вложенные конструкции Finally, как будто поток был завершен по требованию пользователя.
IsThreadActive Реализована Функция Mutex.IsThreadActive():<Исполняется ли текущий поток (INT)> Функция проверяет, работает ли адресуемый текущим объектом подчиненный поток (1), либо он уже завершен (0).
InitializeSeparateProcess Реализована Функция Mutex.InitializeSeparateProcess(<Идентификатор процесса (STRING)>,<Скомпилированная функция или текст модуля (STRING, COMPILEDFUNCTION)>):<Указатель на среду процесса (MUTEX)> Функция создает новый процесс для указанного модуля (или текущего, если модуль не указан). Процесс может быть создан как для визуального, так и для консольного клиента. После инициализации, процесс ожидает выполнения функций, доступных для указанного модуля. Процесс завершается автоматически, когда объект семаформа будет удален. Функция может быть вызвана для интерфейса Mutex.
InterProcessExecuteFunction Реализована Функция Mutex.InterProcessExecuteFunction(<Имя функции (STRING)>,<Аргумент 1>,<Аргумент 2>...):<Результат исполнения функции> Функция вызывает исполнение указанной функции в подчиненном процессе, созданном ранее функцией InitializeSeparateProcess, и возвращает ошибку или результат ее исполнения. При вызове в функцию разрешено передавать объекты произвольного вида (однако, есть определенные особенности для которых см. описание), изменяемые аргументы-переменные также могут быть обновлены после исполнения.
InterProcessTimeout Реализована Функция Mutex.InterProcessTimeout(<Тайм-аут в мс.>):<Предыдущий тайм-аут в мс. (INT)> Функция включает сторожевого пса для контроля зависания подчиненного процесса. Процесс будет считаться неработоспособным, если за указанное время основной поток исполнения ни разу не ответил на запрос о состоянии (основной поток создает такие ответы после исполнения каждой команды, а также в моменты бездействия).
InterProcessServerTimeout Реализована Функция InterProcessServerTimeout(<Тайм-аут в мс.>):<Предыдущий тайм-аут в мс. (INT)> Функция позволяет получать или изменять тайм-аут сторожевого пса родительского процесса на стороне подчиненного процесса. Это позволяет, к примеру, для более длительных операций увеличить тайм-аут или временно отключить его.
TerminateProcess Реализована Функция Mutex.TerminateProcess(<Без ожидания (INT)>=0) Функция безусловно завершает выполнение подчиненного процесса, с ожиданием окончания завершения, если необходимо.
IsProcessActive Реализована Функция Mutex.IsProcessActive():<Активен ли подчиненный процесс (INT)> Функция проверяет, активен ли (не завершился ли) адресуемый текущим объектом подчиненный процесс.