Тип документа

Введение 🔗

Основное преимущество Doc-v — это возможность реализации любых типов документов без программирования полностью в графическом режиме. Тип документа описывает документ и его поведение. Каждый документ может состоять из произвольного количества полей, каждое из которых предназначено для хранения разнообразной информации. Чтобы пользователь мог работать с документами, заполнять поля и читать их значения, используются шаблоны для отображения документов для просмотра и редактирования. Действия, выполняемые над документом пользователем или автоматически системой в соответствии с бизнес-процессами, определяются маршрутом документа. Только что мы перечислили все основные концепты системы Doc-v: поля, шаблоны, действия и маршрут. Далее рассмотрим это все подробнее. А пока для быстрого получения базового представления о настройке Doc-v вы можете посмотреть несколько коротких видеороликов плей-листа «Быстрый старт» на нашем Youtube-канале.

Доступ к управлению типами документов имеет только администратор системы (пользователь, в учетной записи которого установлен переключатель администратора). У администратора системы вверху слева доступна кнопка в виде зеленого треугольника, нажатие на которую приводит к открытию панели администратора, где можно найти пункт «Типы документов».

Нажатие на указанный пункт приводит к открытию списка имеющихся в системе типов документов.

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

Открыв любой тип документа, вы увидите несколько вкладок:

  • Общие
    Здесь определяются общие настройки типа документа
  • Поля
    Здесь определяются поля документа
  • Шаблоны
    Здесь определяются шаблоны документа
  • Маршрут
    Все действия, выполняемые над документом, кнопки, которые будут доступны пользователям и этапы жизненного цикла документа — все это определяется на этой вкладке
  • Доступ
    По умолчанию, к документу имеет доступ только его автора. Один из способов изменить правила доступа — использование этой вкладки
  • Настройки
    Проектируя тип документа, администратор может выносить какие-то параметры в качестве настроек. Например, количество дней для исполнения документа по умолчанию. На данной вкладке находятся те же поля, что и на вкладке «Поля», только они выполняют роль настроек типа документа.

Можно вносить любые изменения в тип документа, не опасаясь, что это повлияет на работу существующих документов, до тех пор, пока не нажата кнопка «Сохранить», т.к. все изменения будут сохраняться автоматически в режиме черновика. При необходимости можно удалить черновик, чтобы сбросить все внесенные правки. А после любого сохранения типа документа автоматически создается новая версия. Список всех сохраненных версий доступен при помощи специальной кнопки, при нажатии на которую открывается таблица, где отображаются время сохранения, автор версии и кнопка для восстановления выбранной версии типа документа. При восстановлении версии в тип документа вносятся изменения в соответствии с выбранной версией. Эти изменения сохраняются как черновик, поэтому можно просмотреть их, внести дополнительные правки и только после этого сохранить (или удалить полученный черновик). Обратите внимание, что если в выбранной версии нет каких-либо полей, существующих в текущей, такие поля будут помечены на удаление, поэтому будьте осторожны.

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

Увидеть результат настройки типа документа можно не покидая его страницы. Для этого предназначена кнопка «Открыть документ», открывающая окно с документом настраиваемого типа (предварительно тип документа нужно сохранить).

Общие настройки 🔗

На вкладке «Общие» можно настроить:

  • Название типа документа
  • Описание типа документа. Это описание доступно администратору в списке типов документов. Можно использовать ключевые слова для быстрого поиска нужных типов документов. Например, для всех кадровых документов можно в описание добавить слово «кадры», чтобы, открыв список типов документов можно было ввести это слово в поисковую строку и быстро получить требуемые данные
  • Поле заголовка. Здесь выбирается одно из полей, имеющихся на вкладке «Поля». Содержимое выбранного поля будет использовано для формирования названия документа. Не путайте с названием типа документа. Название типа документа — это название для администратора. Внутренний документ — это и есть такое название. Но пользователи могут создать тысячи и даже миллионы внутренних документов. И в некоторых местах системы могут отображаться ссылки на эти документы. Чтобы быстро понять о чем идет речь в каком-то конкретном документе и может использоваться этот заголовок — содержимое выбранного поля будет использоваться в качестве названия документа. Если у пользователя нет доступа к документу вместо его заголовка он увидит только название типа документа (например, в «Дереве документов»).
  • Пиктограмма. Пиктограмма пока используется только в поле «Дерево документов», и она позволяет пользователю быстрее ориентироваться в списке документов и, не читая название, определять тип документа. Вот этот документ — внутренний. А вот этот — уже поручение. А это и вовсе — отчет об исполнении.
  • Включать в дерево документов. Зачастую встречаются довольно сложные процессы, включающие множество разнообразных документов. Чтобы быстро сориентироваться на основе чего появился тот или иной документ, деревья могут собираться в дерево, одной из которых изображено на рисунке выше. Но встречаются документы, которым в этом дереве делать нечего. Например, в типовой конфигурации Doc-v есть документ «Личный кабинет», из которого можно создавать внутренние документы, исходящие и входящие, поручения и пр. Если бы личный кабинет был включен в дерево, он бы стал предком для огромного количества документов в системе, не имея со своими потомками никакой смысловой связи, за исключением того, что в нем была просто нажата кнопка создания других документов. Очевидно, что для личного кабинета следует отключить включение в дерево документов. И, открыв список типов документов и зайдя в тип документа «Личный кабинет», вы можете убедиться в том, что так оно и есть.

    На рисунке изображено поле «Дерево документов», в котором со стрелкой — внутренний документ, с направляющим указателем — поручение, а с галочкой — отчет об исполнении.

