Документооборот ПРОФ, КОРП, ДГУ
30.03.2016
Переопределение описания задач
Общее описание
При внедрении "1С:Документооборота" часто требуется упростить работу пользователей путем уменьшения количества кликов и открываемых окон.
Такое упрощение возможно при работе с задачами. Например, чтобы пользователь лишний раз не открывал карточку документа, можно вынести сумму договора в карточку задачи согласования. Это позволит меньше отвлекаться от контекста задачи и путаться в открытых окнах.
Как заполняется описание
В карточках задач предусмотрена специальная область, в которой выводится описание задачи (информация, необходимая для выполнения задачи).
Точно такая же область есть в списке Задачи мне:
Эта область представляет собой поле HTML. За формирование HTML-описания задач в конфигурации отвечают четыре общих модуля:
- ОбзорЗадачВызовСервера
- ОбзорЗадачВызовСервераПереопределяемый
- ОбзорЗадачКлиент
- ОбзорЗадачКлиентПереопределяемый
В серверных модулях содержатся функции возвращающие текст HTML.
В клиентских – процедуры обработки событий нажатия в поле HTML. Вызов процедур происходит при открытии карточки задачи или при перемещении по задачам в списке Задачи мне.
Как переопределить описание
Для переопределения описания задач, а также стандартного поведения нажатия по области описания в программе используются два модуля с процедурами:
- ОбзорЗадачВызовСервераПереопределяемый
- ПолучитьОбзорЗадачи
- ПолучитьОбзорЗадачиДляСпискаЗадачиМне
- ОбзорЗадачКлиентПереопределяемый
- ПредставлениеHTMLПриНажатии
- ЗадачиМнеПредставлениеHTMLПриНажатии
Рассмотрим простой пример вывода суммы документа в область описания.
Для этого необходимо:
- Снять с поддержки два описанных выше общих модуля.
- Скопировать код из одноименных процедур/функций модулей ОбзорЗадачВызовСервер и ОбзорЗадачКлиент.
- Добавить вывод суммы документа в процедуру формирования HTML-описания задачи.
Рекомендации по переопределению описания
- Формируемое описание задач не должно быть перегружено информацией. Если информации много, то ее никто читать не будет.
- При написании кода необходимо следить за скоростью его выполнения. Нельзя заставлять людей ждать формирования описания несколько десятков секунд.
- При выводе дополнительных текстовых полей следует использовать процедуры общего модуля ОбзорОбъектовКлиентСервер.
- Если возможностей процедур общего модуля ОбзорОбъектовКлиентСервер недостаточно, то при выводе полей с текстовой информацией текст следует предварительно обработать при помощи функции РаботаС_HTML.ЗаменитьСпецСимволыHTML. Эта функция поможет избежать выполнения вредоносного кода, сохраненного в текстовом поле.