Копировать ссылку на страницу

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

если в мастере используются документы и записи справочников, которые могут изменяться в разных БД, то создайте параметр для получения ссылки на объект в вычислениях мастера. Это позволит не редактировать текст события при переносе мастера в другую БД, достаточно заполнить параметры;
если в текстах подсказок на формах используются ссылки на документы, то ссылку формируйте в вычислении, а документ задавайте в параметрах мастера.

Пример

 

  ContractCode = Params.ValueByName('НовыйДоговор').Value.Code

  Contract = References.ДГВ.GetObjectByCode(ContractCode)

  if not Assigned(Params.ValueByName('Договор').Value)

    // Сохранить ссылку на договор для итогового окна,

    // если была создана новая запись

    Result = AddSubString('Создана запись справочника "Договоры": ' & Contract.HyperLink(hltText); Result; CR & CR)

  endif

если в ходе работы мастера один параметр заполняется на основе другого, то заполняйте второй параметр только тогда, когда данные в первом параметре изменились;
если при работе мастера действий создаются документы со штрихкодом, то для обновления штрихкода откройте документ или используйте функцию RefreshBarCodes. После использовании функции вычисления будут выполняться дольше;
если в мастере действий используются параметры, которые будут редко изменяться для конкретного пользователя, то значения таких параметров храните в реестре операционной системы.

Пример

 

  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

длительные вычисления, например, создание договорного документа, добавляйте в событии для кнопки Далее. При выполнении этих вычислений будет показана текущая, а не новая пустая форма;
не вызывайте один мастер действий во время выполнения другого. Скопируйте этапы в текущий мастер или вставьте ссылку на второй мастер на завершающем этапе;
чтобы запросить у пользователя данные для табличной части в записи справочника:
используйте параметр одного из типов: «Список записей справочника», «Список объектов», «Список документов», «Список пользователей»;
выберите максимальное количество записей в табличной части и разместите соответствующее количество параметров на форме;
если в мастере действий создается документ из макета, созданного с помощью конструктора документов, то называйте одинаково параметры мастера и макропеременные. Чтобы сформировать список макропеременных и их значений, получите значения элементов форм определенных этапов;
при создании документа из макета для поддержки совместимости сохраняйте его с помощью приложения Microsoft Office с расширением *.docx;
если при нажатии на кнопку Далее необходимо проверить корректность значений параметров, то добавьте генерацию исключений в случае ошибок. При этом прервется только текущий этап, а не мастер действий;
если мастер действий запрашивает данные для создания записи справочника, то текст вычисления мастера действий должен содержать те же проверки, что и вычисления события справочника;
формируйте данные для проверки, получая значения параметров, привязанных к элементам формы. При добавлении или удалении параметра с формы не придется менять вычисления для формирования данных для проверки;
нельзя динамически формировать в тексте вычисления список параметров на форме или изменять их заголовки, можно только изменить их доступность;
если в мастере действий создается запись справочника до нажатия на кнопку Готово, например, для открытия на этапе «Запись справочника», то при нажатии на кнопку Отмена эту запись необходимо удалять;
при программном старте задачи, сохранении записи справочника или документа может возникнуть исключение. Если генерируется исключение, то работа мастера не завершается, завершается только выполнение текущего этапа. Пользователь может снова нажать на ту же кнопку. Добавьте в вычисление проверку повторного создания объекта или выводите информацию об ошибке на другой форме.
© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM