Бизнес-логика системы описывается в виде программ или классов на C#, которые запускаются при возникновении тех или иных событий – сохранении документа, записи справочника и так далее и исполняются на сервере приложений.
Сам класс на C#, его ресурсы для локализации, генерируемая системой часть и т.п. называется скриптом. В систему встроен редактор скриптов с поддержкой технологии IntelliSense (информацию о подробностях ее использования можно найти на сайте MSDN eng/rus).
Дополнительные параметры скрипта – системное название, локализуемое название для пользователя (которое можно переводить на другие языки), привязка к бизнес-объекту и прочие свойства – называются его основной частью.
Таким образом, вся бизнес-логика описывается парами – скрипт и его основная часть.
Прикладной разработчик может реализовывать следующие типы скриптов:
•пользовательские отчеты;
•команды над записью справочника;
•команды над списком записей справочника;
•команды над документом;
•команды над списком документов;
•обработчики событий записи справочника;
•обработчики событий документа;
•транзакционные скрипты;
•валидаторы транзакций;
•интерфейсы;
•печатные формы;
•сервисы;
•задачи;
•провайдеры колонок отчета;
•пользовательские команды;
•драйверы итогов;
•обработчики событий итога;
•общий обработчик событий записи справочника;
•общий обработчик событий документа;
•web сервисы и их DTO (Data Transfer Object);
•мобильные сервисы;
•мобильные интерфейсы.
Все скрипты можно условно разделить на две группы – выполняемые в защищенном и незащищенном режимах. К скриптам, выполняемым в защищенном режиме, относятся:
•сервисы;
•мобильные сервисы;
•web сервисы;
•провайдеры колонок отчета.
Основное отличие этих двух групп – способ проверки прав:
•в незащищенном режиме скрипты выполняются с отключенными проверками прав пользователя. То есть, если пользователь не обладает правами на удаление документа, он все равно может удалить его, запустив какой-либо скрипт, выполняемый в незащищенном режиме, который удалит документ. Естественно, пользователь должен иметь права на выполнение (запуск) такого скрипта;
•в защищенном режиме скрипты всегда выполняются с правами запустившего их пользователя.
При вызове из скрипта, выполняемого в незащищенном режиме, скрипта, выполняемого в защищенном (например, сервиса), проверка прав так же производиться не будет.
Существуют проверки, которые выполняются даже в незащищенном режиме (например, при перепроведении документов, находящихся в периоде сверки, проверяется наличие разрешения на эту операцию у текущего пользователя). Единственный способ выполнить такую операцию — выдать пользователю соответствующее разрешение. |
Скрипты, которые пользователь может запустить из клиентского приложения непосредственным выбором, называются интерактивными. Это скрипты следующих типов:
•команды над записью справочника;
•команды над списком записей справочника;
•команды над документом;
•команды над списком документов;
•пользовательские команды;
•печатные формы.
Скрипты интерактивной группы имеют механизм отображения форм параметров и клиентских действий:
•форма параметров – это форма, отображаемая в клиентском приложении для запроса каких-либо данных от пользователя. Ее можно описать как декларативно, просто перечислив типы и имена параметров – система сама сгенерирует и покажет пользователю форму, так и создать полностью свою форму, которая будет показана перед запуском скрипта;
•механизм клиентских действий позволяет передать управляющие команды с сервера приложений в клиентское приложение для выполнения тех или иных действий (например, скрипт сгенерировал какой-то файл, который надо предложить сохранить пользователю локально).
Типы скриптов задают способ и цели их использования, остановимся на них подробнее.