Остается только добавить, что некоторые настройки вкладки «Общие» локализованные. Это означает, что если в Doc-v будет несколько языков, такие настройки как название, описание и поле заголовка, необходимо будет заполнить для каждого языка.

Поля 🔗

Полей в документе может быть много, и эти поля могут быть разные. Попробуйте создать любой документ. Все, что позволяет вам вводить какие-то данные, является тем или иным полем. Например, создавая внутренний документ вы можете ввести заголовок документа в поле «Заголовок» и его текст в поле «Содержание», выбрать подписанта в одноименное поле и т. д. Все эти поля, а также любые другие, которые могут понадобиться бизнесу и могут быть реализованы администратором (не забывайте — никакого программирования, все легко и просто!), определяются на вкладке «Поля».

Если вам кажется немного сложным вышесказанное, замените термин «поле» на «карман». Пусть у вас будет необычная такая жилетка со множеством самых разнообразных карманов: маленьких для хранения мелких монет, крупных для хранения крупных купюр, узких — для карандашей и авторучек и так далее и тому подобное. Эти карманы в Doc-v называются полями. И определяются они на вкладке «Поля».

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

Вкладка «Форма» 🔗

На вкладке «Поля» можно добавлять, изменять и удалять поля. Давайте попробуем добавить во внутренний документ новое поле «Для ознакомления». Для этого необходимо:

  • Нажать на кнопку «Новое поле»
  • В открывшем окне на вкладке «Форма» необходимо ввести:
    • Название поля. Это название будет доступно только администратору для использования в шаблоне, маршруте, кнопках. В названии нельзя использовать угловые скобки <>, фигурные скобки {} и обратную косую черту \.
    • Описание поля — это комментарий о том, для чего создавалось поле. Также доступно только для администратора.
    • Тип поля. Типов полей в Doc-v довольно много. И будет еще больше. Ведь каждое поле облегчает жизнь пользователю. Например, есть поле для ввода текста с возможностью вставки таблиц и изображений. Есть поле для ввода даты, выбора значения из списка, загрузки файлов и многие другие. Описанию всех типов полей посвящена отдельная статья документации, поэтому здесь мы не будет останавливаться подробно на настройках типов полей. Сейчас мы просто постараемся определить нужный для наших «знакомящихся» тип поля.

