Выпущен релиз СЭД TESSA 3.5 : часть 4
Новая версия TESSA 3.5.0 добавила поддержку CAdES-T и других форматов ЭП, расширила инструменты форматирования в обсуждениях, в элементах управления карточек и в шаблонах файлов.
Краткое содержание предыдущих постов:
- Часть 1: обновлённая архитектура и менеджер приложений.
- Часть 2: новые возможности web-клиента.
- Часть 3: маршруты и бизнес процессы, новые способы работы с файлами.
Настройка истории заданий
Историю заданий в карточке можно настраивать: указывать любые колонки и порядок их отображения, сворачивать группы по умолчанию и разворачивать их одной кнопкой.

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

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

Представление
TaskHistory
проверяет права доступа к карточке на сервере в расширенииTessa.Extensions.Default.Server.Views.TaskHistoryInterceptor
. Для представлений в проектном решении надо указать такое же своё расширение, чтобы не допустить неавторизованный доступ к истории заданий любой карточки.
В расширении можно задать алиас элемента управления и его настройки: какие колонки выводятся во всплывающей подсказке и надо ли сворачивать группы по умолчанию. Все остальные настройки определяются метаинформацией представления, там можно добавить и колонки, и параметры фильтрации.

Пример использования расширения доступен в тестовом типе карточки Car
. Скопируйте вкладку История заданий
оттуда в ваш тип, добавьте расширение Представление истории заданий
, и скройте стандартную вкладку с историей.
Это можно сделать с помощью нового расширения Скрыть вкладку
, указав строку .TaskHistoryViewModel
:

В текущей версии элемент управления
Представление
и его расширения отсутствуют в web-клиенте, мы работаем над этим. Расширение скрытия вкладки поддерживается в web-клиенте.
Обсуждения и текст с форматированием
В версии TESSA 3.4.0 появились обсуждения, они разделены по темам (топикам), внутри которых пользователи пишут сообщения.
В TESSA 3.5.0 рядом с сообщением появились всплывающие кнопки:
- Ответ на сообщение. Вставляет текст в отправляемое сообщение, причём, кликнув по тексту цитаты, можно перейти к исходному сообщению.
- Скопировать ссылку на сообщение в буфер обмена. Отправьте её другому пользователю по почте, и он сможет открыть карточку и перейти к указанному сообщению (если есть доступ). Это ссылка формата
tessa://
, для её открытия должен быть установленTessa Applications
. - Копировать сообщение в буфер обмена. Сообщение копируется вместе с разметкой, его можно вставить в Outlook, Word и другое приложение, поддерживающее форматируемый текст.

Так выглядит ответ на сообщение.

Можно вставлять блоки с разным фоном, что полезно при оформлении цитат.

Отдельной кнопкой вставляется блок для кода.

Сообщения теперь можно редактировать! Укажите в карточке Настройки сервера
время, в течение которого возможно редактирование.

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

Нажав на неё, вы можете как угодно изменить сообщение, и оно будет отмечено как изменённое в скобках.

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

Элемент управления привязывается к строковому полю, в котором записывается информация по форматированию. Пользователю элемент управления доступен для чтения, отредактировать его можно, нажав на всплывающую иконку с карандашом:

После этого появляется панель инструментов, и сообщение можно изменить:

Разрешено вставлять изображения, прикреплять ссылки и файлы, причём содержимое изображений и файлов размещается в новом специальном типе карточки-сателлита FileSatellite. Файл не виден в файловых элементах управления карточки документа, но путешествует
вместе с карточкой при экспорте, удалении в корзину и т.п.
Перечисленные доработки обсуждений отсутствуют в web-клиенте, а элемент управления
Текст с форматированием
доступен, но только для чтения. Ждите расширенных возможностей в следующей версии TESSA.
Электронная подпись
В TESSA 3.5.0 электронная подпись (ЭП) была полностью переработана. Хотя на первый взгляд и не скажешь:

Вы можете заметить колонку Профиль подписи
, где указано CAdES-T – ЭП со штампом времени. Дважды кликнув по подписи, откроется информация по её проверке:

Нажав по ссылке в строке Метки времени T
, можно узнать, где возникла проблема:

Переходим по ссылке Валидность сертификата
:

И видим всю цепочку сертификатов, участвующих в проверке. Каждый из них можно скачать как файл .cer.
В первом окне в строке Лог проверки
можно вывести максимально детальную информацию о том, как выполнялась проверка:

Так можно проанализировать любую информацию в контейнере ЭП, и не только для CAdES-T.
В карточке Настройки электронной подписи
можно выбрать профиль ЭП, настраивать автоматическую фильтрацию сертификатов, предлагаемых пользователю, указывать поддержку алгоритмов хеширования (в т.ч. ГОСТы) и добавлять доверенные сертификаты, о которых может не знать операционная система.

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

Настройки почты
При получении почты для мобильного согласования теперь поддерживается протокол IMAP
в дополнение к POP3
и Exchange Web Services
. Протокол указывается в настройке MobileApproval.Mode
в файле app.json сервиса Chronos.

