Функции общего назначения
Функции общего назначения представляют собой обширную коллекцию совершенно разных по действию и применению функций. Условное деление, представленное здесь, помогает быстрее найти необходимую функцию.
Contents
Общие системные функции
Функции, которые нельзя отнести к другим разделам, представлены в этом общем разделе. Сюда входят функции загрузки модулей, магические функции булевой логики, функции для определения типа объекта, функции работы с именами файлов и прочие.
Идентификатор | Статус | Тип | Визуальная | Параметры | Описание |
---|---|---|---|---|---|
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 , так как в ином случае существует опасность получить состояние клиента, когда он не отвечает на попытки закрытия корректным образом.
| |
FlushMessages | Реализована | Функция | Да
|
FlushMessages() | Функция выполняет все ожидающие в очереди визуальные сообщения. Функцию можно использовать, к примеру, если необходимо убедиться, что нужные изменения на экране выполнены (закрыто окно, полностью обновлена таблица на форме и пр.). |
_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",<Объект открытой формы (FORM)>):<Результат, возвращенный при инициализации формы> | Функция позволяет загружать произвольную форму в режиме инструментария. Формы в таком режиме не имеют модулей и работают в контексте текущего модуля, либо в контексте корневого модуля, в зависимости от параметров загрузки. Функция может возвратить серийный номер открытой формы, чтобы программа могла осуществлять переговоры с ней с помощью отсылки сообщений. |
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. | |
DefaultHighlightMode | Реализована | Функция | Да
|
DefaultHighlightMode(<Режим подсветки таблиц по умолчанию (INT)>,<Цвет нечетных строк (INT)>,<Процент цвета нечетных строк (INT)>,<Цвет выделения строки или столбца курсора (INT)>,<Процент цвета выделения строки или столбца курсора (INT)>) | Функция изменяет глобальный режим подсветки строк всех таблиц. Для изменения подсветки конкретной таблицы см. функцию Tab.HighlightMode. |
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 использование особых типов сравнения для текстовых данных, делает невозможным использование сторонних утилит, альтернативой перестроения индексов может служить выгрузка дампа базы данных и создание с помощью него новой базы данных. | |
SysExecServer | Реализована | Функция | SysExecServer(<Командная строка исполнения (STRING)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)> | Функция производит запуск приложения с параметрами в командной строке на стороне сервера, разбор командной строки не производится. Пользователь должен обладать административными правами для использования этой функции. Также нужно понимать, что запуск с флагом ожидания завершения (второй аргумент) приведет к "зависшей" сессии на сервере, если приложение не будет завершено. Этой функцией следует пользоваться в исключительных обстоятельствах и только когда поведение запускаемого приложения хорошо известно заранее. |
Функции отладки
Функции, собранные здесь, используются для изменения параметров и работы со встроенным отладчиком. Отладчик доступен как для визуальных, так и для консольных клиентов.
Идентификатор | Статус | Тип | Визуальная | Параметры | Описание |
---|---|---|---|---|---|
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 .
| |
dbgWriteLog | Реализована | Функция | dbgWriteLog(<Строка лога (STRING)>) | Отладочная функция сохраняет информацию в текстовом логе клиента. | |
dbgToFileTime | Реализована | Функция | dbgToFileTime(<Дата (DATE)>):<Дата в формате FILETIME (INT)> | Отладочная функция превращает дату в 64-битное число в формате FILETIME (формат, в котором система хранит даты). | |
dbgFromFileTime | Реализована | Функция | dbgFromFileTime(<Дата в формате FILETIME (INT)>):<Дата (DATE)> | Отладочная функция превращает 64-битное число в формате FILETIME (формат, в котором система хранит даты) в дату. |
Объект сторожевого пса
Основная характеристика консольных клиентов, работающих в режиме сервера, это их постоянная доступность. Если консольное приложение вызывает внешние функции, есть вероятность зависания, если в этих внешних функциях содержатся ошибки (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)> | Функция производит запуск приложения с параметрами в командной строке, приложение может находиться только на локальном компьютере, разбор командной строки не производится. | |
SysExecServer | Реализована | Функция | SysExecServer(<Командная строка исполнения (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)> | Функция возвращает короткое наименование сервера базы данных. Если клиент не зарегистрирован на сервере базы данных (локальный клиент), функция возвратит пустую строку. | |
ServerDescription | Реализована | Функция | ServerDescription():<Внутреннее описание сервера БД (STRING)> | Функция возвращает описание сервера базы данных. Если клиент не зарегистрирован на сервере базы данных (локальный клиент), функция возвратит пустую строку. | |
DBMSVersion | Реализована | Функция | DBMSVersion():<Версия ПО СУБД сервера базы данных (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)> | Функция проверяет, активен ли (не завершился ли) адресуемый текущим объектом подчиненный процесс. |