Кто будет знакомиться с документом? Очевидно, что люди. И не просто люди, а сотрудники нашей организации. И не менее очевидно то, что вводить вручную всех этих людей будет довольно утомительно. Намного удобнее просто выбрать документы, описывающие наших сотрудников (кстати, в Doc-v почти все являются документом; любая запись справочника — это тоже документ, не смотря на то, что в типовой конфигурации есть пункты меню «Документы» и «Справочники» внутри находятся по сути одинаковые документы). Так вот, нам необходима возможность выбрать сотрудников, чтобы в нашем документе появились ссылки на них (на ссылку, кстати, обычно можно нажать и посмотреть дополнительную информацию о сотруднике (при наличии соответствующих прав доступа). В общем, выбираем из списка тип поля «Ссылка». У этого типа поля есть 3 настройки, которые нас сейчас интересуют:

  • Тип ссылки. Интересующие нас знакомящиеся — это не просто люди, это сотрудники нашей организации, занимающие определенные позиции, согласно утвержденной организационной структуре. Исходя из этого, выбираем в качестве типа — Структуру (Структура — это тоже тип документа, который можно найти в списке типов документов).
  • Отображаемое поле — это поле, которое будет описывать выбранного сотрудника. В «Структуре» есть специальное поля для этой цели, оно называется «Отображаемое имя» (в нем может быть просто ФИО сотрудника, или ФИО с должностью или … или… подробнее вы сможете узнать об этом, открыв вкладку «Настройки» типа документа «Структура»).
  • Множественный выбор. Если мы хотим дать возможность выбрать несколько сотрудников, стоит включить такой выбор.

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

Вкладка «Атрибуты» 🔗

На этой вкладке определяются следующие атрибуты полей:

  • Обязательно для заполнения
    Пользователь не сможет сохранить документ, если в его шаблоне будет незаполненное поле с данным включенным атрибутом
  • Любое значение / Уникальное значение
    Если включить этот атрибут, во всех документах данное поле должно будет иметь уникальное значение. Проверка работает при записи непустого значения в поле (для числовых полей непустым значением является 0)
  • Без контекста изменения
    Можно определить какие-либо действия, которые будут выполнены, когда данное поле будет изменено. Эти действия определяются в маршруте
  • Сохранение истории значений. Для полей некоторых типов по умолчанию включено автоматическое ведение истории значений (доступ к этой истории можно получить при помощи элемента шаблона «История документа»), отключить которую можно при помощи данного атрибута. ВНИМАНИЕ! При отключении истории все накопленные исторические данные будут удалены и не могут быть восстановлены!
  • Не для дерева
    Если поле используется для построения дерева (например, поле «Подразделение» для выстраивания иерархической «Структуры»), включите этот атрибут, чтобы избежать закольцовывания дерева (когда предок становится ребенком потомка)
  • Доступ на редактирование
    Можно разместить поле в шаблоне формы, но ограничить круг сотрудников, которые могут его изменять, выбрав в данном атрибуте поле, содержащее этих сотрудников. Сотрудники-редакторы будут видеть поле в виджете редактирования и смогу изменять значение поля, остальные же смогут увидеть только значение поля, но не изменить его
  • Доступ на просмотр
    Если в этом атрибуте выбрать поле, то только те сотрудники, которые будут находиться в нем, смогут увидеть значение настраиваемого поля. Для всех остальных настраиваемое поле будет скрыто
  • Идентификатор поля
    Этот идентификатор может понадобиться вам при отладке вашего типа документа

Вкладка «Использование» 🔗

На этой вкладке отображаются объекты, использующие данное поле. Кстати, вы не сможете удалить поле до тех пор, пока на вкладке «Использование» будет хотя бы одна запись.

Шаблоны 🔗

Шаблоны определяют внешний вид документов и делятся на два вида: шаблоны просмотра и шаблоны формы. Первые используются для отображения пользователю в режиме просмотра документа, а вторые — в режиме редактирования (или создания).

Как шаблонов просмотра, так и шаблонов формы может быть несколько. Первый шаблон является основным, и он применяется системой по умолчанию. Дополнительные шаблоны применяются только в том случае, если выполнятся условия, определенные в них.

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

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

Настройка шаблона выполняется в редакторе. На панели редактора помимо обычных средств форматирования текста, доступны специальные кнопки:

  • Поле — для вставки поля документа или элемента.
  • Вкладки. На скриншоте выше видны вкладки: Данные, Согласование, Ход работы.
  • Блоки. Для управления разметкой документа.
  • Панели. Для группировки данных документа.
  • Все настройки отображения. В окнах настроек полей, блоков, панелей есть вкладка «Отображение», на которой можно настраивать условия отображения и скрытия соответствующих объектов. Данная кнопка позволяет просмотреть все такие настройки в одном окне.
  • Скопировать шаблон. Кнопка позволяет скопировать любой имеющийся в данном типе документа шаблон в текущий со всеми условиями отображения, записями значений и пр.
  • Режим исходного кода. Администратор, знающий HTML, может внести необходимые правки в код шаблона, воспользовавшись данной кнопки.

Поля шаблона 🔗

После нажатия на кнопку «Поле», расположенную в панели инструментов редактора шаблона, открывается следующее окно:

В этом окне можно выбрать поле для вставки в шаблон или элемент. Поля, доступные для вставки, делятся на три вида:

  • Обычные поля, которые находятся на вкладке «Поля». В шаблоне формы после выбора поля появляется переключатель «Только просмотр». Поле в режиме «только просмотр» будет отображать свои данные, но не позволит их изменить.
  • Настроечные поля, которые находятся на вкладе «Настройки»
  • Поля-переменные

Поля-переменные — это такие поля, которые присутствуют в любом типе документа. Администратор не может ни удалить их, ни изменить, и установкой значений таких полей Doc-v занимается самостоятельно. Имеются следующие переменные:

  • АВТОР ДОКУМЕНТА. Если разместить это поле в шаблоне, пользователь увидит гиперссылку с именем автора, при нажатии на которую откроется соответствующий документ Структуры.
  • ПОДРАЗДЕЛЕНИЕ ДОКУМЕНТА. Каждый документ имеет не только автора, но и подразделение, в котором находился автор на момент создания документа (ведь автор может быть переведен в другое подразделение). Отображается точно так же, как и автор.
  • ИМЯ АВТОРА ДОКУМЕНТА. В отличие от АВТОРА ДОКУМЕНТА данное поле не имеет гиперссылки на Структуру.
  • НАЗВАНИЕ ПОДРАЗДЕЛЕНИЯ. То же, что и ИМЯ АВТОРА, только отображает название подразделения, в котором был создан текущий документ.
  • ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ. В этом поле записывается тот пользователь, который в данный момент просматривает документ. Вставив это поле в шаблон, можно, например, поприветствовать того, кто открывает этот документ.
  • УЧЕТНАЯ ЗАПИСЬ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ. У каждого пользователя в Doc-v есть своя собственная учетная запись, которая может быть связана с одним или несколькими документами Структуры (что позволяет легко реализовывать совмещение должностей). Данное поле отображает логин учетной записи пользователя с гиперссылкой на соответствующий документ справочника «Учетные записи».
  • ИМЯ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ. Эта переменная содержит значение отображаемого имени «Структуры» с учетом возможной работы в качестве замещающего. Если, например, Иванов, будучи главным инженером, работает как замещающий директора переменная вернет значение Иванов Н.А. (Главный инженер) / Зам. Директора (в зависимости от формата отображаемого имени «Структуры»)
  • ТЕКУЩЕЕ ВРЕМЯ. Выводит текущую дату со временем.
  • ВРЕМЯ СОЗДАНИЯ ДОКУМЕНТА.
  • ВРЕМЯ АРХИВАЦИИ ДОКУМЕНТА. Действие «Архивация» при перемещении документа в архив записывает в эту переменную время выполнения операции. Если документ восстанавливается из архива, переменная обнуляется.
  • ВРЕМЯ ИЗМЕНЕНИЯ ДОКУМЕНТА. Это время устанавливается после выполнения действия пользователем, повлекшим за собой изменение значений полей документа, или после перемещения документа на другую точку маршрута.
  • НАЗВАНИЕ ТЕКУЩЕЙ ТОЧКИ МАРШРУТА, на которой находится данный документ в данное время.
  • ОПИСАНИЕ ТЕКУЩЕЙ ТОЧКИ МАРШРУТА.
  • ГИПЕРССЫЛКА НА ТЕКУЩИЙ ДОКУМЕНТ. Для формирования гиперссылки используется содержимое поля заголовка, определенного на вкладке «Общие».
  • ПОДРАЗДЕЛЕНИЕ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ (ССЫЛКА) — подразделение, к которому относится пользователь, открывший документ.
  • ПОСЛЕДНИЕ ДОКУМЕНТЫ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ (ССЫЛКА) — нетипизированная «Ссылка», содержащая 10 последних запрошенных пользователем документов. Количество документов можно изменить при помощи ключа RecentDocumentsCount.

Если установить курсор на поле в шаблоне (поля отображаются в фигурных скобках {{Название поля}}) и нажать на кнопку «Поле» в панели инструментов редактора шаблона или нажать правой кнопкой на добавленном поле и выбрать в открывшемся меню команду «Изменить поле», откроется окно настроек поля. В этом окне можно выбрать другое поле, определить условия отображения поля (в большинстве случаев лучше размещать поле внутри блока и управлять условиями отображения на уровне блока) и настроить изменение значения поля в зависимости от каких-либо условий. При скрытии поля учтите, что такой способ не гарантирует, что пользователь, не видящий поле в шаблоне, не сможет узнать его значение - значения всех полей, используемых в шаблоне, отправляются в браузер пользователя. При необходимости защиты значения поля от пользователя необходимо настроить доступ на уровне самого поля, а не шаблона.

Например, записать в настраиваемое поле значение поля Х, если это поле Х не равно пустоте. Если условие не определять, запись произойдет единожды при загрузке документа.

Обратите внимание, что, с целью повышения безопасности, когда пользователь сохраняет документ (в действиях «Создание», «Редактирование», «Диалог») До́кви сохраняет только те поля, которые есть в шаблоне. Например, можно создать три шаблона просмотра. В первом добавить поле «Список» для выбора шаблона (второй или третий), а во втором и третьем разместить соответствующее содержимое, но не размещать поле «Список», настроив при этом условия отображения шаблона на основе того же поля «Список». Теперь пользователь, создав документ, выберет шаблон, заполнит его, сохранит документ, но потом возникнет ошибка, т. к. поле «Список» не сохранится, потому что оно отсутствует во втором и третьем шаблонах.

Элементы шаблона 🔗

Помимо полей, в шаблон можно вставить элементы:

Элементы заполняются Doc-v самостоятельно и не могут изменяться пользователями.

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

Для обычных пользователей в элементе «Ход работы» отображаются только важные события. Администратор может просмотреть расширенный список (кнопка «Только важные»), в котором отображаются все действия (если нажать на ячейку столбца «Действие», откроется соответствующий блок типа документа или журнала, сделавший эту запись), выполненные над документом. Поскольку объем данных по всем операциям, выполняемым над документами, очень большой, ход работы не хранится в базе данных, для его хранения используется каталог storage/doclogs (удалять который не рекомендуется, т. к. эти данные могут использоваться системой в будущем).

­«Диаграмма работы» позволяет визуализировать маршрут документа для пользователя.

Точка «Отклонён» на приведенном выше рисунке отобразится в диаграмме только в том случае, если документ будет находиться на этой точке. Во всех остальных случаях эта точка не будет отображаться в диаграмме.

Элемент «История документа» отображает историю значений полей документа. Отображаются только те поля, которые присутствуют в шаблоне документа, и имеют один из следующих типов полей: «Число (вещественное)», «Время», «Файл», «Число (целое)», «Ссылка», «Список», «Строка», «Таблица», «Таблица документов» или «Текст».

Когда документ создается из другого документа между ними устанавливается родственная связь. Документы-родственники образуют иерархическое дерево, ведь из одного документа может быть создано несколько документов.

Это дерево и отображает элемент «Дерево документов». В качестве названия документа используется содержимое поля заголовка (если у пользователя нет доступа к документу, в дереве отобразится только название его типа).

Кстати, можно исключить документы некоторых типов из дерева документов при помощи настройки «Включать в дерево документов».

Вкладки шаблона 🔗

Документ может содержать много всяческой информации, и часто лучше сгруппировать ее по вкладкам. Управление вкладками осуществляется при помощи кнопки «Вкладки», размещенной на панели инструментов редактора шаблона, после нажатия на которую открывается следующее окно:

В этом окне можно добавлять и удалять вкладки, изменять порядок их расположения и определять активную вкладку (ту вкладку, которая будет отображена при открытии документа).

Блоки шаблона 🔗

Блоки позволяют относительно просто создавать адаптивные шаблоны, которые будут удобно выглядеть и на широких экранах мониторов и на маленьких экранчиков сотовых телефонов. Ведь на широком экране можно отобразить, скажем, 4 колонки с данными, а вот на сотовом телефоне 2 или даже 1. Реализация такого отображения достигается следующим образом.

Ширина всего экрана разбивается на условные равные друг другу 12 столбцов. Каков бы ни был экран, всегда будут 12 столбцов. Разумеется, что на широком мониторе столбцы будут шире, а на маленьком экране — уже. Вы можете определять блоки, которые будут занимать определенное количество столбцов. Причем, в зависимости от ширина экрана, это количество может изменяться. Например, можно добавить 4 блока и для каждого из них отвести по 3 столбца для большого экрана, по 6 для маленького и по 12 для очень маленького. Тогда на большом экране все 4 блока отобразятся в одну строку (4 блока х 3 столбца = 12/12 = 1 строка), для маленького в две (4 блока х 6 столбцов = 24/12 = 2 строк), а для очень маленького в четыре (4 блока х 12 столбцов = 48/12 = 4 строки). Кстати, блок не может переноситься на другую строку. Если, к примеру, определить 2 блока, занимающие 6 и 7 столбцов, они займут две строки, т. к. второму блоку после первого останется только 6 (из 12) столбцов, а ему нужно 7.

Настройка вышесказанного осуществляется в окне блоков, вызываемому нажатием кнопки «Блоки» панели инструментов редактора шаблона, следующим образом:

Размеры экранов следующие:

  • Очень маленький — до 576 px в ширину (сотовый телефон с очень маленьким экраном);
  • Маленький — от 576 px до 768 px (смартфон);
  • Средний — от 768 px до 992 px (планшет);
  • Большой — от 992 до 1200 px (ноутбук);
  • Очень большой — свыше 1200 px (стационарный монитор с большим экраном).

В окне управления блоками есть вкладка «Отображение», позволяющая определять условия отображения блоков. По умолчанию, блоки показываются. Но можно их скрыть при определенных условиях, или, наоборот скрыть по умолчанию, а показать только в заданных случаях.

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

  • Поле документа, значение которого будет сравниваться. Доступны также 4 поля-переменные: АВТОР ДОКУМЕНТА, ПОДРАЗДЕЛЕНИЯ ДОКУМЕНТА, ТЕКУЩИЙ ДОКУМЕНТ, ИДЕНТИФИКАТОР ТЕКУЩЕЙ ТОЧКИ МАРШРУТА
  • Способ сравнения этого поля (равно / не равно / больше или равно / меньше или равно / больше / меньше / содержит / не содержит / содержится в / не содержится в)
  • Значение, которое может быть получено из другого поля документа, или введено вручную, или равно идентификатору точки маршрута.

Например, в документе можно определить поле типа «Список» с двумя значениями: Приход и Расход. В шаблоне добавить два блока, оба скрыть по умолчанию, и первый отображать в случае, если поле «Список» равно «Приход», а второй — если «Список» равно «Расход». Поле «Список» можно добавить в сам шаблон, и тогда пользователь сможет выбирать его значение и тут же видеть на экране соответствующий блок с данными.

Если в шаблоне установить курсор на вставленные заранее блоки, появится меню с командами:

  • Блоки. Вызывает описанное выше окно блоков. В нем можно добавить / удалить / изменить блоки или настроить условия отображения.
  • Новые блоки. Позволяет вставить новые блоки внутрь того блока, в котором находится курсор.
  • Удалить блоки. Все блоки будут удалены.
  • Добавить блок.
  • Изменить блок. Окно, открываемое этой командой позволяет настроить условия отображения только того блока, на котором находится курсор, а также определить параметры его оформления:
    • ширина рамки (в пикселах или любых других единицах измерения: em, rem и пр.);
    • цвет рамки;
    • стиль рамки (сплошная, пунктирная и пр.);
    • цвет фона (если пользователь включит темную тему цвет фона будет инвертирован, то есть, если цвет фона белый, он станет черным);
    • выравнивание по горизонтали содержимого блока;
    • классы CSS, которые можно определять в файле custom.css;
    • стили CSS.
  • Удалить блок.

Панель шаблона 🔗

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

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

Исходный код шаблона 🔗

Пользуйтесь кнопкой ᐸ/ᐳ , размещенной на панели инструментом редактора шаблона, только в том случае,если вы знаете HTML и уверены в своих силах, т. к. правкой исходного кода можно нарушить работу шаблона.

Маршрут 🔗

Маршрут - это сущность типа документа, которая позволяет описать и выполнить последовательность действий, необходимых для достижения определенной цели. Маршрут может быть использован для автоматизации бизнес-процессов и предоставления пользователям пошаговых инструкций по выполнению задач. Например, маршрут позволяет определить следующий жизненный цикл документа:

  1. вначале документ создается, созданный документ может неоднократно изменяться, пока его автор не сочтет, что документ готов и не отправит его в работу (это точка Создание)
  2. документ согласуется (точка Согласование)
  3. документ подписывается (точка Подписание)
  4. документ исполняется (точка Исполнение)
  5. документ выполнен (точка Выполнен)

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

На каждой точке маршрута можно определять кнопки, которые будут доступны заданным пользователям, пока документ будет находиться на этой точке. А также действия, которые будут запускаться в определенных контекстах.

Контексты 🔗

В маршруте есть 7 контекстов для запуска действий, из них 2 доступны только на самой первой точке, на которой документ оказывается в момент своего создания. При открытии точки маршрута по умолчанию отображаются действия всех контекстов.

  • Контекст Создание.
    Когда пользователь нажимает, например, в журнале, кнопку создания документа, прежде чем документ (вернее его форма для заполнения) покажется пользователю, будут запущены действия из этого контекста. Соответственно, контекст доступен только на нулевой точке маршрута. В этом контексте недоступны действия «Перемещение» и «Перенаправление». Используйте этот контекст с осторожностью, т. к. он может быть запущен не единожды. Если пользователь создаст документ, но не сохранит его и не нажмет на кнопку отмены, и через некоторое время повторно создаст документ того же типа, он увидит на экране документ, созданный ранее. Со всеми введенными им данными. Причем, во второй раз в документе будет повторно запущен контекст создания, чтобы гарантированно привести документ в исходное состояние (за исключением введенных пользователем данных).
  • Контекст Проверка.
    Этот контекст позволяет проверить введенные пользователем данные. Контекст запускается при сохранении документа. Для работы контекста удобно использовать действие «Условие», в настройках которого есть возможность полной остановки обработки документа, которую следует вызвать, если введенные пользователем в форме документа данные некорректны. Контекст также доступен только на нулевой точке маршрута. В этом контексте недоступны действия «Перемещение» и «Перенаправление».
  • Контекст Переход.
    Всякий раз, когда документ переходит на точку маршрута, запускаются действия из этого контекста. Например, когда пользователь сохраняет свежесозданный документ, запускается контекст перехода нулевой точки. Или, когда в результат нажатия пользователем какой-либо кнопки документа перемещается на точку N, сразу запускаются действия контекста этой точки.
  • Контекст Активность.
    Когда пользователь открывает документ или нажимает на какую-либо кнопку в нем — запускаются действия из контекста активности той точки, на которой находится документ.
  • Контекст Изменение.
    У полей есть атрибут для запуска контекста изменения. При изменении любого поля, у которого включен этот атрибут, запускается контекст изменения той точки маршрута, на которой находится документ.
    Обработка полей выполняется последовательно. Это означает, что если в шаблоне документа или действия размещены поля А, Б и В, и у каждого из них установлен атрибут запуска контекста изменения, действия в контексте будут запущены трижды. Обработка полей осуществляется в порядке их следования в шаблоне. Например, если шаблон имеет вид:
    {{Б}} … {{А}} … {{В}}
    то вначале будет сохранено значение поля Б и запущен контекст изменения; затем сохранится поле А с еще одним запуском контекста; и, наконец, поле В с третьим запуском контекста изменения.
  • Контекст Настройки.
    У поле со вкладки «Настройки» тоже есть атрибут для запуска контекста. Только не контекста изменения, а контекста настройки. Работают контексты изменения и настройки одинаково.
  • Контекст Удаление.
    Если документ удаляется может потребоваться некая обработка этого печального события. Поэтому перед удалением запускаются действия контекста удаления той точки, на которой находится удаляемый документ.

Добавление точек маршрута осуществляется при помощи кнопки «Новая точка», а изменение существующей точки при помощи кнопки «Изменить точку». В обоих случаях открывается окно настройки точки маршрута.

В этом окне необходимо ввести название точки и, при необходимости ее описание (оно может быть выведено в шаблон при помощи переменной ОПИСАНИЕ ТЕКУЩЕЙ ТОЧКИ МАРШРУТА). В окне также отображается идентификатор точки маршрута, который может быть полезен при отладке конфигурации.

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

Порядок точек маршрута можно изменять при помощи кнопок «Вверх» и «Вниз».

Существует возможность копирования действий и кнопок в текущую выбранную точку при помощи кнопки «Копировать».

Кнопка с пиктограммой в виде лупы позволяет найти действия и кнопки, которые используют заданный тип действия или поле.

Действия добавляются в соответствующий контекст при помощи соответствующей кнопки:

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

Если в контексте уже есть действия можно добавлять действия непосредственно после любого существующего при помощи кнопки с пиктограммой плюса.

А расположенная слева от действия кнопка с тремя горизонтальными линиями позволяет произвольно изменять порядок действия. Справа от действия также доступна кнопка пометки действия на удаление (окончательное удаление произойдет после сохранения типа документа) и кнопка отключения действия (оно сохранится в маршруте, но выполняться в документах не будет). Измененные действия подсвечиваются красным цветом, а удаленные и отключенные серым. До тех пор, пока тип документа не будет сохранен, можно сбросить все изменения нажав на кнопку «Удалить черновик».

Кнопки 🔗

Справа в интерфейсе настройки точки маршрута расположена панель кнопок, доступных пользователям для документов данного типа, находящихся на соответствующей точке. Новую кнопку можно добавить, нажав на «Новая кнопка».

Если одинаковая кнопка должна отображаться на нескольких точках маршрута, можно выбрать эти точки в данной настройке. В этих точках кнопка будет отображаться с пунктирной границей, а при нажатии на них открываться точка, к которой принадлежит кнопка. Скопированные кнопки недоступны для выбора в журналах, поле «Таблица документов» и пр.

Окно настройки кнопки включает три вкладки: Основные, Действие и Дополнительные:

  • Вкладка Основные.
    На этой вкладке вводятся:
    • Название кнопки.
    • Подсказка, появляющаяся, когда пользователь наводит курсор на копку.
    • Комментарий к кнопке для администратора.
    • Доступ, определяющий пользователей, которым будет доступна настраиваемая кнопка. Здесь можно выбрать:
      • поле документа (если выбрать, скажем, ранее добавленное поле для ознакомления, кнопка будет доступна любому сотруднику, находящемся в данном поле текущего документа (если Иванов находится в поле для ознакомления документа А, но не находится в документе Б, то, открыв документ А он увидит кнопку, а в документе Б не увидит; оба документа Иванов может открыть только при наличии доступа к ним, конечно));
      • настроечное поле — поле со вкладки «Настройки»;
      • поле-переменную:
        • АВТОР ДОКУМЕНТА
        • ПОДРАЗДЕЛЕНИЕ ДОКУМЕНТА
        • ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ
        • АВТОР И ЕГО ПОДРАЗДЕЛЕНИЯ (для Иванова, находящегося в отделе А1 департамента А эта переменная будет содержать Иванова, отдел А1, департамент А и саму компанию; переменную уместно использовать при наличии холдинговой структуры, то есть структуры с несколькими корневыми подразделениями-компаниями)
    • Условия отображения. Кнопка отобразится при отсутствии условий или если условия будут соблюдаться.
    • Отображать также на точках. Если одинаковая кнопка должна отображаться на нескольких точках маршрута, можно выбрать эти точки в данной настройке. В этих точках кнопка будет отображаться с пунктирной границей, а при нажатии на них открываться точка, к которой принадлежит кнопка.
    • Группа. Кнопки могут собираться в группы, чтобы уменьшить количество кнопок на панели. В этой настройке можно выбрать существующую (на текущей точке) группу или добавить новую. Группа отображается в том случае, если в ней будет более одной кнопки.
    • Тип: кнопка или разделитель. Разделитель позволяет группировать кнопки. На панели кнопок разделитель занимает максимально доступное место. Так, если разместить один разделитель, то кнопки до этого разделителя окажутся в левой части панели, а кнопки после — в правой. Если же разместить два разделителя, то кнопки поделятся на три группы, размещенные в левой части панели, в центре и справа.
    • Сортировка. Изменять порядок кнопок можно в их списке методом Drag’n’Drop или изменением числового значения данного поля. Это изменение можно будет полезно для выстраивания порядка кнопок при наличии скопированных с других точек кнопках.
  • Вкладка Действие.
    На этой вкладке можно определить действие, которое будет запущено после нажатия на кнопку. Или выбрать точку маршрута, на которую будет перемещен документ, в котором будет нажата кнопка, или выполнен контекст перехода этой точки без перемещения на нее документа. Или выбрать действие и точку маршрута (эта возможность доступна не для всех действий). Если будет выбрано действие и точка для перемещения / выполнения, то перемещение / выполнение будет запущено после выполнения выбранного действия, при этом перемещение будет выполнено только в том случае, если это действие само не изменит текущую точку маршрута документа, а выполнение запустится в любом случае.
  • Вкладка Дополнительное.
    Здесь настраиваются:
    • Пиктограмма кнопки, которую можно выбрать из набора иконок, включающего Primefaces Icons и Material Design Icons (некоторые иконки отключены; если они вам понадобятся - напишите нам).
    • Скрытие названия кнопки на определенных ширине экрана (настройка доступна только при наличии пиктограммы).
    • Цвет текста и пиктограммы кнопки.
    • Цвет фона.
    • Подтверждение выполнения кнопки, которое может быть запрошено у пользователя. Если ввести текст в этот параметр, после нажатия на кнопку пользователь увидит диалоговое окно с этим текстом и двумя кнопками: «Да» и «Нет». Выполнение действия осуществится только в том случае, если пользователь нажмет на кнопку «Да».
    • Реакция после нажатия кнопки и выполнения ее действия. Можно отобразить текущий документ, или журнал, из которого документ был открыт, или выбранный в данной настройке конкретный журнал.
    • Идентификатор кнопки, который может быть полезен при отладке.

Справа от кнопки находится кнопка для пометки на удаление. Окончательное удаление, как и в случае с действиями и полями, осуществляется после сохранения типа документа.

Кнопки отображаются на панели кнопок документа в том порядке, в котором они отображаются на точке маршрута. При необходимости этот порядок можно изменить методом drug'n'drop.

Доступ 🔗

Доступ к документу, по умолчанию, имеет только его автор. Предоставить доступ другим сотрудникам можно при помощи некоторых действий (Доступ, Решение, Уведомление) или на данной вкладке. Если есть возможность использовать эту вкладку, лучше использовать ее - такая настройка более эффективна в плане производительности.

Настройка доступа осуществляется при помощи таблицы, которая может быть определена администратором статически или динамически в процессе работы (загружена из поля типа «Таблица»). В обоих случаях доступ определяется на основе авторства документов.

Статичная таблица доступа 🔗

Для добавления доступа необходимо нажать на кнопку «Новый доступ». В открывшемся окне доступны следующие параметры:

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

Таблица доступа из поля 🔗

Можно определить поле типа «Таблица», из которого будут загружаться данные для настройки доступа. Значения этой таблицы смогут изменять пользователи (если предоставить им такую возможность).

Поле «Таблица» может быть загружена из документа или непосредственно выбрана из числа настроечных полей.

Загрузка таблицы доступа из поля документа

Для загрузки таблицы доступа из поля какого-либо документа необходимо:

  1. Определить настроечное поле, в котором будет находиться идентификатор этого документа.
  2. Определить тип этого документа.
  3. Определить поле этого документа.
  4. Определить столбец таблицы для субъекта доступа.
  5. Определить столбец таблицы для автора документов.

Загрузка таблицы доступа из настроечного поля осуществляется аналогично описанному выше варианту, за исключением шагов 1-2.

Доступ к сохраненным шаблонам до­кументов 🔗

В режиме формы документа (при его с­оздании или редактировании) в верхней правой части окна находится кнопка для сохранения текущего заполненного документа в качестве шаблона. В будущем можно создать новый документ и загрузить в него значения из такого шаблона. По умолчанию, каждый пользователь создает шаблоны сам для себя. Администратор имеет возможность управлять всеми шаблонами и определять их доступность другим пользователям. Управление шаблонами осуществляется также в режиме формы документа — администратору доступна дополнительная кнопка с пиктограммой в виде карандаша вверху справа.

На вкладке «Доступ» / «Доступ к шаблонам» типа документа администратор может предоставить такое же право управления шаблона другим сотрудникам (или подразделениям) организации.

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

Настройки 🔗

Разрабатывая конфигурацию, можно определять настройку, которую изменяются поведение документа или хранят какие-то данные, необходимые для работы. Как правило, всегда есть возможность определять такие данные внутри самого маршрута, но в будущем будет сложнее найти эти настройки и изменить. Поэтому мы рекомендуем не пренебрегать описываемыми здесь настроечными полями.

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