Скрипты, обработка событий системы

Бизнес-логика системы описывается в виде программ или классов на C#, которые запускаются при возникновении тех или иных событий – сохранении документа, записи справочника и так далее и исполняются на сервере приложений.

Сам класс на C#, его ресурсы для локализации, генерируемая системой часть и т.п. называется скриптом. В систему встроен редактор скриптов с поддержкой технологии IntelliSense (информацию о подробностях ее использования можно найти на сайте MSDN link eng/rus).

Дополнительные параметры скрипта – системное название, локализуемое название для пользователя (которое можно переводить на другие языки), привязка к бизнес-объекту и прочие свойства – называются его основной частью.

Таким образом, вся бизнес-логика описывается парами – скрипт и его основная часть.

Прикладной разработчик может реализовывать следующие типы скриптов:

пользовательские отчеты;

команды над записью справочника;

команды над списком записей справочника;

команды над документом;

команды над списком документов;

обработчики событий записи справочника;

обработчики событий документа;

транзакционные скрипты;

валидаторы транзакций;

интерфейсы;

печатные формы;

сервисы;

задачи;

провайдеры колонок отчета;

пользовательские команды;

драйверы итогов;

обработчики событий итога;

общий обработчик событий записи справочника;

общий обработчик событий документа;

web сервисы и их DTO (Data Transfer Object);

мобильные сервисы;

мобильные интерфейсы.

Все скрипты можно условно разделить на две группы – выполняемые в защищенном и незащищенном режимах. К скриптам, выполняемым в защищенном режиме, относятся:

сервисы;

мобильные сервисы;

web сервисы;

провайдеры колонок отчета.

Основное отличие этих двух групп – способ проверки прав:

в незащищенном режиме скрипты выполняются с отключенными проверками прав пользователя. То есть, если пользователь не обладает правами на удаление документа, он все равно может удалить его, запустив какой-либо скрипт, выполняемый в незащищенном режиме, который удалит документ. Естественно, пользователь должен иметь права на выполнение (запуск) такого скрипта;

в защищенном режиме скрипты всегда выполняются с правами запустившего их пользователя.

При вызове из скрипта, выполняемого в незащищенном режиме, скрипта, выполняемого в защищенном (например, сервиса), проверка прав так же производиться не будет.

35_settings

Существуют проверки, которые выполняются даже в незащищенном режиме (например, при перепроведении документов, находящихся в периоде сверки, проверяется наличие разрешения на эту операцию у текущего пользователя). Единственный способ выполнить такую операцию — выдать пользователю соответствующее разрешение.

Скрипты, которые пользователь может запустить из клиентского приложения непосредственным выбором, называются интерактивными. Это скрипты следующих типов:

команды над записью справочника;

команды над списком записей справочника;

команды над документом;

команды над списком документов;

пользовательские команды;

печатные формы.

Скрипты интерактивной группы имеют механизм отображения форм параметров и клиентских действий:

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

механизм клиентских действий позволяет передать управляющие команды с сервера приложений в клиентское приложение для выполнения тех или иных действий (например, скрипт сгенерировал какой-то файл, который надо предложить сохранить пользователю локально).

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