При разработке событий мастера действий рекомендуется придерживаться правил:
• | мастер действий должен упрощать работу пользователя, поэтому для параметров с известными данными сразу устанавливайте значения по умолчанию; |
• | если в мастере действий используются параметры, которые будут редко изменяться для конкретного пользователя, то значения таких параметров храните в реестре операционной системы. |
Пример
ContractCode = Params.ValueByName('НовыйДоговор').Value.Code
Contract = References.ДГВ.GetObjectByCode(ContractCode)
if not Assigned(Params.ValueByName('Договор').Value)
// Сохранить ссылку на договор для итогового окна,
// если была создана новая запись
Result = AddSubString('Создана запись справочника "Договоры": ' & Contract.HyperLink(hltText); Result; CR & CR)
endif
|
• | при запуске мастера нужно проверять, что все необходимые параметры заполнены, иначе выводить соответствующее сообщение с просьбой обратиться к администратору системы; |
• | если в мастере используются документы и записи справочников, которые могут изменяться в разных БД, то создайте параметр для получения ссылки на объект в вычислениях мастера. Это позволит не редактировать текст события при переносе мастера в другую БД, достаточно заполнить параметры; |
• | если в текстах подсказок на формах используются ссылки на документы, то ссылку формируйте в вычислении, а документ задавайте в параметрах мастера. |
Пример
Params = Wizard.Params
if not Assigned(Params.ValueByName('СохранитьВ').Value)
// Считать из реестра ИД папки
Register = "HKEY_CURRENT_USER\Software\Computer\DIRECTUM\Параметры мастеров действий\"
FolderID = РеестрЧтение(Register & Wizard.Title; "ЗначПоУмолч")
FreeException()
ExceptionsOff()
Params.ValueByName('Папка').Value = Folders.ObjectInfo(FolderID)
ExceptionsOn()
endif
|
• | если в ходе работы мастера один параметр заполняется на основе другого, то заполняйте второй параметр только тогда, когда данные в первом параметре изменились. Это необходимо, чтобы при возврате пользователя на предыдущий шаг мастера действий данные не удалились; |
• | если при работе мастера действий создаются документы со штрихкодом, то для обновления штрихкода настройте открытие документа или воспользуйтесь функцией RefreshBarCodes. При использовании функции вычисления выполняются дольше; |
• | длительные вычисления, например, создание договорного документа, добавляйте в событии для кнопки Далее. При выполнении этих вычислений будет показана текущая, а не новая пустая форма; |
• | не вызывайте один мастер действий во время выполнения другого. Скопируйте этапы в текущий мастер или вставьте ссылку на второй мастер на завершающем этапе; |
• | чтобы запросить у пользователя данные для табличной части в записи справочника: |
• | используйте параметр одного из типов: «Список записей справочника», «Список объектов», «Список документов», «Список пользователей»; |
• | выберите максимальное количество записей в табличной части и разместите соответствующее количество параметров на форме; |
• | в вычислениях не рекомендуется использовать циклы, так как при необходимости изменить уже введенные данные пользователю придется долго возвращаться назад; |
• | если в мастере действий создается документ из макета, созданного с помощью конструктора документов, то называйте одинаково параметры мастера и макропеременные. Чтобы сформировать список макропеременных и их значений, получите значения элементов форм определенных этапов; |
• | при создании документа из макета для поддержки совместимости сохраняйте его с помощью приложения Microsoft Office с расширением DOCX; |
• | если при нажатии на кнопку Далее необходимо проверить корректность значений параметров, то добавьте генерацию исключений в случае ошибок. При этом прервется только текущий этап, а не мастер действий; |
• | если мастер действий запрашивает данные для создания записи справочника, то текст вычисления мастера действий должен содержать те же проверки, что и вычисления события справочника; |
• | формируйте данные для проверки путем получения значений параметров, привязанных к элементам формы. При добавлении или удалении параметра с формы не придется менять исходные вычисления; |
• | нельзя динамически формировать в тексте вычисления список параметров на форме или изменять их заголовки, можно только изменить их доступность; |
• | если в мастере действий создается запись справочника до нажатия на кнопку Готово, например, для открытия на этапе «Запись справочника», то при нажатии на кнопку Отмена эту запись необходимо удалять; |
• | при программном старте задачи, сохранении записи справочника или документа может возникнуть исключение. Если генерируется исключение, то работа мастера не завершается, завершается только выполнение текущего этапа. Пользователь может снова нажать на ту же кнопку. Добавьте в вычисление проверку повторного создания объекта или выводите информацию об ошибке на другой форме. |