Предопределенные события

From SunFlurry wiki
Jump to: navigation, search

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

Имя функции Статус Расположение Параметры Описание
OnPreInitialization Реализована Любой глобальный модуль OnPreInitialization():<Успешно (INT)> Функция запускается до инициализации пользовательского интерфейса. Если функция возвратит 0, система не будет запущена.
OnSystemStart Реализована Глобальные модули, по одной в модуле OnSystemStart():<Успешно (INT)> Функция запускается непосредственно после инициализации пользовательского интерфейса (вызывается также для консольных клиентов). Если функция возвратит 0, работа системы будет завершена. Таких функций может быть несколько, по одной для каждого глобального модуля. Выполнение будет происходить по очередности инициализации глобальных модулей (см. иерархия текстов программ).
OnConsoleWork Реализована Любой глобальный модуль OnConsoleWork() Функция запускается только для консольного клиента после инициализации и окончания выполнения всех версий OnSystemStart. После окончания выполнения этой функции, работа консольного клиента будет завершена, поэтому нежелательно завершать выполнение этой функции (вместо этого можно вызвать, к примеру, RestartProgram).
OnSystemExit Реализована Глобальные модули, по одной в модуле OnSystemExit():<Успешно (INT)> Функция запускается непосредственно перед завершением работы системы (как визуальных, так и консольных клиентов). Если функция возвратит 0, работа системы не будет завершена. Таких функций может быть несколько, по одной для каждого глобального модуля (чтобы отменить запрос завершения работы системы, достаточно получения нуля от любой из функций). Выполнение будет происходить по очередности инициализации глобальных модулей (см. иерархия текстов программ).
OnPostExit Реализована Любой глобальный модуль OnPostExit() Функция запускается после выполнения всех экземпляров функции OnSystemExit и закрытия пользовательского интерфейса (для визуальных клиентов). Результат функции не будет использован.
<Событие нового соединения TCP> Реализована Любой глобальный модуль <Событие нового соединения TCP>(<TCP Объект (IP Connection)>) Прерывающее событие, возникающее при соединении внешней программы по протоколу TCP к заранее инициализированному TCP серверу (см. Listen). Функция-обработчик далее может производить обмен информацией с помощью функций TCP, используя TCP Объект. Событие не может прервать транзакцию в корневом потоке (оно будет ожидать ее окончания). Для более полной информации, см. статью описания функции.
OnUsr1Connection Реализована Любой глобальный модуль OnUsr1Connection(<TCP Объект (IP Connection)>,<Команда клиента (STRING)>,<Список принятых файлов (LIST)>) Прерывающее событие, возникающее при соединении внешней программы по стандартному USR1 протоколу к заранее инициализированному серверу USR1 соединений. Функция-обработчик далее может производить обмен информацией с помощью функций TCP, используя TCP Объект. Событие не может прервать транзакцию в корневом потоке (оно будет ожидать ее окончания). Для более полной информации, см. статью описания функции.
OnSaveDBVar Реализована Любой глобальный модуль OnSaveDBVar(<Имя переменной БД (STRING)>,<Новое значение>,<Начало периода записи (DATE)>,<Окончание периода записи (DATE)>):<Запретить запись (INT)> Событие, вызываемое в момент сохранения изменений в редакторе глобальных переменных БД. Запись будет запрещена, если функция возвратит единицу.
OnReopen Планируется Любой глобальный модуль, текущий локальный модуль OnReopen(<Параметр>,<Опция>) Событие, вызываемое для формы, если произошла попытка ее повторного открытия. Подобное событие можно также описать в событиях, привязанных к форме, а не модулю, в последнем случае, вызываются сначала события, описанные в модуле, затем события, описанные в контейнере событий формы.
OnOpen Реализована Текущий локальный модуль OnOpen(<Имя загружаемой формы (STRING,OUT)>):<Продолжить загрузку формы (INT)> Событие, возникающее в модуле после его загрузки в память, до инициализации формы (если таковая присутствует). Подобное событие можно также описать в событиях, привязанных к форме, а не модулю, однако, последнее будет вызвано уже после начальной инициализации формы. Если функция возвратит 0 (или внутри функции произойдет исключение), форма не будет загружена и работа модуля будет завершена. Для создания модулей без форм, обработчик модуля размещается внутри этого события. Может использоваться, к примеру, для печати форм документов или для консольных клиентов при автоматической выгрузке, тогда как в визуальном клиенте будет показана форма с набором установок. Существует возможность изменить имя загружаемой формы непосредственно внутри этой функции.
OnPostOpen Реализована Текущий локальный модуль OnPostOpen():<Продолжить загрузку формы (INT)> Событие, возникающее в модуле после его загрузки в память, непосредственно за инициализацией формы (если таковая присутствует). Вызывается также для консольных клиентов. Если функция возвратит 0 (или внутри функции произойдет исключение), форма не будет загружена и работа модуля будет завершена.
OnBeforeMainMenuClick Планируется Любой глобальный модуль OnBeforeMainMenuClick(<Идентификатор меню (STRING)>,<Идентификатор пункта меню (STRING)>):<Разрешить вызвать обработчик пункта меню (INT)> Событие, происходящее до выбора пункта главного меню пользователем. Если функция возвратит 0, действие, ассоциированное с данным пунктом меню, выполнено не будет.
OnMainMenuClick Планируется Любой глобальный модуль OnMainMenuClick(<Идентификатор меню (STRING)>,<Идентификатор пункта меню (STRING)>) Событие, происходящее после выбора пункта главного меню пользователем и исполнения действия, ассоциированного с этим пунктом меню.
OnTaskbarMenuClick Реализована Любой глобальный модуль, текущий локальный модуль OnTaskbarMenuClick(<Индекс пункта меню (STRING)>,<Значение, ассоциированное с пунктом меню (STRING)>,<Текстовое представление пункта меню (STRING)>):<Вызвать стандартный обработчик пункта меню (INT)> Событие, возникающее после того, как пользователь выберет пункт из встроенного меню на кнопке панели задач. Меню может быть задано программно, если меню не задано, кнопка меню не будет показана. Для задания меню см. атрибут TaskbarMenu.
OnSave Реализована Любой глобальный модуль OnSave(<Элемент>,<Разрешить действие (INT,OUT)>=1):<Текст возникшей ошибки (STRING)> Событие, вызываемое при попытке записи открытого для визуального редактирования элемента справочника или документа. Параметр Разрешить действие может запретить запись, однако сообщения об ошибке выведено не будет. Если же процедура вернет не пустую строку, запись также произведена не будет, а будет создано исключение с описанием, являющимся результатом исполнения функции.
OnMark Реализована Любой глобальный модуль OnMark(<Элемент>,<Пометка (INT)>,<Разрешить действие (INT,OUT)>=1,<Номер элемента при выделении диапазона (INT)>):<Текст возникшей ошибки (STRING)> Событие, вызываемое при попытке удалить (или отменить удаление) открытый для визуального редактирования элемент справочника или документ, либо при попытке удалить (или отменить удаление) элемент справочника или документ в журнале документов или таблице элементов справочника. Параметр пометка равен 0, если производится отмена удаления и 1, если производится удаление. Параметр Разрешить действие может запретить удаление, однако сообщения об ошибке выведено не будет. Если же процедура вернет не пустую строку, действие также произведено не будет, а будет создано исключение с описанием, являющимся результатом исполнения функции.
OnPhysicallyDelete Планируется Любой глобальный модуль OnPhysicallyDelete(<Элемент>,<Разрешить действие (INT,OUT)>=1):<Текст возникшей ошибки (STRING)> Событие, вызываемое при попытке физического удаления из БД элемента справочника или документа. Событие вызывается для любых объектов (не только открытых для визуального редактирования). Параметр Разрешить действие может запретить удаление, однако сообщения об ошибке выведено не будет. Если же процедура вернет не пустую строку, действие также произведено не будет, а будет создано исключение с описанием, являющимся результатом исполнения функции.
OnPublish Планируется Любой глобальный модуль OnPublish(<Элемент>,<Разрешить действие (INT,OUT)>=1):<Текст возникшей ошибки (STRING)> Событие, вызываемое при попытке обработать открытый для визуального редактирования документ. Параметр Разрешить действие может запретить обработку, однако сообщения об ошибке выведено не будет. Если же процедура вернет не пустую строку, действие также произведено не будет, а будет создано исключение с описанием, являющимся результатом исполнения функции.
OnUnPublish Планируется Любой глобальный модуль OnUnPublish(<Элемент>,<Разрешить действие (INT,OUT)>=1):<Текст возникшей ошибки (STRING)> Событие, вызываемое при попытке отмены обработки открытого для визуального редактирования документа. Параметр Разрешить действие может запретить отмену обработки, однако сообщения об ошибке выведено не будет. Если же процедура вернет не пустую строку, действие также произведено не будет, а будет создано исключение с описанием, являющимся результатом исполнения функции.
OnAttachedButtons Реализована Любой глобальный модуль, текущий локальный модуль OnAttachedButtons(<Индекс связанного элемента (INT)>,<Метод вызова (INT)>,<Вызываемый элемент формы (FORM)>):<Событие обработано (INT)> Событие, вызываемое при любом нажатии на связанные элементы объектов формы. Для функции размещаемой в глобальном модуле, можно получить саму форму, использовав параметр Вызываемый элемент формы со свойством .Form. Если функция возвратит 0 в локальном модуле, будет произведен вызов такой же процедуры в глобальном модуле, затем обработчик события на элементе формы и, если событие по-прежнему не обработано, будет произведено действие, ассоциированное по умолчанию с текущим связанным элементом.
OnOpenPeriodicalsEditor Реализована Любой глобальный модуль, текущий локальный модуль OnOpenPeriodicalsEditor(<Путь БД реквизита (STRING)>,<Вызывавший элемент формы (FORM)>,<Дата до которой значения доступны только для чтения (DATE,OUT)>=0,<Дата до которой значения не будут показаны (DATE,OUT)>=0):<Режим открытия диалога (INT)> Событие, вызываемое до открытия системного (стандартного) редактора периодических значений реквизита. Внутри функции имеется возможность указать дату, до которой периодические значения не будут показаны, или дату до которой значения не будут доступны для редактирования. Параметр Путь БД реквизита принимает стандартную форму пути объектов (пример REF.Nomenclature.Price). Функция может возвратить одно из трех значений: 0 -- запрет открытия формы, 1 -- разрешение открытия в режиме редактирования, 2 -- разрешение открытия только в режиме просмотра.
OnBeforeEdit Реализована Любой глобальный модуль, текущий локальный модуль OnBeforeEdit(<Вызывающая таблица (TABLE)>,<Режим редактирования (INT,OUT)>,<Тип объекта (INT)>,<Индекс объекта (INT)>,<Строка (INT)>,<Столбец (INT)>,<Связанные элементы (STRING,OUT)>,<Значение для редактирования (OUT)>,<Маска для редактирования (STRING,OUT)>) Функция вызывается для свободных или встроенных электронных таблиц (TABLE) до начала редактирования ячейки или объекта таблицы. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Для более подробного описания функции см. соответствующую ей статью.
OnAfterEdit Реализована Любой глобальный модуль, текущий локальный модуль OnAfterEdit(<Вызывающая таблица (TABLE)>,<Режим редактирования (INT)>,<Тип объекта (INT)>,<Индекс объекта (INT)>,<Строка (INT)>,<Столбец (INT)>,<Были изменения (INT)>) Функция вызывается для свободных или встроенных электронных таблиц (TABLE) после окончания редактирования ячейки или объекта таблицы. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Для более подробного описания функции см. соответствующую ей статью.
OnBeforeEditObject Реализована Любой глобальный модуль, текущий локальный модуль OnBeforeEditObject(<Вызывающая таблица (TABLE)>,<Объект редактирования (OUT)>,<Метод редактирования (OUT,INT)>,<Наименование модуля (OUT,STRING)>,<Наименование формы (OUT,STRING)>,<Параметр вызова (OUT)>,<Опция вызова (OUT)>):<Разрешить редактирование (INT)> Функция вызывается для свободных или встроенных электронных таблиц (TABLE) до открытия формы редактирования (или просмотра) объекта. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Для более подробного описания функции см. соответствующую ей статью.
OnBeforeSelect Реализована Любой глобальный модуль, текущий локальный модуль OnBeforeSelect(<Вызывающая таблица (TABLE)>,<Метод выбора (INT,OUT)>,<Наименование журнала (STRING,OUT)>,<Наименование модуля (STRING,OUT)>,<Наименование формы (STRING,OUT)>,<Параметр вызова (OUT)>,<Опция вызова (OUT)>,<Фильтры таблицы выбора (LIST,OUT)>,<Порядок сортировки (STRING,OUT)>,<Столбцы таблицы выбора (STRING,OUT)>,<Список подстановки в таблицу вызова (LIST,OUT)>):<Запретить выбор (INT)> Функция вызывается для свободных или встроенных электронных таблиц (TABLE) в момент выбора элемента справочника или документа в объект или ячейку таблицы. Позволяет изменить свойства диалога выбора. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Для более подробного описания функции см. соответствующую ей статью.
OnSelectionChange Реализована Любой глобальный модуль, текущий локальный модуль OnSelectionChange(<Вызывающая таблица (TABLE)>,<Тип выделения (INT)>) Функция вызывается для свободных или встроенных электронных таблиц (TABLE) при изменении выделенной области таблицы. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Для более подробного описания функции см. соответствующую ей статью.
OnDoubleClick Реализована Любой глобальный модуль, текущий локальный модуль OnDoubleClick(<Вызывающая таблица (TABLE)>):<Продолжить цепочку выполнения (INT)> Функция вызывается для свободных или встроенных электронных таблиц (TABLE) при двойном клике левой клавишей мыши по элементу либо при нажатии Enter в таблице значений. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция.
OnRightClick Реализована Любой глобальный модуль, текущий локальный модуль OnRightClick(<Вызывающая таблица (TABLE)>):<Разрешить вывод стандартного меню правой клавиши мыши (INT)> Функция вызывается для свободных или встроенных электронных таблиц (TABLE) при клике правой клавишей мыши по ячейке или объекту таблицы. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция.
OnEnter Реализована Любой глобальный модуль, текущий локальный модуль OnEnter(<Вызывающая таблица (TABLE)>) Функция вызывается для свободных или встроенных электронных таблиц (TABLE) в момент получения фокуса таблицей. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция.
OnExit Реализована Любой глобальный модуль, текущий локальный модуль OnExit(<Вызывающая таблица (TABLE)>) Функция вызывается для свободных или встроенных электронных таблиц (TABLE) в момент потери фокуса таблицей. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция.
OnDataChange Реализована Любой глобальный модуль, текущий локальный модуль OnDataChange(<Вызывающая таблица (TABLE)>) Функция вызывается для свободных или встроенных электронных таблиц (TABLE) при изменении любых данных в таблице. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция.
OnFinishCopyObject Реализована Любой глобальный модуль, текущий локальный модуль OnFinishCopyObject(<Имя копируемого объекта (STRING)>,<Индекс копируемого объекта (INT)>,<Вызывающая таблица (TABLE)>) Функция вызывается для свободных электронных таблиц (TABLE) в момент добавления в таблицу любого объекта из таблицы-источника с помощью функций CopyByX, CopyByY. Функция позволяет модифицировать свойства объекта, загрузить или создать картинку или OLE-объект и пр. Для более подробного описания функции см. соответствующую ей статью.
OnBeforePrint Реализована Любой глобальный модуль, текущий локальный модуль OnBeforePrint(<Вызывающая таблица (TABLE)>):<Разрешить печать (INT)> Функция вызывается для свободных или встроенных электронных таблиц (TABLE) в момент, когда пользователь вызывает вывод на печать содержимого таблицы (в сопровождении стандартного диалога вывода на печать или без оного). Функция позволяет, к примеру, перехватить печать и осуществить ее каким-либо другим методом (к примеру, переслать таблицу по интернету и распечатать на удаленной стороне). Для более подробного описания функции см. соответствующую ей статью.
OnStartPrinting Реализована Любой глобальный модуль, текущий локальный модуль OnStartPrinting(<Вызывающая таблица (TABLE)>):<Разрешить печать (INT)> Функция вызывается для свободных или встроенных электронных таблиц (TABLE) непосредственно перед началом печати содержимого таблицы (все свойства печати выбраны, никаких диалогов больше не будет выводиться). Функция позволяет, к примеру, заполнить количество страниц, выводимых на печать в самой печатной форме (в колонтитулах есть соответствующая возможность) или сохранить параметры печати для текущей формы и т.п.. Для более подробного описания функции см. соответствующую ей статью.