При отправке почты по SMTP теперь поддерживается режим Implicit SSL
, когда с сервером почты устанавливается защищённое соединение TLS без предварительной отправки сообщения STARTTLS. Режим определяется автоматически и не требует дополнительной настройки.
Добавлена поддержка аутентификации OAuth
для отправки и получения почты посредством Exchange Web Services. Для этого в файле app.json сервиса Chronos в настройках NoticeMailer.ExchangeOAuthToken
(для отправки почты) и MobileApproval.ExchangeOAuthToken
(для получения почты) укажите непустой ключ OAuth API Token, генерируемый на стороне Exchange, посредством которого Chronos будет взаимодействовать с сервисом.
Очередь почтовых сообщений, ожидающих отправки, формируется в таблице Outbox в базе данных TESSA. Просмотреть очередь можно SQL-запросом:
SELECT "Email", "Subject", "Body", "Info" FROM "Outbox" ORDER BY "Created"
В версии TESSA 3.5.0 дополнительная информация по отправляемому сообщению, включая прикладываемые файлы и список дополнительных получателей, теперь доступна в колонке Info
в строке JSON.

Шаблоны файлов и плейсхолдеры
В шаблонах файлов группу таблицы можно вложить в другую группу таблицы.


Таблицу можно вложить в другую таблицу.

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

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


С помощью конструкции {#alias placeholder} в тексте документа можно создать плейсхолдер-объявление.

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

В плейсхолдерах представлений {fv:…} и {tv:…} можно настраивать несколько параметров фильтрации, указав в них значение-константу (конструкция with param <ParamName> value <const>
) или значение из другого плейсхолдера-объявления по алиасу (конструкция with param <ParamName> from <alias>
).
Поле из колонки представления можно объединить с данными в другой таблице, аналогично плейсхолдерам {f:…}
и {t:…}
: {tv:АлиасПредставления.КолонкаПредставления->Секция1.Поле1}
Другие важные нововведения
В тексте запроса представления для оператора #if для проверки значений логического типа доступно получение значения через свойство Value. Например:

В приложении TessaClient для плитки Создать документ
ограничена длина до 25 символов для названия типа документа (или карточки), который создаётся повторно. Полное название можно увидеть во всплывающей подсказке.

Модуль потокового ввода документов теперь поддерживается на сервере с ОС Linux. Его настройка на Linux аналогична Windows и описана в руководстве.
Раздел по ограничениям сервера на Linux мы удалили из руководства, потому что функциональных ограничений по сравнению с Windows теперь нет.
В представлении Сотрудники
в дополнение к параметру фильтрации Входит в роль
добавлен параметр Не входит в роль
, который можно использовать одновременно с первым параметром и можно указывать несколько ролей.

В правила доступа добавлено поле Приоритет
, которое задаёт приоритетность расширенных настроек правил доступа.
Например, для всех сотрудников можно запретить доступ к редактированию секции, а для инициатора процесса – создать правило с большим приоритетом, которое разрешает доступ.

Текущие настройки безопасности, которые указаны в карточке Настройки сервера
на вкладке Безопасность
, теперь выводятся в лог веб-сервиса на уровне логирования INFO.


В схеме данных для индекса Postgres появилось поле для ввода выражения для построения индекса. В выражениях можно использовать плейсхолдеры {0}
, {1}
и др., на место которых подставляется колонка.
Например, для выражения to_tsvector(`russian`, {0} || ` ` || {1})
в индексе по колонкам Subject
и FullNumber
будет создан индекс для полнотекстового поиска по этим двум колонкам:
CREATE INDEX "ndx_DocumentCommonInfo_SubjectFullNumber" ON "DocumentCommonInfo"
USING GIN (to_tsvector('russian', "Subject" || ' ' || "FullNumber"))

В документацию по REST API Swagger более не включаются контроллеры веб-сервисов, которые desktop-клиент использует для бинарной сериализации. Они не совместимы со сгенерированными REST-клиентами.

Ограничена длина до 100 символов для имени файла вместе с расширением, который записывается во временную папку при загрузке и редактировании файлов в TessaClient. При этом длина имени файла, указываемая пользователем в карточке, не ограничивается.

Укороченное имя файла отображается при открытии в папке и при редактировании в стороннем приложении, например, в заголовке окна Word.

Вы можете отключить ограничение на длину полного пути к файлам
MAX_PATH
в Windows 10, указав политикуEnable NTFS long paths
(по умолчанию она отключена). Ограничения на длину файла во временной папке отключаются, если написать клиентское расширение для изменения свойстваISettings.MaxFileContentNameLength
. Поскольку у пользователей может быть другая ОС или не указана эта политика, то ограничение включено по умолчанию.
Трассировка расширений теперь используется для всех основных типов расширений для сервера и desktop-клиента, не только для расширений карточек, как раньше.
Включается трассировка в файле app.json -> ExtensionTracingMode
или параметром командной строки TessaClient.exe /ExtensionTrace
.

Инструкция по трассировке расширений доступна в руководстве разработчика.
И ещё для разработчиков: API для скриптов и расширений в маршрутах теперь асинхронные, как и все другие API в платформе. Это повышает масштабирование запросов на сервере приложений, когда сервер лучше выдерживает нагрузку от большого количества одновременных пользователей. Примечания по обновлению кода расширений указаны в ReleaseNotes.
Заключение
На этом завершается описание возможностей платформы TESSA 3.5.0. Опробовать новую версию можно на нашем демо-стенде, запрос доступа по ссылке.
Мы продолжаем работать над системой, добавляя в неё поддержку нескольких бизнес-календарей, расширение функций web-клиента, новый визуализатор маршрутов, API для разработки интеграционных тестов и многое другое. Следите за нашим блогом.
Полный список изменений доступен в ReleaseNotes.