<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://docs.altec.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin%3A%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9</id>
	<title>Руководство по настройке altAwin:Обработчики событий - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://docs.altec.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin%3A%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9"/>
	<link rel="alternate" type="text/html" href="http://docs.altec.ru/index.php?title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin:%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9&amp;action=history"/>
	<updated>2026-04-25T22:38:40Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://docs.altec.ru/index.php?title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin:%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9&amp;diff=1690&amp;oldid=prev</id>
		<title>imported&gt;Kirillche: save from wiki docs editor</title>
		<link rel="alternate" type="text/html" href="http://docs.altec.ru/index.php?title=%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5_altAwin:%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9&amp;diff=1690&amp;oldid=prev"/>
		<updated>2022-11-29T14:31:02Z</updated>

		<summary type="html">&lt;p&gt;save from wiki docs editor&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;== Справочник «Обработчики событий» ==&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
В подразделе {{ClsMnu|Обработчики событий}} пользователю предоставляется возможность настройки выполнения определённых действий в ответ на ситуации, возникающие при работе с программой. Действия реализуются посредством пользовательских скриптов, вызываемых в ответ на то или иное зарегистрированное событие в системе altAwin. Активный обработчик автоматически вызывается при наступлении определенного события (например, при открытии документа). Список зарегистрированных событий берётся из программы; в altAwin предусмотрено несколько типов событий, как общих, так специфичных для отдельных документов, на каждое их которых может быть назначен собственный обработчик.&lt;br /&gt;
&lt;br /&gt;
В левой части представлениия {{ClsMnu|Обработчики событий}} располагается дерево, группирующее существующие обработчики событий по их типам. При создании нового обработчика выбирается узел дерева, соответствующий отслеживаемому событию. Существует возможность установки обработчиков как на глобальные события, так и на события, связанные с работой с отдельными документами. Далее приводится перечень событий, обработку которых можно вести в программе.&lt;br /&gt;
&lt;br /&gt;
* Глобальные события:&lt;br /&gt;
** ''Любое событие''&lt;br /&gt;
** ''Старт приложения''&lt;br /&gt;
** ''Завершение приложения''&lt;br /&gt;
** ''Нажатие комбинации клавиш''&lt;br /&gt;
** ''Импорт заказов''&lt;br /&gt;
** ''Изменение состояния заказа''&lt;br /&gt;
** ''Сообщение из Oktell о начале коммутации''&lt;br /&gt;
** ''Сообщение из Oktell о завершении коммутации''&lt;br /&gt;
** ''Входящий звонок Asterisk''&lt;br /&gt;
** ''Исходящий звонок Asterisk''&lt;br /&gt;
** ''Ответ на входящий звонок Asterisk''&lt;br /&gt;
** ''Ответ на исходящий звонок Asterisk''&lt;br /&gt;
* Общие события для документов. &lt;br /&gt;
** ''Открытие''&lt;br /&gt;
** ''Перед сохранением'' &lt;br /&gt;
** ''Перед удалением''&lt;br /&gt;
** ''После сохранения''&lt;br /&gt;
** ''Создание''&lt;br /&gt;
* Для документов нового типа предлагаются более широкие возможности для регистрации обработчиков событий. В частности, помимо вышеперечисленных обрабатываться также могут следующие события:&lt;br /&gt;
** ''Перед виртуальным удалением''&lt;br /&gt;
** ''Перед восстановлением''&lt;br /&gt;
** ''Перед добавлением''&lt;br /&gt;
** ''Перед закрытием формы без сохранения''&lt;br /&gt;
** ''Перед показом формы''&lt;br /&gt;
** ''Перед сохранением''&lt;br /&gt;
** ''Перед обновлением''&lt;br /&gt;
** ''Перед удалением''&lt;br /&gt;
** ''После блокировки''&lt;br /&gt;
** ''После виртуального удаления''&lt;br /&gt;
** ''После восстановления''&lt;br /&gt;
** ''После добавления''&lt;br /&gt;
** ''После обновления''&lt;br /&gt;
** ''После подтверждения''&lt;br /&gt;
** ''После создания''&lt;br /&gt;
** ''После сохранения''&lt;br /&gt;
** ''После удаления''&lt;br /&gt;
* также для документов могут быть доступны частные события, непосредственно связанные с сущностью документа. Например, может быть назначен обработчик на такие события, как создание проводки прихода изделий или оптимизация заказа ламинации. Полный список событий, на которые возможно назначение обработчиков, доступен в дереве.&lt;br /&gt;
&lt;br /&gt;
Следует обратить внимание, что на события, связанные документами, может назначаться как универсальный обработчик, отслеживающий события для всех типов документов, так и с указанием конкретного вида документа из числа определённых в программе.&lt;br /&gt;
&lt;br /&gt;
На одно событие может быть назначено несколько обработчиков. Порядок вызова обработчиков, связанных с одним событием, определяется специфичностью события и взаимным расположением обработчиков одного вида в таблице записей обработчиков. Так, все универсальные обработчики (то есть назначаемые на любое событие или на какие-либо события, связанные с документами) вызываются после специализированных. Обработчики, назначенные на одно и то же событие (отображаемые в отдельных ветвях дерева событий), вызываются в порядке следования записей в представлении. Очерёдность строк может быть изменена кнопками {{ClsMnu|Вверх}} и {{ClsMnu|Вниз}}, расположенными на панели инструментов представления.&lt;br /&gt;
&lt;br /&gt;
Из соображений совместимости &amp;quot;старые&amp;quot; обработчики вызываются до &amp;quot;новых&amp;quot;. Таким образом, события будут обрабатываться в следующем порядке:&lt;br /&gt;
* Перед сохранением -&amp;gt; Перед добавлением, Перед обновлением;&lt;br /&gt;
* Перед удалением -&amp;gt; Перед виртуальным удалением;&lt;br /&gt;
* После сохранения -&amp;gt; После подтверждения;&lt;br /&gt;
* Создание -&amp;gt; После создания.&lt;br /&gt;
&lt;br /&gt;
{{Info|Узел дерева {{ClsMnu|Все}} позволяет просматривать все определённые обработчики.}}&lt;br /&gt;
&lt;br /&gt;
{{Info|В дилерских версиях и удалённом офисе порядок следования можно изменять только у тех обработчиков, которые были созданы на месте. При импорте обработчиков событий из основного офиса, они, имея высший приоритет, всегда располагаются раньше созданных на месте и не доступны для перемещения.}}&lt;br /&gt;
&lt;br /&gt;
При создании нового обработчика в окне {{ClsMnu|Обработчик события}}&amp;lt;span class=&amp;quot;Index&amp;quot;&amp;gt;Обработчики событий&amp;lt;/span&amp;gt; требуется указать {{ClsMnu|Имя обработчика}}, а также собственно код скрипта, который будет выполняться при наступлении ожидаемого события. Флаговый переключатель {{ClsMnu|Активен}} определяет, будет ли отрабатывать данный обработчик. Флаговый переключатель {{ClsMnu|Экспорт дилеру}} управляет поведением при экспорте настроек приложения для дилера. Когда флаг активен, обработчик будет передаваться в файл обмена настройками при экспорте дилеру. В скрипте доступны переменные события.&lt;br /&gt;
&lt;br /&gt;
{{Picture|eventhandler01.png|title=Обработчик событий|num=4.173|id=1259}}&lt;br /&gt;
&lt;br /&gt;
В обработчик события &amp;quot;Любое событие&amp;quot; передаются переменные:&lt;br /&gt;
* {{ClsMnu|EventName: string}} — имя события&lt;br /&gt;
* {{ClsMnu|Args: Variant}} — массив аргументов&lt;br /&gt;
&lt;br /&gt;
В обработчики частных событий передаются переменные в зависимости от типа события. Их перечень и описание можно посмотреть в дереве редактора скрипта документа обработчика, ветка &amp;quot;Переменные&amp;quot; -&amp;gt; &amp;quot;Обработчик события&amp;quot;.&lt;br /&gt;
В общем случае для событий, связанных с документами, в обработчике события будет доступен текущий экземпляр документа в переменной Instance — для документов нового типа и в переменной Document — для документов старого типа.&lt;br /&gt;
&lt;br /&gt;
{{Info|1= Обратите внимание, что в обработчиках &amp;quot;После добавления&amp;quot;, &amp;quot;После обновления&amp;quot;, &amp;quot;После удаления&amp;quot;, &amp;quot;После виртуального удаления&amp;quot;, &amp;quot;После восстановления&amp;quot; и &amp;quot;После подтверждения&amp;quot; документ находится в режиме &amp;quot;только для чтения&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
==== Пример работы обработчика событий ====&lt;br /&gt;
Скрипт проверки курса валюты заказа вызывается в ответ на событие ''перед сохранением документа''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
if Document.Rate &amp;lt;&amp;gt; Document.Currency.Rate then&lt;br /&gt;
begin&lt;br /&gt;
  choice := DlgBox('Предупреждение', 'Курс заказа не равен текущему курсу валюты', ['Пропустить', 'Восстановить курс', 'Отмена']); &lt;br /&gt;
  case Choice of&lt;br /&gt;
    1: begin // Пропускаем&lt;br /&gt;
       end;&lt;br /&gt;
    2: Document.Rate := Document.Currency.Rate; // Корректируем курс&lt;br /&gt;
    3: RaiseException('Сохранение отменено');   // Отменяем сохранение с помощью исключения&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Экспорт и импорт обработчиков событий ====&lt;br /&gt;
Для экспорта заведённых обработчиков событий во внешний файл выберите требуемые записи в таблице и воспользуйтесь кнопкой панели инструментов представления [[Файл:eventshndlrexp.png]]. Для импорта обработчиков событий из файла в программу воспользуйтесь кнопкой [[Файл:eventshndlrimp.png]] панели инструментов представления; в открывшемся диалоговом окне выберите ранее созданный файл импорта с расширением {{ClsMnu|.aeh}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Навигация|Скрипты|Раздел «Расширения»|Пользовательские действия}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Kirillche</name></author>
	</entry>
</feed>