Версия 4.1 (11.04.2025)¶
Новые возможности¶
- В web-клиенте добавлено рабочее место с дашбордом, которое обеспечивает отображение и настройку пользовательских виджетов, а также поддерживает разработку кастомных видов виджетов. Подробнее см. в руководстве пользователя и руководстве разработчика.
- Для дашборда добавлено интерактивное обучение, запускаемое при его первом открытии. Если обучение отложено, то к нему можно вернуться из меню системы при открытом дашборде. Если же обучение завершено, то вернуться к нему можно будет, только сбросив соответствующие данные в Моих настройках. Также добавлена возможность разработки собственной программы обучения, подробнее см. в руководстве разработчика.
- Добавлен конструктор согласований. Подробнее см. в разделе Настройки процессов согласования.
- Добавлен расширяемый механизм упоминания пользователей в обсуждениях. Подробнее см. Упоминание пользователей в обсуждениях.
- Добавлены средства нормализации справочников, позволяющие не хранить строковые значения ссылок рядом с идентификаторами в базе данных, но выполнять их автоматическое получение с учётом кэширования при загрузке/создании карточек и при выполнении представлений. Справочник нормализации выбирается для комплексной колонки в схеме данных из списка, перечисленного в записях таблицы
NormalizationSources. Идентификатором справочника может быть единственная колонка во внешнем ключе, имеющая один из типов: уникальный идентификатор (Guid), строковый тип или целочисленный тип. Такая комплексная колонка должна содержать строковую физическую или референсную колонку, значение которой заполняется из справочника. При добавлении комплексной колонки в тип карточки, файла или задания, строковое значение будет заполняться в соответствии с идентификатором при загрузке/создании типа, и оно будет игнорироваться при сохранении. В представлениях для метаинформации колонки-значения (строкового типа) указывается справочник нормализацииNormalizationSourceи колонка с идентификаторомNormalizationKeyColumn, и эта колонка не должна возвращаться в SQL-запросе (в режиме без сабсетаNormal). В метаинформации сабсета представления возможно выбрать справочник нормализацииNormalizationSource, в этом случае SQL-запрос представления для этого сабсета не должен возвращать колонку-значение с алиасом из свойстваCaptionColumn. Также используйте новые свойства в метаинформации сабсета:SortingColumnsдля сортировки строк сабсета иNullRefCaptionдля указания выводимого значения строки сабсета с идентификаторомNULL. Справочник нормализации может кэшироваться в Redis, а также брать блокировки в Redis. - В настройки колонки в схеме данных добавлен флаг
Виртуальная(Virtual), позволяющий указать, что колонка является виртуальной, т.е. метаинформация по ней присутствует в схеме данных, но колонка отсутствует в структуре таблицы в базе данных. Для записей в таблице-перечислении значения виртуальных колонок не записываются в базу данных (но присутствуют в метаинформации). Для таблиц, добавляемых в типы карточек, файлов и заданий, значения виртуальных колонок игнорируются при сохранении, и их значения равныnullпри загрузке/создании карточки. При установке флага на комплексной колонке все колонки внутри неё (референсные и физические) считаются виртуальными. Колонка со строковым значением для справочника нормализации всегда является виртуальной (но её значение заполняется при загрузке/создании карточки в соответствии со справочником). Если таблица является виртуальной, то все её колонки также будут виртуальными, независимо от этого флага. - Добавлены токены доступа к API-ресурсам, используемые внешними интеграционными сервисами, которые взаимодействуют с платформой по RESTful API. Подробнее см. Просмотр и управление токенами доступа к API.
- Расширена поддержка системой режима работы SaaS. Для этого режима добавлена поддержка запуска плагинов внутри процесса веб-сервиса. Подробнее см. в разделе Настройка запуска плагинов на веб-сервисе.
- Все демонстрационные объекты конфигурации (такие, как карточка “Автомобиль”), расширения, строки локализации и т.п. теперь имеют префикс
Abи располагаются в подпапках или группах с именемAbTest. Для их удаления обратитесь к разделу Удаление встроенных демонстрационных возможностей AbTest. - Добавлена функциональность удаления файла в корзину с возможностью его восстановления. Подробнее см. Удаление и восстановление файла. Функциональность доступна с версии 4.0.1.
- В web-клиенте добавлена функциональность аватаров для пользователей системы. Реализованы загрузка аватара пользователем и сброс аватара к значению по умолчанию. Функциональность доступна с версии 4.0.1.
- Реализована поддержка временных ссылок на контент системы, получение контента по такой ссылке не требует авторизации. В рамках проектных решений могут быть реализованы свои обработчики для доступа к необходимому контенту. Подробнее в руководстве разработчика. Функциональность доступна с версии 4.0.1.
- В метаданные колонок представлений добавлено поле
InvisibleByDefault, с помощью которого можно указать, что в пользовательском интерфейсе колонка должна быть скрыта по умолчанию, но её видимостью можно управлять через пользовательские настройки представлений (по умолчанию колонки видны). Функциональность доступна с версии 4.0.1. - Реализована аутентификация в системе с использованием внешних провайдеров по протоколам OAuth 2.0 и OpenID Connect. Подробнее см. Руководство по настройке аутентификации через OAuth. Функциональность доступна с версии 4.0.2.
- Реализована возможность создания временной ссылки на файл или версию файла из соответствующего контекстного меню. Файл должен быть сохранён на сервере, и для типа карточки должно быть добавлено правило доступа, разрешающее создавать такую ссылку. Функциональность доступна с версии 4.0.2.
- Добавлена поддержка для формата файла лицензии
.jlic, который содержит информацию по лицензии в JSON-формате. Строка поиска файлов лицензии в конфигурационных файлахapp*.jsonи файлах проектов.csprojтеперь указывается как*.?lic, чтобы учесть как бинарные файлы лицензии*.tlic, так и JSON-файлы*.jlic. В будущих версиях платформы поддержка бинарного формата*.tlicбудет прекращена. Функциональность доступна с версии 4.0.2 (для релизов 4.0.x) и с версии 3.6.0.20 (для релизов 3.6.0.x). - Добавлена возможность просмотра и управления данными системы в
Redisпосредством сервисаwebbi-Redis Explorer. Функциональность доступна с версии 4.0.5.
Добавление и изменение функциональности¶
- Реализовано расширение на представление и на узел рабочего места
UserAvatarInRowViewExtension, которое позволяет добавить аватар сотрудника в ячейку строки представления. - Доработаны действия редактора бизнес-процессов “Задание”, “Группа заданий”, “Универсальное задание и “Управление заданием”. Теперь эти действия поддерживают настройку связанных с заданием ролей через интерфейс.
- В окно “Настройки процесса” редактора экземпляров и редактора шаблонов бизнес-процессов добавлена кнопка “Обновить действия процесса”. Она позволяет вызвать обновление действий для конкретного экземпляра или конкретного шаблона бизнес-процесса.
- Для флагов правил доступа “Редактирование ФРЗ своих заданий” и “Редактирование ФРЗ всех заданий” добавлены всплывающие подсказки.
- Для кнопок шаблонов бизнес-процессов добавлены настройки “Алиас”, “Отображать на тулбаре”, “Разрешённые версии бизнес-процесса” и “Скрывать из интерфейса”, подробнее см. раздел документации Кнопки бизнес-процесса.
- В строковые значения ключей, указываемых в конфигурационных файлах
app.json, добавлена возможность подставлять значения символов с помощью конструкции%var%, гдеvar- имя символа, определённого в блоке.define, или имя переменной окружения (без учёта регистра). Если символ или переменная не определены, то подставляется пустая строка. Укажите%%для эскейпинга символа%(%%var%%преобразуется в строку%var%). Пример:"Host=localhost; Database=%DATABASE_NAME%; User ID=postgres; Password=%DATABASE_PASSWORD%; Pooling=true; Timeout=0"заменит%DATABASE_NAME%на имя базы и%DATABASE_PASSWORD%на пароль из переменных среды, которые альтернативно можно задать в блоке".define": [ "DATABASE_NAME=tessa", "DATABASE_PASSWORD=Master1234" ]в том же или в соседнем файлеapp-vars.json(имя указано для примера). - В web-клиенте обновлен внешний вид окна входа в систему.
- Добавлен раздел документации Конфигурационные файлы и переменные окружения, в котором перечислены различные виды конфигурационных файлов, описан их синтаксис и приведены примеры, а также перечислены переменные окружения, которые можно использовать в системе.
- Добавлены переменные окружения, посредством которых можно изменить пути к конфигурационным файлам и папкам для запущенного приложения:
TESSA_EXTENSIONS_ROOT,TESSA_APP_JSON,TESSA_NLOG_CONFIG,TESSA_CID,TESSA_AUTHORIZED_KEYS. Также доработано поведение переменной средыTESSA_CONFIG_ROOT. Описание в разделе Переменные окружения. - В файлах
extensions.xmlдля тега<path/>укажите атрибутsubfolders="false", чтобы в указанной папке не выполнялось сканирование подпапок на наличие в них дополнительных файловextensions.xml. По умолчанию сканирование выполняется. - В web-клиенте из контекстного меню колонок представлений, находящихся в рабочих местах, был удалены пункты “Отобразить столбец” и “Расположение тегов”, а также пункты, связанные с сохранением и сбросом настроек. Теперь эта функциональность доступна в диалоге настроек представления.
- В мобильной версии web-клиента удалено контекстное меню для колонок представлений. Теперь эти настройки можно изменить через диалог настроек представления.
- В web-клиенте добавлено ограничение на сортировку. Теперь можно сортировать представления максимум по двум колонкам.
- В web-клиенте добавлен диалог настроек представлений в рабочих местах и карточках. С помощью него можно задать порядок и видимость колонок, указать сортировку, группировку и способ отображения тегов. Также с помощью данного диалога можно восстановить настройки по умолчанию.
- В web-клиенте добавлен информационный блок, доступный при клике на кнопку настроек представления, с помощью которого можно узнать о том, что настройки представления были изменены текущим пользователем, но не сохранены. Также с помощью данного блока эти настройки можно сохранить или сбросить к последним сохранённым.
- В web-клиенте добавлена возможность выполнять прокрутку многостраничного тулбара посредством колеса мыши.
- В web-клиенте добавлена возможность циклического переключения между страницами тулбара.
- В web-клиенте реализован валидатор уникальности для проверки значения в поле секции относительно других карточек или других строк в той же карточке.
- В web-клиенте добавлено расширение для выполнения валидаторов карточки при её сохранении. Если при выполнении одного из валидаторов будет получена ошибка, то запрос на сохранение карточки не будет отправлен на сервер.
- В web-клиенте в диалоговых окнах выбора представлений теперь не отображаются вкладки с рабочими местами, если для выбора доступно единственное рабочее место.
- В web-клиенте в диалоговых окнах выбора представлений теперь не отображается дерево представлений, содержащее единственный узел без видимых дочерних узлов.
- В плагине
RemoveInactiveSessionsPluginстарые сессии теперь удаляются, независимо от использованного сессией типа лицензии. - Добавлено разрешение “Восстановление всех удалённых файлов” в правило доступа, которое позволяет сотруднику восстанавливать любые файлы в карточке - как удалённые им самим, так и удалённые другими сотрудниками.
- Добавлен плагин
RemoveDeletedFilesPluginдля удаления старых файлов из корзины. Срок хранения удалённых файлов в корзине задаётся в карточке “Настройки сервера”. Подробнее см. Настройки сервера. - В типовых задачах добавлен валидатор уникальности для поля “Исполнители”. Теперь, во время обработки задания, повторяющиеся исполнители будут удаляться автоматически.
- В настройки этапа маршрутов “Создать файл по шаблону” и одноимённого действия в конструкторе бизнес-процессов добавлена настройка “Категория файла”. Подробнее о настройках см. в разделах документации Маршруты документов. Создать файл по шаблону и Описание действий бизнес-процессов. Добавить файл по шаблону.
- При выводе строк подключения к Redis и к базе данных (например, в логи и на консоль) из строк удаляются пароли.
- Изменена схема работы уведомлений в форумах и обсуждениях: теперь уведомления о новом сообщении приходят всем подписанным участникам сразу после отправки сообщения вместо периодической отправки группами по несколько сообщений.
- Для форумов и обсуждений добавлено уведомление о добавлении участника в топик.
- При экспорте карточек типа “Раздел справки” html-содержимое теперь выгружается в отдельный файл в отформатированном виде.
- Добавлен новый тип события для истории действий “Неудачное открытие карточки”. Событие данного типа записывается в историю действий при любых возникающих ошибках во время попытки открытия карточек для просмотра, редактирования или экспорта. Подробные данные о возникших ошибках расположены на вкладке “Системная информация” карточки “Запись в истории”.
- В шаблоны файлов в формате
.docxдобавлена возможность выделения области строки, группы или таблицы с помощью примечания. Подробнее см. раздел Примеры создания шаблонов файлов в формате docx. - В шаблоны файлов с формате
.docxдобавлена возможность использовать блоки с условиями внутри областей таблиц. Такие блоки с условиями будут обработаны отдельно для каждой строки таблицы. Подробнее см. раздел Блоки с условиями в шаблонах файлов в формате docx. - В веб-сервис
jinniдобавлена проверка/hcheck, позволяющая установить доступность всех соединений с Redis, указанных при запуске в конфигурационных файлах, параметрах командной строки или переменных окружения. - В веб-сервис
jinniдобавлена поддержка значенийServerCodeдля проверки инициализации данных системы в Redis.ServerCodeможно указать либо в файлеapp.json, либо в переменной окруженияJINNI_SERVER_CODE. - Для контрола “Представление” добавлена настройка “Отключить при создании карточки”, предотвращающая выполнение представления, если текущая карточка только что создана и ещё не сохранена. Подробнее см. в разделе документации Представление.
- В web-клиенте добавлена возможность выбора кодировки текстовых файлов в режиме предпросмотра.
- В интеграции SAML добавлена возможность использовать тип привязки
Redirectв запросеlogout. Также теперь доступна ручная настройка ограничений идентификатора имени пользователя в SAML. См. настройки SAML в конфигурационном файле приложения. - В настройки расширения создания карточки из представления
CreateCardExtensionдобавлен параметр “Заголовок вкладки/окна”, который определяет заголовок для открываемой вкладки или модального окна, в зависимости от варианта открытия созданной карточки. Если значение не указано, то используется стандартный текст заголовка. - При создании нового тега из диалога и представления модальное окно теперь открывается с заголовком “Новый тег”, а не “Новая карточка”.
- Добавлена поддержка умных ролей в составе умных ролей.
- В web-клиенте в область предпросмотра файлов в правый верхний угол добавлена кнопка, позволяющая открыть файл в диалоговом окне, развёрнутым на весь экран.
- В карточке “Настройки сервера” для форумов и обсуждений увеличено значение настройки “Максимальный размер сообщения” по умолчанию с 1000 до 5000 символов.
- Для типа карточки “Сотрудник” изменён внешний вид и компоновка интерфейса, и скорректированы некоторые строки локализации.
- Добавлена возможность выбора представлений в типе карточек “Шаблон файла” при помощи ручного ввода. Это позволяет выбрать представления, генерируемые перехватчиком на клиенте.
- Добавлена поддержка множественного выбора строк в master-представлении с передачей значений всех выбранных строк в detail-представление. Актуально для master-detail связей в узлах рабочих мест и для master-detail связей контролов “Представление” в карточках. Подробнее см. в документации.
- В web-клиенте добавлено всплывающее окно с подтверждением изменений при попытке закрытия диалога создания обсуждений.
- В web-клиенте для Google Chrome в уведомление об открытой вкладке браузера с приложением добавлены кнопки для перехода на открытую вкладку или открытия приложения в текущей.
- Плагин
TextRecognitionдля обработки операций по распознаванию текста в файле перенесён в веб-сервисweb. Теперь операции по OCR берутся в работу сразу после их создания. - В web-клиенте в окне “О программе” теперь выводится текущее описание конфигурации. Его можно установить посредством вызова скрипта
Fixes/SetConfigDescription.xx.sql(xxравенpgдля PostgreSQL, илиmsдля MS SQL Server). Подробнее в разделе руководства Примеры использования со стандартными скриптами из папки Fixes. - Добавлена иконка для файлов с аннотациями pdf.
- Добавлена возможность удалить все аннотации pdf.
- В web-клиенте изменена анимация загрузки.
- Вместо фиксированного набора цветов в системе теперь используется гибкий механизм именованных цветовых палитр, подробнее см. Настройки цветов палитры.
- В настройки контрола “Выбор цвета” добавлено новое поле “Палитра”, с помощью которого можно указать набор цветов для выбора пользователем, подробнее см. Выбор цвета.
- Цвет текста для тега больше не может быть задан пользователем и теперь всегда определяется автоматически на основе выбранного цвета фона.
- Для выбора цвета тега добавлена новая системная палитра.
- В руководстве разработчика добавлен пример реализации обработчика для нового OAuth-провайдера. Подробнее см. Добавление нового OAuth-провайдера.
- Доработаны скрипты
setup.sh,upgrade.sh,export.sh,migrate.sh(только linux-версии) для выполнения в неинтерактивном режиме, что позволяет удобно их использовать в сценариях автоматизации. Вызовите скрипт с аргументом--help, чтобы получить краткую справку по доступным аргументам командной строки. За описанием их использования обратитесь к разделу Автоматизация скриптов установки и обновления. - Вложенные изображения в форумах и контроле “Текст с форматированием” теперь всегда используют ссылку для получения своего контента.
- В web-клиенте изменён внешний вид тулбара для контрола “Текст с форматированием” и для поля ввода сообщения в форумах и обсуждениях.
- В web-клиенте добавлена возможность развернуть на весь экран поле ввода сообщения в форумах и обсуждениях.
- В web-клиенте для контрола “Обсуждения” в контекстном меню добавлена кнопка “Войти в режим повышенных привилегий”.
- В web-клиенте добавлена возможность отображения диалогов валидации в полноэкранном режиме.
- В разделе руководства Использование Redis добавлены подразделы Вывод установленных блокировок и Удаление блокировок с указанием доступных в системе средств для управления блокировками вручную.
- Добавлена поддержка протокола HTTP/3 для веб-сервисов, запущенных с использованием Kestrel. Актуально при локальной установке на Windows без использования IIS, а также при установке на Linux, если для front-сервера (nginx, Apache) разрешён протокол HTTP/3. Также настройка
Http2Disabledдолжна быть установлена какfalse. - Улучшена поддержка версии протокола TLS 1.3. Подробнее про доступные версии протокола TLS обратитесь к разделу Примечание по безопасности и поддержка протоколов HTTPS/TLS.
- В руководство разработчика добавлен раздел, описывающий основные концепции создания собственного контроллера для веб-сервиса. Подробнее см. Создание контроллера веб-сервиса на основе API TESSA.
- В редактор типа задания добавлена настройка “Форма по умолчанию”, которая позволяет выбрать одну из форм типа задания в качестве формы по умолчанию, или же выбрать в качестве таковой вариант “Пустая форма”. Для варианта завершения типа задания теперь, помимо форм из типа задания, доступен для выбора вариант “Форма по умолчанию”. См. раздел руководства Тип задания.
- В карточку правил доступа добавлен флаг “Создание ссылки на скачивание файла/версии”, позволяющий для карточек, включенных в типовое решение управлять возможностями создания временных ссылок на файлы пользователями.
- В карточку настроек сервера была добавлена настройка “Максимальный период действия ссылки на файл (дней)”, позволяющая задать максимальное количество дней, в течение которых будет действовать временная ссылка. При создании временной ссылки пользователь может указать меньший период, чем указано в настройке, но не больший.
- Добавлены события истории действий, связанные с функциональностью доступа по токенам (в т.ч. для временных ссылок на файлы и для токенов доступа к API): “Создание токена доступа”, “Просмотр токена доступа”, “Получение данных по токену доступа”, “Отзыв токена доступа”.
- В web-клиенте изменено действие при клике на файл. Теперь при одинарном клике открывается предпросмотр, если он доступен.
- В web-клиенте добавлена возможность копировать выделенный текст в предпросмотре посредством Р7-Офис / OnlyOffice.
- В web-клиенте добавлена возможность выбирать режим курсора мыши и выделять текст в предпросмотре PDF.
- В web-клиенте добавлено действие при двойном клике на файл: если доступен Deski, откроется файл на редактирование/чтение; если Deski недоступен, откроется предпросмотр файла, если он доступен. На мобильном устройстве всегда откроется файл в предпросмотре, если он доступен.
- В функциональные роли (ФР) добавлена настройка “Отображать в задании по умолчанию”. Для ФР “Автор” она включена по умолчанию. Эта настройка определяет необходимость того, чтобы по умолчанию устанавливать флаг “Отображать в задании” для всех добавляемых записей с этой ФР, если только при добавлении записи с этой ФР флаг “Отображать в задании” не был определён принудительно (например, через расширение).
- В desktop-клиенте пункт контекстного меню на файлах “Сканировать и загрузить” переименован на “Создать PDF”. Сканирование более не поддерживается.
- Для карточек “Календарь” и “Тип календаря: Рабочая неделя” удалено автоматическое заполнение значений для начала и окончания действия исключения при создании новой строки в таблице исключений.
- В web-клиенте для таблиц исключений у карточек “Календарь” и “Тип календаря: Рабочая неделя” добавлено автоматическое заполнение даты окончания действия исключения датой начала действия исключения, если дата окончания действия исключения не заполнена. Аналогично для обратной ситуации.
- В web-клиенте для таблиц исключений у карточек “Календарь” и “Тип календаря: Рабочая неделя” добавлен запрет возможности выбрать дату окончания действия исключения меньше даты начала действия исключения. И наоборот - выбрать дату начала действия исключения больше даты окончания действия исключения.
- Из метаинформации по колонкам представления удалено неиспользуемое свойство
HasTag. Контент ячейки может быть расширен, независимо от этого свойства. Словоtagздесь использовалось в широком смысле, отношения к функциональности тэгов/меток оно не имеет. - В web-клиенте добавлены иконки для режимов курсора мыши в предпросмотре PDF.
- В desktop-клиенте в контрол “Представление” добавлена настройка “Расположение тегов”.
- При редактировании типов (карточек, файлов, диалогов, заданий) все цвета в настройках контролов по умолчанию теперь не заданы (пустые поля), в этом случае фактический цвет по умолчанию определяет тема. Это относится к цвету заголовка для всех контролов, а также к цвету текста, цвету фона и цвету границы для тех контролов, где есть эти настройки.
- Для сервисов
chronos,jinni,monitor,web,webbiдобавлена возможность рандомизировать уникальный идентификатор компонента, хранимый в файле с CID. Это гарантирует, что несколько параллельно запущенных процессов, использующих единственный файл с CID, не получат одинаковый уникальный идентификатор. Для этого укажите аргумент командной строки-randomize-cidили переменную окруженияTESSA_RANDOMIZE_CID(любое непустое значение переменной). - В файле
app.jsonдля аутентификации LDAP добавлена настройкаDefaultUserDomain, позволяющая указать домен пользователя по умолчанию при входе в систему. Подробнее см. в разделе Параметры подключения к LDAP. - В web-клиенте добавлена возможность изменения ширины колонок в представлениях и таблицах.
- В web-клиенте в обсуждениях добавлено контекстное меню с возможностью копировать или цитировать часть сообщения.
- В web-клиенте добавлена возможность вставить блок-цитату в текстовое поле с форматированием.
- В конфигурационный файл
app.jsonдля директивы.includeдобавлена поддержка двойного символа**, который является меткой для рекурсивного поиска по всем подпапкам. Подробнее см. в разделе Директива .include. - В web-клиенте добавлено предупреждение об истечении сессии.
- В статических ролях, подразделениях и сотрудниках добавлена возможность наследовать календарь от родителя. Подробнее см. Наследование календарей.
- В конфигурационных файлах
app.jsonдобавлен автоматически объявляемый символdi. Когда он объявлен, то построение конфигурации выполняется с использованием Dependency Injection контейнера, т.е. это не построение конфигурации по умолчанию. Значениеunityвозвращается для контейнераIUnityContainer, а значениеservices- для контейнера Microsoft (IServiceCollection/IServiceProvider). Определённые по умолчанию символы описаны в разделе документации Директива .define. - Удалён плейсхолдер
{instanceName}. Использование нескольких экземпляров для одного сервиса более не поддерживается. - В файле
app.jsonдобавлена настройкаTokenCookiesName, позволяющая указать имя cookies для хранения токена сессии TESSA. Подробное описание см. в документации по настройке production сервера. - Для параметров представления добавлен новый тип фильтрации - “Не содержит”.
- Для диалогов реализована поддержка расширений типа. Теперь к типу диалога можно подключить следующие расширения: “Очистка связанных полей”, “Переместить колонку с тегами влево”, “Скрыть вкладку”, “Список файлов в представлении”, “Таблица в представлении”, “Сортировка строк”, “Шаблон файла в контроле html”.
- Удалены ссылки на desktop-клиент из уведомлений и поддержка ссылок на desktop-клиент из плейсхолдеров. Из карточки “Настройки сервера” удалён флажок “Отключить ссылки на desktop-клиент для уведомлений и виртуальных файлов”. Удалены плейсхолдеры
{link:Action},{appLink},{cardLink}и форматтер#cardLink, формировавшие ссылки на desktop-клиент (используйте плейсхолдеры{webAppLink},{webCardLink}и форматтер#webCardLinkдля ссылок на web-клиент). - Приложение TessaClient теперь публикуется с доступом только для сотрудников с правами администраторов. С этого релиза рекомендуется использовать web-клиент для работы обычных пользователей.
- Из карточки “Настройки сервера” удалена настройка “Период обновления индикатора сообщений”, т.к. индикатор сообщений в desktop-клиенте был удалён.
- Из карточки “Настройки сервера” удалена настройка “Роли, которым доступен web-клиент”. Теперь web-клиент доступен всем сотрудникам.
- В web-клиенте была добавлена возможность установить маску для текстового поля. Подробнее см. в руководстве разработчика в разделе Примеры расширений.
- В файлах
app.jsonдля всех сервисов и приложений, а также в файлах проектов тестов.csprojтеперь указано включение содержимого файловapplocal-*.json, причём их содержимое переопределит строки вapp.jsonиapp-*.json, расположенные по тем же ключам. Это позволяет удобно переопределять любые настройки при разработке. Ранее такие файлы именовалисьapp-local-*.json, что не позволяло переопределить настройки в файлах, имена которых сортируются позже, например,app-web.json. - Удалена настройка “Размер плитки” в карточке “Вторичный процесс” и в настройках кнопок бизнес-процесса в карточке “Шаблон бизнес-процесса”. В web-клиенте настройка игнорируется, а в desktop-клиенте плитка теперь всегда будет иметь полный размер. Приложения desktop-клиента с этого релиза поддерживаются только для использования администраторами и разработчиками.
- В настройки электронной подписи добавлена возможность задания параметров прокси-сервера. Подробнее см. в руководстве администратора в разделе Настройки электронной подписи.
- Добавлен форматтер
#split_par. Он позволяет при замене плейсхолдера не добавлять переносы строк как переносы на новую строку внутри параграфа, а разделяет параграф на несколько параграфов по этим переносам строк. Форматтер применим только для документов Word. - У типа задания “Постановка задачи” убраны варианты завершения “Создать подзадачу”, “Завершить” и “Изменить параметры как автор”, а также теперь запрещено откладывание заданий данного типа.
- В web-клиенте реализованы всплывающие уведомления, оповещающие пользователя о результате его действий.
- В web-клиент была добавлена возможность установить настройки автоподстановки даты и времени в контрол “Дата и время”. Ранее автоматически подставлялись только минимальные значения даты и времени (
01/01/1970 01:00:00) при пропущенных значениях дня, месяца, года, часов, минут и секунд. Теперь с помощью UI расширений можно указать настройку такой автоподстановки. Если настройки не указаны, то при смене фокуса с этого контрола и невалидном значении даты и времени, автоматическая подстановка не выполнится. - Параметры фильтрации с отрицательной коннотацией, такие как “Не равен” и “Не содержит”, в запросах к представлениям теперь объединяются логическим оператором “И”.
- Добавлено форматирование строкового названия ссылки представления для случая, когда в настройке
DisplayValueColumnссылки указан алиас не строковой колонки представления. - В web-клиенте реализован вызов контекстного меню контрола при правом клике на тулбар контрола “Представление” с расширением “Список файлов в представлении”.
- В настройках параметров представлений добавлен флаг
Mandatory, указывающий на обязательность параметра. - В web-клиенте добавлена возможность разворачивания на весь экран многострочного контрола “Строка”.
- В метаданные параметров представлений в раздел
AutoCompleteInfoдобавлена настройка “Режим поиска”. Подробнее см. в документации разработчика в разделе Редактор параметров представления. - В представления конфигурации платформы добавлены ограничения доступных операторов у параметров, для которых выборка фильтруется по значению объекта, когда таких объектов может быть больше одного.
- В форумах (обсуждениях) больше нельзя удалить карточку сотрудника через представление, которое отображает участников обсуждения. Хоткей Ctrl+D теперь удаляет участников обсуждения.
- В карточку “Сотрудник” на вкладке “Мои замещения” добавлен элемент управления “Кого я замещаю по типу документа”, отображающий список сотрудников, которых текущий сотрудник замещает по типу документа.
- Удалено расширение на представления и узлы рабочих мест
RecordViewExtension, которое использовалось в целях тестирования desktop-клиента. - Для сертификатов OCSP поддержано расширение
id-pkix-ocsp-nocheck. - В web-клиенте добавлена возможность загружать файлы в карточках при клике на область файлового контрола “Загрузить файлы”.
- В маршрутах для карточки “Вторичный процесс” в режиме “Кнопка” удалена настройка “Проверить наличие новых заданий после выполнения”, которая была актуальна только для desktop-клиента.
- Для desktop-клиента из диалога “Мои настройки” удалена настройка “Отключить затемнение неактивного окна”. Окно затемняется всегда, кроме работы по сессии RDP, или если в файле
app.jsonприложения TessaClient указана настройка"FadeAllowed": true. - Для desktop-клиента из диалога “Мои настройки” удалена вкладка “Боковые панели” с настройками для боковых панелей приложения TessaClient. Теперь боковые панели всегда открываются по клику.
- Для desktop-клиента удалена периодическая проверка на наличие новых заданий со всплывающими уведомлениями по ним, а также настройка “Отключить всплывающие уведомления по заданиям” из диалога “Мои настройки”.
- Для desktop-клиента из диалога “Мои настройки” удалена настройка “Отключить все всплывающие уведомления”. Любые уведомления отображаются как всплывающие сообщения в правом нижнем углу экрана.
- В настройки кнопок шаблонов бизнес-процессов добавлена настройка “Обработчик кнопки”, которая позволяет дополнить и переопределить логику обработки нажатия кнопки. Подробнее про создание своих обработчиков кнопок бизнес-процессов в руководстве разработчика бизнес-процессов.
- В типы карточек “Статическая роль”, “Подразделение”, “Метароль”, “Временная роль”, “Умная роль”, “Динамическая роль” добавлено представление “Заместители по типу документа”.
- При обработке шаблонов файлов в формате
.docxупрощена логика определения области таблицы. Теперь для указания строки таблицы документа как области таблицы достаточно в качестве области указать одну или несколько ячеек строки. При этом все последующие строки таблицы автоматически определяются в указанную область. Подробнее смотрите в разделе шаблоны и плейсхолдеры. - В web-клиенте добавлена возможность разворачивания на весь экран редактора кода.
- Из настроек узлов рабочих мест удалено свойство “Где отображать узел”. Теперь все узлы отображаются и в web-клиенте, и в desktop-клиенте. Desktop-клиент этой версии платформы не должен использоваться для работы обычных пользователей (не администраторов и не инженеров). Например, следует учитывать, что в desktop-клиенте теперь отображается папка “Диаграммы”, но вместо диаграмм выводятся таблицы.
- Удалено поле “Архитектура приложений” в карточке сотрудника. Приложения desktop-клиента всегда запускаются в соответствии с разрядностью ОС пользователя, т.е. как если бы в этой настройке указано значение “Автоматически”.
- Удалены расширения на представления, которые использовались для тестирования и не имели реализации для web-клиента:
CustomButtonWorkplaceComponentExtension,CustomNavigationViewExtension,PreviewExtension. - Добавлена возможность использовать JWT токены при работе с Р7-Офис / OnlyOffice.
- В тип карточек “Сотрудник” добавлено представление “Заместители по типу документа”.
- В файл
app-plugins.jsonсервиса Chronos в настройки плагиновWorkflowSchedulerPluginиRolesSchedulerPluginдобавлен триггер запуска плагина раз в 10 минут. Он перезапустит плагины в случае, если их работа была непредвиденно остановлена без остановки Chronos. - Для истории действий добавлены новые действия, записываемые при удалении или добавлении значений для групп ссылок или для типов групп ссылок.
- Тип входа в карточке сотрудника “Пользователь LDAP” теперь совместим с аутентификацией SAML и OAuth. Ранее было разрешено использовать только вход для сотрудника, в карточке которого указан тип входа “Пользователь Windows”.
- Удалена кнопка “Выполнить компиляцию” с основной вкладки карточек типа “Шаблон файла”.
- В настройки кнопок вторичных процессов добавлена настройка “Обработчик кнопки”, которая позволяет дополнить и переопределить логику обработки нажатия кнопки. Подробнее про создание своих обработчиков кнопок вторичных процессов в руководстве разработчика.
- В заданиях в таблицах с информацией о дополнительном согласовании доработан вывод состояния. Теперь в поле состояния выводится “Согласовано”/”Не согласовано” сотрудником, в зависимости от варианта завершения задания дополнительного согласования.
- В web-клиенте в тулбаре представления добавлена группировка элементов.
- Для типов карточек “Группа ссылок” по умолчанию включено фиксирование действий в историю.
- Расширен вывод информации об ошибках, возникающих при выполнении операций с карточкой, тип которой содержит ошибки.
- Обновлён раздел документации по работе с оптическим распознаванием символов (OCR) в файле Распознавание текста в файле.
- В руководство разработчика добавлен раздел Примеры расширений для работы с оптическим распознаванием символов (OCR).
- В карточку операции OCR добавлен обозреватель свойств. Все верифицируемые поля реализованы в виде свойств обозревателя.
- Добавлен новый способ отображения распознанных в OCR элементов “Поля”. В данном режиме выполняется отображение содержимого распознанного файла без текстового слоя, но с возможностью вывода распознанных элементов, связанных с верифицируемыми полями. При выборе необходимого поля в области верификации будет подсвечен распознанный элемент, связанный с полем, в области предпросмотра.
- Для распознанных в OCR элементов добавлена генерация уникального идентификатора элемента, что позволяет его связать с верифицируемым полем.
- Реализованы упрощённый (используется по умолчанию) и экспертный режимы работы с карточкой операции OCR. Подробнее см. в руководстве пользователя.
- Реализована возможность создания карточки операции OCR вне контекста исходной карточки документа, а также без связи с исходной карточкой документа. Подробнее см. в руководстве разработчика.
- При обработке плейсхолдеров, когда известно, что данные карточки загружены полностью, а также в плейсхолдере отсутствуют соединения с другими таблицами, такие данные будут получены напрямую из объекта карточки, не делая запрос к БД. Это позволяет использовать в плейсхолдерах, например, значения из виртуальных коллекционных таблиц, которые отсутствуют в БД, что ранее было невозможно.
- В web-клиенте для тем добавлена возможность добавлять изображения через секцию
resources/images/. - В TessaAdmin в диалогах импорта рабочих мест и представлений для флага “Заменить разрешения в базе данных” добавлена всплывающая подсказка с пояснением.
- Для Deski удалена переменная окружения
DESKI_DB_LOADING_MODE_FILEIO. Для файла vlog на ОС Windows отображается размер больше актуального, но не более чем на 100 Мб, а общий размер зарезервированного места в папке%LocalAppData%/tessa/deski/.deski_data/dbне превышает 300 Мб (это место по-прежнему освобождается после закрытия Deski, т.к. является зарезервированным, а не записанным на диск). Для ОС Linux/macOS визуальных изменений нет. - Для применения настроек замещения после их изменения в карточке “Настройки сервера” больше нет необходимости перезапускать сервер. Достаточно перезапустить клиент.
- Расширение типа карточки “Сортировка строк” теперь применяется и при экспорте карточки.
- При экспорте карточек в JSON строки коллекционных секций теперь по умолчанию сортируются по
RowID. - В web-клиенте на основную панель приложения добавлена кнопка, при помощи которой можно открыть рабочее место.
- В скрипты
Export.batиexport.shдобавлен экспорт карточек календарей, настроек форматирования и групп ссылок. - В web-клиенте изменен дизайн кнопки выбора цвета блока в панели инструментов у текстового поля с форматированием.
- В desktop-клиенте на стандартной вкладке карточек “История заданий” удалена ссылка “открыть в отдельной вкладке” для открытия вкладки с представлением
TaskHistory(в web-клиенте версии 4.0 она уже не отображалась). Для вывода истории заданий в представлениях (в т.ч. для web-клиента) используйте контрол “Представление”, а стандартную вкладку скройте через расширение типа карточки. Пример такой настройки в тестовом типе карточкиCar(“Автомобиль”). - Удалено расширение для узла рабочего места
CardEditorExtension, которое использовалось в desktop-клиенте для вывода вкладки карточки по идентификатору из представления. Расширение не использовалось в web-клиенте. - В web-клиенте обновлен дизайн файловых контролов.
- Добавлена документация по API web-клиента с описанием модулей (пространств имён), типов, свойств, функций, и с примерами использования. В документации по системе ссылка доступна из раздела “Документация по Web API” на вкладке “Разработчику”. В архиве со сборкой актуальная документация расположена в папке
WebApiDocs, из неё откройте файлindex.htmlв браузере (утилитаDocServeдля этого не требуется, в отличие от папкиDocs). - Сотрудник, берущий задание в работу, теперь записывается в список связанных с заданием ролей как дочерний к первой записи из тех, к которым оно относится по каждой из имеющихся у него функциональных ролей, если в списке связанных с заданием ролей он не представлен своей персональной ролью.
- В
webbiдобавлена возможность считывать содержимое конфигурационного файла из стандартного потока ввода (stdin) при помощи задания ключа-cstdin. Пример использованияtadmin PrintJson ../webbi/app.json -q|./webbi -cstdin. - На странице
/checkдля сервисаwebдобавлен вывод кода сервераServer code, указанного в конфигурационных файлахapp*.jsonпо ключу"ServerCode". - Добавлены трансформер
IConfigurationStorageTransformerи загрузчикIConfigurationItemSourceLoaderдля конфигурационных файловapp*.json, значения для которых получают изRedis. Подробнее см. в разделе документации Использование Redis. - Добавлен трансформер
IConfigurationStorageTransformerдля строки подключения в конфигурационном файлеapp*.json, чтобы получить данные для подключения к базе данных из секретаHashicorp Vault. Подробнее см. в разделе документации Использование Hashicorp Vault для формирования строки подключения к базе данных. - Добавлен раздел документации Использование Hashicorp Vault для хранения логинов и паролей в строках подключения, описывающий настройку хранилища секретов Hashicorp Vault для указания логина и пароля к базе данных PostgreSQL в конфигурационных файлах app.json.
- В web-клиенте обновлён дизайн диалогов.
- В web-клиенте для аннотаций pdf добавлен тип аннотации “Окружность”.
- В web-клиенте для аннотаций pdf добавлена возможность группового выделения.
- В web-клиенте для аннотаций pdf добавлена возможность изменения размера превью страниц.
- Для трассировки серверов приложений добавлены специальные группы
*иALL, включающие в себя все доступные источники трассировки. - Для трассировки серверов приложений добавлены фильтрации по названию типа карточки и по идентификатору универсального запроса.
- Для серверов приложений добавлена возможность трассировать операции с файлами в карточках с фильтрацией по идентификатору файла
FileIDи по типу файлаFileTypeID,FileTypeName. - В web-клиенте общие теги больше не обозначаются иконкой. Теперь используется цветовая индикация в виде боковой полосы, которая в два раза шире обычной.
- Добавлен загрузчик
IConfigurationItemSourceLoaderдля конфигурационных файловapp*.json, который позволяет включать через директиву include содержимое файлов, зашифрованных по алгоритмуAES256с использованием файлов сертификатов. Подробнее см. в разделе документации Использование зашифрованных файлов конфигурации. - В консольную утилиту
tadminдобавлены команды для шифрования и расшифрования файлов по алгоритмуAES256. Подробнее см. в разделе документации Команды для шифрования и расшифрования файлов. - В сообщение об ошибке “Невозможно изменить карточку. Требуется версия N, но в действительности версия M.” добавлен идентификатор карточки, к которому оно относится.
- В web-клиенте при добавлении файла в файловый контрол, поддерживающий категории, добавлена возможность выбора категорий из представления.
- Для конфигурационных файлов
app.jsonв директиве.includeфайлы, содержимое которых уже было обработано, не включаются повторно. Так, если файл с именемapp.jsonсодержит директивуapp*.json, то текущий файлapp.jsonне будет включён (что могло привести к зацикливанию). Чтобы при включении файлов не использовать такое поведение, укажите в директиве вместо строки"app*.json"объект{".files": "app*.json", "always": true}. В файлеapplocal-server.json, используемом для разработки расширений (в папкеSourceиз архива сборки), выполняется включение файлаapp-webdev.jsonс такой опцией. Подробнее см. в разделе Директива .include. - В представлении с удалёнными файлами добавлена красная подсветка для записей, относящихся к файлам, по которым произошла ошибка в ходе загрузки контента.
- В маршрутах в этапе “Согласование” изменено поведение при работе в маршруте при определении возможности выполнения перехода на доработку или продолжения выполнения маршрута. Теперь помимо этапов “Согласование” учитываются и этапы “Процесс согласования”.
- В маршрутах в шаблоне этапов “Возврат на доработку” теперь также учитывается состояние этапов “Процесс согласования”.
- В маршрутах и конструкторе бизнес-процессов в настройки этапа и действия “Доработка” добавлен параметр “Доступ на редактирование схемы согласования”.
- Добавлено разрешение “Редактирование схемы согласования” в правило доступа, которое позволяет сотруднику редактировать и создавать экземпляры схемы согласования в карточке.
- В web-клиенте в истории заданий переработаны подсказки, теперь подсказки открываются по нажатию кнопки.
- В web-клиенте доработана логика платформенных генераторов действий (определяющих доступные пункты меню) для контекстных меню представлений и контролов “Представление”. Теперь в таблицах, если контекстное меню вызывается от невыделенной строки, то действия будут генерироваться в контексте этой строки, причём сама строка выбрана не будет. Если контекстное меню вызывается от выделенной строки, то действия будут генерироваться в контексте всех выделенных на момент генерации строк.
- В web-клиенте в компактном режиме реализован сворачивающийся быстрый поиск представления. По умолчанию свернут в кнопку, при раскрытии заменяет собой заголовок представления.
- Добавлены настройки “Системный” и “Порядок” для категорий файлов. Системные категории файлов нельзя выбрать в представлении
FileCategoriesFiltered, а также такие категории нельзя назначить файлам с клиента. Настройка “Порядок” отвечает за порядковый номер категории при отображении их на клиенте. Теперь категории сортируются по полю “Порядок”, а для категорий с одинаковым порядком - по алфавиту. - В web-клиенте для аннотаций pdf добавлена поддержка работы со страницами, перевернутыми на углы 90, 180, 270.
- Везде, где доступны настройки маппинга представления, добавлена возможность указывать “Формат текста”, если тип поля у привязки – “Поле карточки”. В случае указания в поле карточки идентификатора из комплексной колонки можно использовать стандартные правила форматирования строк с применением специальных указателей для размещения колонок комплексной колонки.
- Везде, где доступны настройки маппинга представления, добавлена возможность указывать “Оператор сравнения” для всех вариантов маппинга, где могут быть доступны какие-либо операторы сравнения, кроме
EqualsTo. - В настройках маппинга представления для типа поля у привязки “Поле карточки” добавлена возможность привязки к коллекционным секциям. При обработке такого поля система передаёт в параметры представления список значений по всем записям коллекционной секции. При обработке внутри формы редактирования строки передаётся значения только текущей строки. Если же внутри формы редактирования строки используется маппинг на дочернюю коллекционную секцию (секцию в которой есть ссылка на родителя), то передаются только значения строк, у которых родителем является текущая строка.
- При ошибке во время получения содержимого файла карточки теперь создаётся карточка “Ошибка” с исходным исключением, которое не передаётся пользователю, когда включена настройка
"SecureServerStackTrace": trueв конфигурационных файлахapp.json. - При выполнении компиляции скриптов конструктора бизнес-процессов и кнопок бизнес-процессов через команду
tadmin Compileв сообщения компилятора добавлен вывод имени шаблона бизнес-процесса. - Добавлены новые виды плейсхолдеров
{e:...}и{te:...}, позволяющие вывести результат выполнения выражения, указанного в плейсхолдере, в качестве значения плейсхолдера. Подробнее смотрите в руководстве администратора. - В задание “Доработка”
KrEditInterjectдобавлено поле “Комментарий”, а в одноимённом заданииKrEditполе “Комментарий” переименовано в “Комментарий к циклу маршрута”. - В web-клиенте удален глобальный тип
guid. Вместо него теперь используется типstring. - В карточках типа “Правило доступа” для расширенных настроек прав доступа к файлам добавлены параметры “Допустимое количество файлов” и “Обязательный файл”. Подробнее см. в руководстве администратора.
- В маршрутах для вторичных процессов, работающих в режиме “Кнопка” или “Действие”, добавлена возможность указания названия и идентификатора вторичного процесса в сообщении о недоступности для выполнения.
- При обработке директивы
.includeв конфигурационных файлахapp.jsonвключение файлов в очередь обработки теперь осуществляется “вглубь”. Например, пусть файлapp.jsonвключает файлыapp1.jsonиapp2.json, а файлapp1.jsonвключаетother1.jsonиother2.json. Тогда обработка включаемых файлов будет выполнена в порядке:app.json,app1.json,other1.json,other2.json,app2.json. Подробнее см. в разделе Директива .include. - В сообщение об ошибке “Тип карточки использует типы документов, но в карточке не указан тип документа.” добавлена информация о типе карточки и её идентификаторе.
- Добавлена поддержка редактирования параметров задания (дайджест и плановая дата) в любом типе задания. В типах задания появился флаг “Разрешить редактирование параметров задания”. При наличии этого флага и разрешения на изменение дайджеста и плановой даты задания в любой из функциональных ролей, пользователю будет доступен вариант завершения “Изменить параметры задания”.
- Добавлена обработка события Workflow Engine “Изменить параметры задания” и соответствующий сигнал
ModifyTaskParameters. - Добавлен плейсхолдер
{today}. В отличие от плейсхолдера{date}, плейсхолдер{today}всегда возвращает текущую дату/время, тогда как в плейсхолдере{date}возвращаемая дата/время могут зависеть от контекста и возвращать, например, дату документа как в именах последовательностей для выделения номеров. - Для кнопок вторичных процессов добавлены настройки “Алиас”, “Отображать на тулбаре” и “Скрывать из интерфейса”, подробнее см. раздел документации Карточка “Вторичный процесс”: режим “Кнопка”.
- У веб-сервиса
webbiудалён роут/switchперевода системы в режим технического обслуживания. - У веб-сервиса
webbiудалён не используемый более ключ-unrestricted. - В web-клиенте добавлена возможность в предварительном просмотре отправлять файлы PDF на печать.
- Во всех записях истории действий добавлен вывод информации об устройстве, с которого выполнено обращение к компонентам платформы. Если обращение выполнено не в рамках HTTP-запроса, или HTTP-запрос инициировал фоновую задачу и был завершён, то устройством считается то, на котором выполняется дальнейшая обработка.
- В представление “История действий” добавлены параметры “IP-адрес” и “Компьютер”, позволяющие фильтровать все записи истории по соответствующей информации.
- Добавлена настройка
MaxParallelBackgroundTasksвеб-сервиса для указания ограничения на количество параллельно выполняемых фоновых заданий, для которых указано, что они могут выполняться параллельно. - В web-клиенте добавлена возможность затемнять фон приложения в диалоговом окне настроек “Фон и тема”.
- В web-клиенте добавлена возможность позиционировать фон приложения в диалоговом окне настроек “Фон и тема”.
- В web-клиенте переработаны компонент и модель представления для контрола “Дата и время”.
- В маршрутах и конструкторе бизнес-процессов в этапы и действия “Согласование” и “Подписание” добавлен параметр “Не создавать запись “Возврат на доработку” в истории заданий”. Параметр позволяет отключить создание указанной записи в истории заданий при возврате на доработку.
- В web-клиенте увеличен размер аватара пользователя на главной панели приложения.
- В web-клиенте добавлена возможность в предварительном просмотре отправлять текстовые файлы, картинки и html на печать.
- Теперь в контроле “Список файлов” категории файлов по умолчанию будут отсортированы в соответствии с заданным порядковым номером, а в пределах одного номера - по алфавиту.
- В web-клиенте добавлена возможность подписания больших файлов.
- В web-клиенте на мобильных устройствах пункты меню файлового контрола для работы с “OnlyOffice” скрыты.
- В метаинформацию сабсета представления добавлено свойство
SortingColumns, позволяющее указать колонки для программной сортировки по результатам, полученным из СУБД. Если поле не заполнено, то значения сабсета выводятся в соответствии с порядком строк, возвращённым из SQL. - В метаинформацию сабсета представления добавлено свойство
NullRefCaption, которое позволяет указать строку локализации для отображения пустого значения сабсета, в колонкеRefColumnкоторого возвращено NULL. Если не указано, то по умолчанию будет использовано значение, возвращённое в колонкеCaptionColumnсоответствующей строки, или локализованная строка “(пусто)”, если это значение является пустой строкой или если указанNormalizationSource. - В метаинформацию колонки представления добавлено свойство
NullValue, значение которого будет подставлено вместоNULLв строки с результатами выполнения представления на место этой колонки (на сервере). Если не задано, то исходное значениеNULLсохраняется. Тип значения приводится к типу колонки в инвариантной культуре. Для бинарных колонок выполняется парсинг из формата строкиbase64. Подстановка выполняется после нормализации, если она задана для этой колонки. - Если в контекстных ролях не указана колонка с именем сотрудника, то это имя будет получено из справочника нормализации (по умолчанию справочник
Users, его можно переопределить в серверном API через объектIRoleNormalizationInfo). Ранее в таком случае имя оставалось незаполненным. - В представлении “История действий” удалён параметр фильтрации “Имя сотрудника”. Используйте параметр с автодополнением “Сотрудник”, в котором поиск по неточному имени возможен в справочнике сотрудников, доступном через троеточие.
- При изменении пароля через карточку сотрудника пароль отправляется в формате
base64. ПолеPasswordRepeatпри отправке имеет значениеnull. - В web-клиенте переработаны компонент и модель представления для контрола “Метка”.
- В web-клиенте в предварительный просмотр добавлена поддержка файлов
tsx,ts,js,jsxи подсветка синтаксиса. - В диалоге “Структура карточки” при нажатии на кнопку “Сохранить в файл” структура карточки теперь сохраняется в формате
json. - В web-клиенте для удобного предпросмотра файлов добавлены кнопки переключения между файлами.
- В конструктор бизнес-процессов в логику асинхронной обработки добавлена поддержка механизма повторного запуска асинхронной обработки сигнала. Подробнее см. в разделе Асинхронная обработка сигнала.
- В конструктор бизнес-процессов в настройки связи добавлен флаг “Повторить асинхронную обработку сигнала после ошибки”, позволяющий включить повторный запуск асинхронной обработки сигнала после возникновении ошибки его обработки.
- В конструктор бизнес-процессов в действие “Таймер” добавлен флаг “Повторить асинхронную обработку сигнала после ошибки”, позволяющий включить повторный запуск асинхронной обработки сигнала после возникновении ошибки его обработки.
- Выпадающий список типов колонок в TessaAdmin и SchemeEditor теперь выводится отсортированным по имени типа.
- В конструктор бизнес-процессов в логику асинхронной обработки добавлена поддержка механизма синхронизации обработки. При включении настройки две асинхронные обработки, выполняемые с синхронизацией по одному и тому же объекту синхронизации, никогда не выполняются одновременно и всегда будут выполнены последовательно вне зависимости от того, выполняется ли обработка сигнала для одного и того же процесса или для разных.
- В конструктор бизнес-процессов в настройки связи добавлены настройки “Синхронизировать обработку сигнала при асинхронной обработке” и “Объект синхронизации”, позволяющие настроить механизм синхронизации асинхронной обработки.
- В конструктор бизнес-процессов в действие “Таймер” добавлены настройки “Синхронизировать обработку сигнала при асинхронной обработке” и “Объект синхронизации”, позволяющие настроить механизм синхронизации асинхронной обработки.
- В настройку типа карточки был добавлен флаг “Разрешить теги”, управляющий возможностью использования тегов в карточках данного типа.
- Добавлена очистка поля “Комментарий к циклу согласования” при создании копии карточки.
- В карточку Автомобиль добавлено поле Телефон покупателя, для которого установлена маска для номера телефона.
Консольная утилита tadmin¶
- Добавлена команда UpgradeWorkflowProcesses для обновления версий действий в экземплярах и шаблонах бизнес-процессов.
- Для команды
ManageRolesдобавлены субкомандыRecalcSmartRoleGeneratorsиRecalcAllSmartRoleGeneratorsдля перерасчёта генераторов умных ролей. Подробнее см. Управление ролями в части замещений и пересчёта ролей. - В команду
PrintComponentsдобавлены параметры:-rдля опционального указания строки подключения к Redis,-scдля опционального указания кода сервера, используемого при подключении к Redis (если не указаны, будут использованы настройки из конфигурационного файлаapp.json). Также добавлен стандартный параметр-q. Подробнее см. в разделе Команда просмотра состояния компонентов. - В команду
GenerateCommandKeyдобавлены параметры:-rдля опционального указания строки подключения к Redis,-scдля опционального указания кода сервера, используемого при подключении к Redis (если не указаны, будут использованы настройки из конфигурационного файлаapp.json). Подробнее см. в разделе Команда генерации ключей. - Для команды
DeleteCardsдобавлен параметр-b, при указании которого карточки удаляются с возможностью восстановления администратором. - Добавлена клиентская команда
PrintLocksClient, с помощью которой можно вывести список идентификаторов заблокированных объектов из Redis для указанных групп. Подробнее см. в разделе Консольная административная утилита tadmin. - Добавлена команда
PrintLocks, с помощью которой можно вывести список идентификаторов заблокированных объектов из Redis для указанных групп. Подробнее см. в разделе Команды для прочих административных функций. - Добавлена команда
DeleteLocks, с помощью которой можно удалить блокировки заблокированных объектов из Redis. Подробнее см. в разделе Команды для прочих административных функций. - Добавлена клиентская команда
DeleteLocksClient, с помощью которой можно удалить блокировки из Redis для указанных групп. Подробнее см. в разделе Консольная административная утилита tadmin. - Добавлена клиентская команда
PrintComponentsClient, с помощью которой можно получить актуальную информацию по всем известным компонентам системы из внешнего контура. Подробнее см. в разделе Команда просмотра состояния компонентов. - Переименованы команды:
GenerateCommandKey->GenerateDiscoveryKey,PrintComponents->PrintDiscoveryInfo,ViewKey->ViewDiscoveryKey. - В команде
PackageAppизменена обработка необязательного параметра-ico. Теперь в данном параметре указывается путь к файлу.pngс иконкой приложения, а по умолчанию выполняется поиск файла с именем запускаемого приложения, например,TessaClient.png. Если файл не найден или некорректный, то публикация выполняется без иконки. - В файле
app.jsonконсольной утилиты теперь указан Management endpoint, который равен по умолчанию значению"maintenance", что соответствует значению по умолчанию вapp.jsonсервисаwebbi. Это позволяет не указывать параметр-wm:managementдля команд, использующих механизмы управления компонентами, таких как команды DeleteLocksClient, PrintLocksClient и др. - Переименован скрипт
TypeFontsFixнаTypeSettingsFix. Также теперь он выполняет исправление других настроек блоков и контролов. - Для команды tadmin ConvertCards удалён параметр
-mode. Преобразование карточек и библиотек карточек в форматы, совместимые с предыдущими версиями платформы, более не поддерживается. - Для команды tadmin ConvertConfiguration удалён режим
-mode:Downgrade. Преобразование файлов конфигурации в форматы, совместимые с предыдущими версиями платформы, более не поддерживается. - Для всех команд и скриптов удалён параметр
-i:instanceName, определяющий имя экземпляра сервера. Использование нескольких экземпляров для одного сервиса более не поддерживается. - Справка по командам на Windows теперь выводит ключи символом
-вместо/. При этом по-прежнему возможно использовать оба символа. - Для команд
SendCommandиSendCommandClientс параметромEnableTracingдобавлены аргументы-pp:tn=cardTypeNameи-pp:r=requestType, позволяющие фильтровать трассировку по названию типа карточки и по идентификатору универсального запроса. - В команды
tadminDeleteLocksClientиPrintLocksClientдобавлен параметр-sc, позволяющий задавать код сервера. Если параметр не задан, то будет использовано значениеServerCodeиз конфигурационного файла утилитыtadmin. - Удалена команда
Maintenance. Для перевода системы в режим технического обслуживания используйте командуtadminSendCommand. - Для команды tadmin ConvertConfiguration добавлена поддержка конвертации формата для файлов поисковых запросов
.jquery. - Для команды
Scriptдобавлен скриптUpgradeSearchQueriesSql, который обновляет версию формата метаданных поисковых запросов в базе данных. - Добавлена команда для исправления типов карточек, файлов, диалогов и заданий tadmin RepairTypes.
Новые версии библиотек¶
.NET 8.0.15BarcodeLib 3.1.5BitMiracle.LibTiff.NET 2.4.660CAdESLib 1.6.5CsvHelper 33.0.1DocumentFormat.OpenXml 3.3.0Hardcodet.NotifyIcon.Wpf 2.0.1HtmlAgilityPack 1.12.0HtmlSanitizer 9.0.876iTextSharp.LGPLv2.Core 3.7.1ITfoxtec.Identity.Saml2.MvcCore 4.15.3Kerberos.NET 4.6.77linq2db 5.4.1LiteDB 5.0.21MailKit 4.11.0Microsoft.CodeAnalysis.CSharp.Workspaces 4.13.0Microsoft.Data.SqlClient 6.0.1Microsoft.IdentityModel.Protocols.OpenIdConnect 8.8.0Microsoft.NET.Test.Sdk 17.13.0NetOfficeFw.Word 1.9.7NLog 5.4.0NLog.Web.AspNetCore 5.4.0Npgsql 8.0.7NTwain 3.7.4NUnit 4.3.2NUnit3TestAdapter 5.0.0OpenCvSharp4 4.10.0.20241108OpenTelemetry 1.11.2OpenTelemetry.Exporter.OpenTelemetryProtocol 1.11.2OpenTelemetry.Extensions.Hosting 1.11.2Otp.NET 1.4.0PDFsharp-wpf 6.1.1Quartz 3.14.0SixLabors.ImageSharp.Drawing 2.1.5SkiaSharp 3.116.1SkiaSharp.QrCode 0.7.0StackExchange.Redis 2.8.31Swashbuckle.AspNetCore 8.1.1Swashbuckle.AspNetCore.Newtonsoft 8.1.1TesseractOCR 5.4.2ZXing.Net 0.16.10
Изменения API¶
- В web-клиенте обновлена версия языка TypeScript 5.7. Используйте новые возможности, появившиеся в языке, при разработке расширений web-клиента.
- При запросе контента с клиента через стандартные контроллеры предпочитаемое имя файла, возвращаемое методом
CardGetFileContentResponse.TryGetSuggestedFileName(), теперь всегда по умолчанию определяется для физических файлов в соответствии с актуальным именем файла в базе данных, т.к. указывается свойствоCardGetFileContentRequest.SuggestFileName = true. Например, это позволяет скачать файл по ссылке, в которой не указано имя файла, а указан только его идентификатор. - В интерфейс
ITwoFactorAuthHandlerдобавлено свойствоAttemptTimeout. Используйте его, чтобы задать время жизни для попытки входа пользователя в систему при использовании определённого типа 2FA. Актуально для типов 2FA, которые используют уведомления для отправки кода подтверждения. - В контекст
TwoFactorAuthContextдобавлено опциональное свойствоExistentAttemptID, которое хранит текущий идентификатор попытки входа пользователя в систему. Используйте его, если необходимо выполнить проверку, что двухфакторная аутентификация для пользователя уже была инициирована. - В интерфейс
ITwoFactorAuthRepositoryдобавлены методы для работы с информацией о попытке входа пользователя в систему для определённого типа 2FA. - Добавлен объект
ITwoFactorAuthPermissionsManager, отвечающий за проверку доступа к настройкам двухфакторной аутентификации пользователя. - Добавлен интерфейс обработчика обновлений действий на новую версию
IWorkflowEngineActionUpgradeHandler. Подробнее см. обновление версий действий. - Добавлен интерфейс
IWorkFlowEngineTileContext, представляющий контекст компиляции для условий кнопок бизнес-процесса, подробнее см. раздел документации API скриптов в условиях для кнопок бизнес-процессов. - Изменён интерфейс
IWorkflowEngineTileCompiled. В методSetDependenciesдобавлены параметры:processTemplateID- идентификатор процесса, иcontext- объект контекста компиляции для скриптов условий кнопок бизнес-процесса. Добавлены методыTryGetProcessInstanceAsyncиGetAllProcessInstancesAsyncдля получения экземпляров бизнес-процесса внутри скриптов условий кнопок бизнес-процесса. Подробнее см. раздел документации API скриптов в условиях для кнопок бизнес-процессов. - В руководство разработчика добавлен пример реализации контроллера с REST-методами для работы с типом контента
multipart/form-data. Подробнее см. REST-методы для работы с multipart. - Изменён интерфейс
IWorkflowTileCommand. Из методаOnClickAsyncудалён неиспользуемый параметрtile. - Изменён интерфейс
ITreeNode, удалён неиспользуемый методClone. - Для объекта
IFileConverterRequestдобавлены методы-расширенияSetPdfFilterиTryGetPdfFilter. Они позволяют установить и получить дополнительные параметры командной строки, которые используются при конвертации документа вpdfпосредствомunoconv. - Добавлены опциональные параметры
selectPdfVersionиuseTaggedPDFв методе контроллераapi/v1/converter/operations/{id}для веб-сервиса Jinni. - В объект с параметрами для генерации контекста проверки прав доступа
KrPermissionsCreateContextParamsдобавлен параметрServiceType, определяющий тип сервиса, от которого был получен текущий объект запроса, для которого выполняется проверка прав доступа. - В токен прав доступа
KrTokenдобавлено свойствоServerOnly, при установке которого токен прав доступа учитывается только при проверке прав доступа для серверных запросов. - Добавлена клиентская регистрация для объекта
IOcrAsyncService. Используйте её, если необходимо работать с операциями OCR из клиентского приложения. - Добавлен класс
Tessa.Platform.ConfigurationHelper, предоставляющий возможности получить и изменить расположение конфигурационных файлов. Используйте его методInvalidateAll()для сброса кэша значений для всех конфигурационных файлов, используемых в платформе (например, при изменении настроек для определения путей или при изменении соответствующих переменных окружения). - Тип свойства
ITessaViewRequest.Parameters(переименовано изValues) изменён наIList<RequestParameter>. - Изменена сигнатура статического метода
CardComponentHelper.GetContentContextsAsync. Теперь, если параметрfileIDsне был передан, то метод будет выполнять получение контекстов для всех файлов карточки. - Добавлена стратегия
ICardFileDeleteExecutionStrategyдля выполнения запросов на удаление и восстановление восстановления карточки файла. - В стратегию
ICardFileVersionStrategyдобавлен новый методGetFilesAsyncдля получения списка идентификаторов файлов, относящихся к карточке. - В класс
CardFileдобавлено свойствоDeletionModeтипа перечисленияCardFileDeletionMode. Свойство содержит способ удаления файла. Используйте его, если необходимо удалить файл с возможностью восстановления или восстановить удалённый файл. Пример использования см. в руководстве разработчика. - В метод расширения
FileExtensions.RemoveWithNotificationAsyncдобавлен опциональный параметрwithBackup(по умолчаниюfalse). Он показывает, что файлы удаляются с возможностью восстановления. - Добавлено новое значение
RemovedWithBackupв перечисленииFileNotificationType. Оно показывает, что файл был удалён с возможностью восстановления. - Изменена сигнатура метода-расширения
CardExtensions.HasContent. Теперь метод принимает объект типаCardFileвместоCardFileState. - После выполнения действия бизнес-процесса “Добавить файл по шаблону” в объекте контекста будет храниться дополнительная информация о создаваемом файле и шаблоне. Подробнее см. в разделе документации Описание действий бизнес-процессов. Добавить файл по шаблону..
- Добавлен объект
IRedisConnectionStringCleanerдля очистки переданной строки подключения к Redis от пароля и другой чувствительной информации. Используйте на сервере перед логированием строки подключения или её выводом на консоль. - Добавлен объект
IDbConnectionStringCleanerдля очистки переданной строки подключения к базе данных от пароля и другой чувствительной информации. Используйте на сервере перед логированием строки подключения или её выводом на консоль. - После выполнения обработчика этапа “Создать файл по шаблону” в объекте контекста будет храниться дополнительная информация о создаваемом файле и шаблоне. Подробнее см. в разделе документации Примечание для обработчика этапа “Создать файл по шаблону”.
- Добавлен интерфейс
ITopicParticipantsProviderдля получения всех участников топика и признака их подписки на топик. - Добавлен интерфейс
IStorageContentConverter, позволяющий реализовать конвертер для выгружаемого содержимого карточек. Подробнее см. в разделе документации Конвертеры содержимого полей карточек. - В web-клиенте добавлен новый тип диалога
controlsс фоном, соответствующим фону карточки, но без рамки, используемой в типеcard. - В web-клиенте изменён способ создания модели представления для компонента окна логина. Теперь модель представления регистрируется в DI-контейнере и возвращается как зависимость.
- Добавлены новые типы расширений для подсистемы выражений:
IExpressionInterpreterExtensionиIExpresionExtension. Подробнее про данные типы расширений см. раздел Расширения подсистемы выражений. - Добавлена реализация интерфейса
IRedisInitializer- классRedisInitializerChecker, позволяющий проверить инициализированность данных системы в Redis вместо выполнения их полноценной инициализации. - В web-клиенте добавлена поддержка пользовательских элементов меню для
useDropdownиuseCurtainDropdown. - В контекст проверки прав доступа
IKrPermissionsManagerдобавлено свойствоPreviousTokenValidationResult, которое возвращает результат валидации токенаPreviousToken. СвойствоPreviousTokenтеперь передаётся всегда, когда оно было передано в контекст проверки прав доступа, а не только при его успешной валидации. - В web-клиенте добавлена возможность определять кастомные роуты (route), отличные от стандартных роутов для карточек
/cardи рабочих мест/view. Подробнее в разделе документации Роутинг. - В интерфейс
IRedisConnectionProviderдобавлена перегрузка методаGetOpenedConnectionAsyncс параметромrequireInitialization, регламентирующим, необходимо ли проверять инициализированость данных системы в Redis. Существующий методGetOpenedConnectionAsyncиспользует введённую перегрузку со значениемrequireInitialization = true. Значениеfalseрекомендуется использовать в тех местах системы, где не требуется гарантии полной инициализации данных, например, в сервисах проверки наличия соединения сRedisили работы с каналами. В остальных случаях используйте значениеrequireInitialization = trueили метод без этого параметра. - В стратегию загрузки состава ролей
IRoleGetStrategyв методGetUsersAsyncдобавлен необязательный параметрignoreDeputies, позволяющий загружать состав ролей без учёта заместителей. - В менеджер управления умными ролями
ISmartRoleManagerдобавлен методRecalcSmartRolesAsync, позволяющий запустить перерасчёт сразу нескольких умных ролей. - Добавлен класс
ConcurrentObjectPool<T>, предоставляющий пул объектов по аналогии сObjectPool<T>, но являющийся потокобезопасным. - Изменено API по созданию и использованию объектов
IWebProxy. Добавлена возможность определения обработчиковIWebProxyXyzHandler, влияющих на подготовку запроса к отправке и обработку ответа на запрос. Пространства имён для соответствующих типов изменены сTessa.Platform.RuntimeнаTessa.Platform.Web. Изменены флагиWebRequestFlagsи сигнатура методаWebProxy.SendAsync<T>. Обратитесь к разделу руководства Запросы к веб-сервисам посредством прокси-объектов WebProxy. - Доработан процесс обновления информации об авторе в задании и соответствующей ему записи в истории заданий. Теперь если автор задания не был указан вручную, в таблице
Tasksпомимо информации об авторе, выбранном из списка связанных с заданием ролей, будет записан идентификатор строки изTaskAssignedRoles, по которой был выбран автор. При удалении изTaskAssignedRolesзаписи с указанным идентификатором - будет автоматически перерассчитан новый автор и записан в задание и связанную с ним запись в истории заданий. - В
CardTask.Flagsтеперь можно указать флагCardTaskFlags.RecalculateAuthor, который принудительно запустит процесс пересчёта автора, указываемого в задании и соответствующей ему записи в истории заданий, на основе информации изTaskAssignedRoles. - Добавлен интерфейс
IUserNamingStrategy, с помощью которого можно получить значения вычисляемых полей с именами пользователей. - В карточку автомобиля была добавлена кнопка “Получить таблицу”. Реализованная логика при нажатии на кнопку является примером того, как можно получить данные, сгенерированные на сервере случайным образом, с помощью запроса
CardRequestили метода контроллера, и вывести их в типе “Диалог” в виртуальной таблице. Реализация примера в серверной части доступна в расширенииAbTestCarTableRequestExtension.csи в контроллереAbTestController.cs. Реализация в коде web-клиента есть в UI-расширенииabCarUIExtension.ts(в методеinitializedв месте добавления кнопки тулбараCarTableRequestи в методеexecuteCarTableRequest) и в клиентском сервисеabTestServiceClient.ts. - В web-клиенте свойства
border,bottom,column,gap,height(включаяmin,max),left,padding,right,row,size,top,width(включаяmin,max) вместо конкретных единиц измерений (px,em, `rem) теперь используют юниты и проценты. - Добавлен пример создания нового типа запроса к API нумерации со стороны web-клиента и его обработки со стороны сервера. Обратитесь к разделу руководства Запросы к API нумерации с клиента.
- В web-клиенте в типе
CardEditorModelсеттер свойстваcardModelзаменён на асинхронный методsetCardModel. - Для таблицы
TableGridViewModelв desktop-клиенте иTableGridViewModelBaseв web-клиенте добавлен методSetGrouping, позволяющий задать группировку по колонке с возможностью дополнительно указать, из какой колонки будет браться имя группы. - Для объекта
TopicNotificationServiceдобавлено два виртуальных методаGetRecipientsAsyncиSendNotificationCoreAsync, позволяющие переопределять логику работы в наследниках. - В web-клиенте все объектные модели, связанные с предпросмотром документа, теперь доступны по пути
tessa/ui/preview. - В web-клиенте добавлен новый тип расширения
FilePreviewExtension, с помощью которого можно переопределить поведение предпросмотра по умолчанию. - В web-клиенте у типа
PreviewManagerметодpreviewToolFactoryзаменён на событиеonPreviewerResolve. - Для методов
RemoveRolesAsyncиRemoveParticipantsAsyncинтерфейсаIForumProviderдобавлен параметрserviceMessageMode = ForumServiceMessageMode.Enabled, позволяющий управлять поведением сервисного сообщения об удалении участников из топика. - В web-клиенте модели, относящиеся к
workflowиkrProcess, перенесены из неймспейсаtessa/workflowв@tessa/platform/workflow. - В web-клиенте тип
KrTypesCacheотмечен какdeprecated. Рекомендуется запрашивать типIKrTypesCacheиз DI. - В web-клиенте тип
KrStageTypeUIHandlerперенесён из неймспейсаtessa/workflow/krProcessвtessa/ui/workflow/krProcess. - В web-клиенте удалён компонент
LoadingOverlayWithPortal. Вместо него можно использовать компонентLoadingOverlay, который теперь отображается с порталом по умолчанию. Для отображения без портала необходимо передать значение свойстваnoPortal, равноеtrue. - В web-клиенте тип
BusinessCalendarServiceперенесен в@tessa/platformи доступен по запросуIBusinessCalendarService$из DI. - Улучшено получение зависимостей через конструктор контроллера, используя .NET DI (
IServiceProvider) для режима активацииControllerActivationMode.Unity(класс контроллера без атрибута[TessaController]или с атрибутом, не изменяющим режим активации на другой). Если параметр является опциональным (IService? service = null), то регистрация зависимости может отсутствовать, в этом случае будет подставлено значение параметраnull. Также допустимо использовать атрибут[FromKeyedServices(key)], чтобы определить ключ, по которому зависимость должна быть зарегистрирована (какAddKeyedScopedилиAddKeyedSingleton), но в пределах класса допустимо использовать лишь один ключ (или его отсутствие) для каждого типа параметра, получаемого из .NET DI. Для более сложных сценариев можно получить в конструктореIServiceProviderи запросить из него сервисы вручную, или же надо отказаться от режима активацииControllerActivationMode.Unity, указав атрибут[TessaController(ActivationMode = ControllerActivationMode.AspNetCore)]. - Для контроллеров добавлены методы-расширения
ControllerExtensions.ForbiddenиControllerExtensions.ForbiddenException, с помощью которых можно сформировать исчерпывающую информацию об ошибке с HTTP-кодом403 Forbidden. Подробнее можно прочитать в разделе Создание контроллера веб-сервиса на основе API TESSA. - Добавлен раздел документации Создание проектного менеджера прав на создание токена доступа к файлам по внешней ссылке, рассматривающий реализацию поддержки создания внешних временных ссылок.
- Добавлен интерфейс
ITempFileLinkProviderдля создания токенов доступа и временных ссылок на файлы и получения их содержимого. - Добавлен интерфейс
IFileContentPermissionManager, позволяющий установить права доступа на создание временной ссылки для карточек, чьи типы не входят в типовое решение. - Для UI-расширений форм диалога
IFormUIExtensionдобавлена поддержка методовFinalizingиFinalized, выполняющихся при закрытии формы. - В web-клиенте добавлена возможность создавать правила для нормализации настроек контролов. Задать правила можно с помощью методов
Normalization.instance.remove,Normalization.instance.replace,Normalization.instance.ignore,Normalization.instance.custom. - Свойство
CardTaskAssignedRole.ShowInTaskDetailsтеперьNullable<bool>. ЕслиShowInTaskDetails is null, то значение для записи, добавляемой в список связанных с заданием ролей, будет определено из значенияCardMetadataFunctionRole.ShowInTaskDetailsсоответствующей функциональной роли. - Добавлен интерфейс
IViewRequestValidator, позволяющий валидировать запросы к представлениям. - В API тестов в объект
ScopeContextдобавлен методGetNamedLock, позволяющий получить объектAsyncLock, с помощью которого можно синхронизировать выполнение логики при обработке параллельно выполняющихся тестов внутри одной области выполнения. - Регистрация консольных команд в методе
CommandContext.AddCommand()теперь выполняется без перечисления типов аргументов. - Добавлены интерфейс
IDocLoadBarcodeManagerи классDocLoadBarcodeManagerдля объекта, выполняющего поиск штрих-кодов в модуле потокового сканирования. Вы можете переопределить регистрацию в Unity, чтобы повлиять на алгоритм распознавания. - Для расширений типов
CardTypeExtensionTypeтеперь можно передать в конструкторе опциональную функциюenumerateVisitorObjectsFuncAsync, которая возвращает дополнительные объекты для их обхода посредствомICardTypeVisitor(см. методCardType.VisitAsync). Так, для расширения типа “Таблица в представлении” функция возвращает контролCardTypeTableControl, содержащий пользовательский интерфейс, настраиваемый по кнопке “Колонки и форма”. - Изменён интерфейс
IObjectTransactionLockingStrategy. Добавлен методReleaseObjectAsync, который освобождает блокировку объекта. В методObtainReaderLockAsyncдобавлен параметрreleaseOnlyIfEscalated, определяющий, что блокировку необходимо освободить только если тип блокировки является эскалированной блокировкой или блокировкой на запись. - Изменён интерфейс
ITransactionScopeContext. Добавлено свойствоIsValuable, определяющее, является ли контекст области выполнения транзакции значимым. - Изменён интерфейс
IObjectTransactionLockingStrategy. Из методаExecuteInWriterLockAsyncудалён неиспользуемый параметрreleaseLock. - В классе
CardGetFileContentRequestбулевое свойствоSuggestFileNameзаменено на свойство-перечислениеSuggestFileNameMode. Используйте методShouldSuggestFileNameдля установки актуального значения свойстваSuggestFileNameMode. - В класс
CardGetFileContentRequestдобавлено булевое свойствоSuggestFileNameForVersion. Укажите его в запросе на получение контента файла, чтобы дать рекомендацию серверу по формированию предпочитаемого имени файла. - В ссылках на файлы
/links/fileи/links/htmlдобавлен булевый параметрsuggestFileNameForVersionсо значением по умолчанию, равнымfalse. Данный параметр используется, чтобы рекомендовать серверу формировать предпочитаемое имя запрашиваемого файла, как имя версии этого файла. - В атрибут
[Plugin]добавлены свойстваJsonNameиConfigResolver, позволяющие загрузить настройки плагинов через конфигурационный файлapp.jsonи через указание кастомного объекта-резолвера настроек. Подробнее см. раздел Расписание запуска плагина. - В объект
IOperationRepositoryдобавлен вариант методаStartFirst, принимающий в качестве параметра список типов операций. Метод позволяет запустить одну операцию любого из переданных типов. - В методе контроллера
api/v1/operations/start-first?type=uuidдобавлена поддержка передачи нескольких параметровtype. При передаче нескольких параметров система запустит операцию любого из переданных типов. - В пространтсво имён
Tessa.Platform.Pluginsдобавлен интерфейсIPluginHandlerдля создания обработчиков плагинов, которые могут функционировать внутри процесса веб-сервиса. Подробнее см. в разделе Разработка плагинов, обрабатываемых веб-сервисом. - В пространство имён
Tessa.Platform.Operationsдобавлен интерфейсIOperationHandlerдля создания обработчиков операций, применимых в плагинах, запускаемых в Chronos или внутри процесса веб-сервиса. - В пространство имён
Tessa.Platform.Schedulersдобавлен интерфейсISchedulerProcessorдля создания планировщиков задач, применимых в плагинах, запускаемых в Chronos или внутри процесса веб-сервиса. - Для скрипта
unoconvдобавлен опциональный параметр-u(--update-indexes), с помощью которого выполняется обновление ссылок в оглавлении перед конвертацией файла вpdf. По умолчанию значение такое обновление не производится. - Добавлен метод контроллера
api/v1/cards/get-file-template-multipartдля генерации файлов по шаблону, который возвращает тип данныхmultipart/form-data, содержащий объект ответа на запросCardGetFileContentResponseи содержимое сгенерированного файла. - В файлах
app.jsonдобавлена возможность указывать загрузчик.loaderвнутри директивы.include, когда вместо имени файла указывается хеш-таблица вида{ ".loader": "key" }, гдеkey- строка, по которой объектIConfigurationItemSourceLoaderзарегистрирован в DI-контейнерахIServiceCollection(для веб-сервисов) и Unity (для прочих приложений, загружающих конфигурацию). Также возможно указать{ ".loader.type": "AssemblyQualifiedTypeName" }, чтобы инстанцировать конструктором по умолчанию класс с квалифицированным именем типаAssemblyQualifiedTypeName, реализующий интерфейсIConfigurationItemSourceLoaderили имеющий метод с именемInvoke, независимо от регистраций в DI. Про директиву.includeчитайте в разделе Конфигурационные файлы и переменные окружения, а про разработку программных расширений - в разделе Расширения для обработки конфигурационных файлов. - Доработано API инициализации и загрузки конфигурации посредством
ConfigurationManager: класс теперь содержит статические члены, а пространство имёнTessa.Platform.Configuration- все прочие типы. Добавлены средства для переопределения и расширения директив и других механизмов загрузки, парсинга и иной обработки файлов конфигурации. При регистрации в контейнере Unity используйте методRegisterConfigurationManager(также вызывается вRegisterPlatformSharedDependencies), для асинхронной инициализации - методInitializeConfigurationManagerAsync, модификация API выполняется в классахRegistrator. При регистрации в контейнереIServiceCollection(актуально для веб-сервисов, в т.ч. для сервисаweb) используйте методAddConfigurationManager, одноимённый метод асинхронной инициализации дляIServiceProvider, модификация API выполняется в классахWebRegistrator. Менеджер конфигурации по умолчанию теперь заменяется вызовомConfigurationManager.SetDefault, его инвалидация для последующего пересоздания - вызовомConfigurationManager.InvalidateDefault, повторная загрузка конфигурации может быть инициирована экземплярным методомIConfigurationManager.ReloadAsync. Подробнее про разработку программных расширений читайте в разделе Расширения для обработки конфигурационных файлов. - Добавлены статические методы
ThrowIfDisposed, подключаемые как global using вместе с прочими методамиThrowIfXyz. Их использование аналогичноObjectDisposedException.ThrowIf. - Добавлен класс
UnityContainerCompanion, который упрощает освобождение зависимостей из DI-контейнера, регистрируемых вIUnityDisposableContainer, а также упрощает инициализацию конфигурацииIConfigurationManagerпри указании свойстваUseConfiguration = true. Рекомендуется все контейнерыIUnityContainerсоздавать и освобождать посредством этого класса. Примеры использования доступны в коде типового решения (см.Tessa.Extensions.Default.Console) и в документации, например, в разделе Разработка плагинов, обрабатываемых веб-сервисом. - Изменён интерфейс
ICardFileVersionInfo, добавлены свойстваState, хранящее состояние версии файла, иErrorInfo, хранящее информацию об ошибке. - Изменён интерфейс
ICardFileVersionStrategy, в методGetVersionAsyncдобавлен необязательный параметрwithStateAndError, позволяющий дополнительно получить информацию о состоянии и ошибке версии. - Свойство
ITessaViewRequest.SortingColumnsтеперь объявлено какList<SortingColumn>вместоICollection<ISortingColumn>. Также свойстваSortingColumnsиParameters(переименовано изValues) всегда не равныnull. - В web-клиенте при регистрации бандла с расширениями добавлена возможность указать порядок, в котором бандл будет подключаться. Свойство
orderв параметрах методаApplication.instance.registerBundle. - В web-клиенте изменён объект
GridViewModel. МетодsetSortingColumn, который переключает режим сортировки в UI, переименован вtoggleSortingColumn. Добавлен методsetSortingColumn, который устанавливает направление сортировки для указанного столбца. - Удалён метод
Tessa.Extensions.Default.Shared.Notices.NotificationHelper.ModifyEmailForMobileApprovers. Теперь обратные ссылки в письмах мобильного согласования формируются в расширениях на отправку уведомлений. Базовый класс расширения для процесса отправки уведомления мобильного согласования:MobileApprovalNotificationSendExtensionBase. - Изменён интерфейс
INotificationSendExtensionContext. Ограничен доступ к setter-ам свойств, изменение которых не подразумевается и/или является некорректным. - В объекте
ITessaViewRequestдобавлено свойствоInfo, в котором можно передавать дополнительную информацию для расширений. - Метод-расширение для подключения Swagger
c.IncludeXmlComments(Assembly, bool)переименован вIncludeXmlCommentsUsingActualLocation. МетодIncludeXmlCommentsс идентичной сигнатурой уже предоставляется в новой версии библиотекиSwashbuckle.AspNetCore. - В объектах-наследниках
StorageSerializableв перегрузкеSerializeCoreиспользуйте методWithOptions(list, x => x.SettingNameHere = true), посредством которого можно указать настройки по сериализации спискаIList<T>в Typed Json, чтобы, например, не указывать типы элементов именно этого списка или оптимизировать сериализацию списка строк, одинаковых по длине и типам элементов. - Для маршрутов удалена клиентская команда
IClientCommandHandler, зарегистрированная по константеDefaultCommandTypes.RefreshAndNotify, которая обновляла список заданий для desktop-клиента. - Добавлена возможность определить кастомные обработчики кнопок шаблонов бизнес-процессов с помощью создания классов, реализующих интерфейсы
IWorkflowEngineTileHandlerиIWorkflowEngineTileUIHandler, для добавления серверного и клиентского обработчика кнопок соответственно. - Добавлена возможность определить кастомные обработчики кнопок вторичных процессов с помощью создания классов, реализующих интерфейсы
IKrSecondaryProcessTileHandlerиIKrSecondaryProcessTileUIHandler, для добавления серверного и клиентского обработчика кнопок соответственно. - Удалён метод
IForumPermissionsProvider.GetEditPermissionsInfoAsync. Вместо него используйтеIForumPermissionsProvider.GetEditPermissionsInfoAsyncс параметромisMyMessage: true. - В web-клиенте удалено свойство
UIButton.buttonKey. - Добавлен объект
IKrTaskManager<T>, позволяющий реализовывать обработчики заданий, независимые от используемой для выполнения подсистемы. - Изменён интерфейс
IRefGroupTypeValuesRepository. Удалён неиспользуемый методUpdateAsync. - Изменён интерфейс
IRefGroupValuesRepository. Удалён неиспользуемый методUpdateAsync. - Для конвертации значения-перечисления из
storageиспользуйте метод-расширениеstorage.ConvertEnum<TEnum>("key"); вторым опциональным параметром можно передать значение, возвращаемое при невозможности выполнить конвертацию (по умолчанию это будет первым значением перечисленияdefault(TEnum)). Чтобы получитьnullпри невозможности выполнить конвертацию, вызовите метод-расширениеstorage.TryConvertEnum<TEnum>("key"). - В web-клиенте для объектов
TaskActionViewModelдобавлена возможность указывать настройки внешнего вида кнопок задания через свойствоbutton. - В web-клиенте для расширений
CardUIExtensionдобавлен новый методcreateCardModel, который вызывается в момент создания объектаcardModelи позволяет полностью подменить созданный объект. Используйте свойствоmodelToCreateв контексте расширения для переопределения создаваемой модели. - В web-клиенте в объект
IWorkplaceViewComponentдобавлено свойствоgroupContainer, позволяющее управлять группами в тулбаре представления. Пример использования см. в руководстве разработчика web-расширений. - В web-клиенте изменён интерфейс для аргументов события по модификации хэш-таблицы
DictionaryChangedEventArgs: вместо типа событияaddилиremoveв аргументах передаются добавленное и удаленное значение одновременно. - В web-клиенте был добавлен новый тип расширения
ShowValidationResultExtension, который вызывается при открытии диалогаshowNotEmptyи позволяет модифицировать диалог и списокValidationResult, который будет отображен пользователю. - Добавлен вспомогательный класс
OcrExtensionHelper, используемый в расширениях по работе с операциями OCR. - В подсистеме обработки плейсхолдеров добавлена возможность установки флага по ключу
PlaceholderHelper.CardIsPartialKeyвInfoконтекста замены плейсхолдеровIPlaceholderReplacementContext. Данный флаг определяет признак того, что карточка загружена не полностью. Важно устанавливать этот флаг, если необходимо посчитать плейсхолдеры в процессе сохранения существующей карточки с передачей объекта этой карточки вInfoконтекста замены плейсхолдеров. - Добавлен объект
IViewParameterFormatter, посредством которого выполняется форматирование текстового представления критерияCriteriaValueдля параметра представленияRequestParameterс учётом его метаинформацииIViewParameterMetadata. - Для параметров представлений
RequestParameterв значениях критериевCriteriaValueсвойствоTextтеперь заполняется только для ссылочных параметров (где в свойствеValueрасположен идентификатор значения). Для определения текста всех параметров, не являющихся ссылочными, используйте объектIViewParameterFormatter. Параметр является ссылочным, если метод-расширениеparameterMetadata.IsReference()возвращаетtrue(в текущей версии это происходит, когда заполнено его коллекцияRefSection). - В web-клиенте в функции
showViewModelDialogдобавлен опциональный параметрpopverProps, который позволяет управлять настройками отображения диалога в выпадающем элементе. - Изменён интерфейс
INumberLocationManager. Добавлен методTrySelectFullNumberAsync, который может получать строку с данными номера из базы данных. - Статические методы
ArgumentExceptionиArgumentOutOfRangeExceptionдобавлены в качестве подключаемых как global usings. Это методы для проверки аргументовThrowIfXyz, такие какThrowIfNegative,ThrowIfEqualи др. МетодыThrowIfNullOrEmptyиThrowIfNullOrWhiteSpaceиспользуют реализацию классаArgumentExceptionвместоTessa.Platform.GuardStatics, поэтому изменён текст сообщения об ошибке в соответствии с используемым в .NET. - В web-клиенте добавлена возможность управлять отображением горизонтальной прокрутки форм в случаях, когда содержимое обрезается. Для этого в
FormViewModelдобавлены свойстваdesktopScrollOverflowиmobileScrollOverflow. - Добавлена возможность прикладывать к почтовому уведомлению файлы из разных карточек. Для этого необходимо задать свойства
MailFile.CardID,MailFile.CardTypeIDиMailFile.CardTypeNameв соответствии со свойствами карточки, содержащей файл. - Улучшена поддержка nullability и других возможностей современной версии языка C# для различных библиотек платформы.
- В класс
CertificateDataдобавлено свойствоThumbprintдля использования отпечатка сертификата. - Добавлено отображение в отладке основных свойств классов, реализующий интерфейс
IValidationResultBuilder. - В web-клиенте добавлена возможность переопределить элементы загрузочного оверлея через объект
LoaderUIContainer. Подробный пример описан вexamples/38_loadingUIOverride.tsx. - В web-клиенте для расширений типа
ApplicationExtensionбыл добавлен методunknownRouteResolve, который вызывается, если не удалось определить обработчик маршрута приложения, и позволяет установить обработчик по умолчанию. - В маршрутах добавлена возможность задания идентификатора запускаемого процесса при отправке сигналов типов
KrConstants.KrStartProcessSignalиKrConstants.KrStartProcessUnlessStartedGlobalSignal. Идентификатор процесса можно задать путём его указания по ключуKrConstants.KrProcessIDв параметрах сигнала. - В маршрутах этап “Управление процессом” теперь сохраняет идентификатор запускаемого по сигналам
KrConstants.KrStartProcessSignalиKrConstants.KrStartProcessUnlessStartedGlobalSignalпроцесса вinfoтекущего процесса по ключуKrConstants.KrProcessID. - В web-клиенте в объектную модель ячейки грида, было добавлено свойство
tooltipSettingпозволяющее управлять типом отображаемых подсказок. - Классы регистраторов теперь могут переопределять методы
FinalizeRegistrationAsyncвместоFinalizeRegistrationдля асинхронной финализации. РеализацияFinalizeRegistrationAsyncпо умолчанию вызывает синхронный методFinalizeRegistration. - Соединение с Redis на сервере теперь устанавливается при инициализации контейнера Unity (в цепочке регистраторов в методах финализации
IRegistrator.FinalizeRegistrationAsync, если зарегистрирована зависимостьIRedisConnectionProvider). Если Redis недоступен, то соответствующие плагины Chronos не запускаются, а веб-сервис запускается, возвращая ошибку Redis при выполнении любых запросов для контроллеров, использующих контейнер Unity, или статусUnhealthyдля маршрута/hcheck. Для отключения этого поведения зарегистрируйте объектIRedisInitializationOptionsсо свойствомInitializeOnStartup, возвращающимfalse. Поведение отключено в API тестов и в серверных контейнерах для консольных команд tadmin для исключения слишком раннего подключения к Redis. - В API представлений добавлена возможность наследовать объект
TessaViewModelAdapter, посредством которого возможно переопределить функцию создания метаинформацииCreateMetadataAsyncи получения данныхGetDataAsync, не прибегая к созданию класса декоратора. - В API представлений добавлена сортировка объектов
IExtraViewListProviderв соответствии с атрибутом[Order(number)], который указывается на классе, реализующем интерфейс. - В класс
FileHelperдобавлены поля с невалидными символами в именах файлов (InvalidFileNameChars,InvalidFileNameCharsSet) и путей (InvalidPathChars,InvalidPathCharsSet), которые актуальны для любой поддерживаемой ОС (Windows, Linux). Используйте их вместо методовPath.GetInvalidFileNameChars()иPath.GetInvalidPathChars(). - При создании экземпляров класса
ContentTokenBaseу дат создания и истечения токена время усекается до секунд. Это сделано для учёта особенностей сохранения токенов в СУБД MS SQL Server и PostgreSQL, которые могут округлять миллисекунды, что ранее приводило к недействительности защищённых токенов доступа к содержимому. - Исправлена реализация методов
getRoleCalendarInfo,getDefaultCalendarInfo,getCalendarInfoиgetAllCalendarInfosв API календарей для web-клиента. - В реализации
ObjectLockingStrategyустранена возможность передавать собственный скрипт работы с блокировками и добавлена возможность опционального использования множественных блокировок на запись. - Добавлен интерфейс
IViewErrorLogger, позволяющий логировать ошибки, произошедшие при выполнении представления. - В интерфейс
IWebContextдобавлены методы для установки и получения токена доступа к API в качестве текущего токена. - Атрибут
SessionMethodAttributeбыл расширен для проверки доступа к API-ресурсам посредством токена доступа к контенту, если он был передан в запросе вместо сессионного токена. При этом атрибутSessionTokenAttributeиспользуется только для параметра метода, содержащего сессионный токен, и не может быть использован с токеном доступа к API. - Добавлены атрибуты
ApiAccessTokenMethodAttributeиApiAccessTokenAttributeдля методов контроллера и их параметров. Эти атрибуты позволяют использовать логику проверки доступа к API с помощью токена доступа к контенту. В примере контроллераServiceController, включённом в проектTessa.Extensions.Server.Web, был добавлен методGetDataWithApiToken, демонстрирующий использование этих атрибутов. - Добавлен универсальный контроллер для работы с токенами
TokensController, который доступен по пути/api/v1/tokens. В данный контроллер были перенесены все методы изContentController, за исключением метода получения контента по токену доступа. - Добавлено пространство имён
Tessa.Tokens, которое содержит объекты, используемые для предоставления доступа посредством токенов. Для всех токенов реализованы подсчёт и проверка подписи при создании и получении объекта токена. ОбъектыTokenInfoBuilderиTokenInfoBuilderFactoryупрощают создание объекта токена. ОбъектыIApiAccessTokenService,IApiAccessTokenProvider,IApiAccessTokenPermissionsManagerиApiAccessTokenHandlerопределяют доступ к API-ресурсам. ОбъектыITokenActionHistoryStrategy,IFileContentActionHistoryStrategyиIApiAccessTokenActionHistoryStrategyзаписывают в историю действий события, связанные с токенами доступа. - Реализован единый подход для работы с токенами в виде объектов-репозиториев
ITokenRepositoryиITokenRepositoryCached. Используйте их для взаимодействия как с платформенными токенами, так и с токенами, разрабатываемыми в проектных решениях. - В объект сессионного токена
ISessionTokenдобавлено несериализуемое свойствоKind, которое разделяет стандартные токены и API токены. Оно используется при создании записи в истории действий. - В руководство разработчика добавлен пример Временные ссылки на контент системы, показывающий реализацию для взаимодействия с токенами, уникальными в рамках скоупа для пользователя (
UserExclusive). - Модифицирован интерфейс
IBackgroundServiceQueue. В методEnqueueAsyncдобавлен параметрparallelрегулирующий в какую очередь последовательного или параллельного исполнения будет добавлена задача. Количество одновременно запущенных задач (размер очереди) регулируется параметромMaxParallelBackgroundTasksнастроек веб-сервиса. - Изменён интерфейс
IFileViewModel: добавлено свойствоGroupStrictOrder, которое содержит информацию о заданном порядковом номере категории файла. - Добавлен интерфейс
ICardContentTokenProvider, который позволяет создавать, подписывать и проверять токены на получение контента файлов по отдельному GET-запросу. - Добавлен интерфейс
ICardContentInfo. Этот интерфейс предоставляет информацию, описывающую контент файла. - Добавлен REST-метод для получения контента файла карточки по токену:
GET api/v1/cards/file-content?token={token}&session={session}. Здесьtoken(обязательный параметр) - токен контента файла,session(опциональный параметр) - токен сессии, который может быть опущен, например, когда токен сессии уже передан через куки. - Добавлено API нормализации, позволяющее на сервере посредством объектов
INormalizationBatchProcessorиINormalizationServiceзапрашивать строковые значения из справочников по ключам-идентификаторам. ОбъектыICardNormalizationServiceиIViewNormalizationServiceпозволяют выполнять задачи по нормализации, специфичные для карточек и представлений. Примеры регистрации справочников нормализации в расширениях типового решенияTessa.Extensions.Default.Server/Normalization/Registrator.cs, причём записи по добавляемым справочникам также указаны в таблице-перечисленииNormalizationSourcesв библиотеке схемыStandard solution. - В серверное API представлений добавлен интерфейс
IViewSortingService, позволяющий программно отсортировать строки в результатах выполнения представления в объекте результатаITessaViewResult(в т.ч. при выполнении в режиме сабсета). - В серверное API представлений добавлен интерфейс
IViewResultProcessor, обрабатывающий результат выполнения представления перед выполнением перехватчиков и возвратом потребителю API. Реализация по умолчанию выполняет нормализацию, замену пустых значений при выполнении без сабсета, а также сортировку и замену пустых значений в сабсетах. - Добавлены методы-расширения для
IReadOnlyDictionary<string, object?>, работающие по аналогии с методами-расширениями дляDictionary<string, object?>, но имеющие на конце суффиксRи расположенные в пространстве имёнTessa.Platform.Storage.ReadOnly. Например:storage.TryGetR<int>("Number"),storage.TryConvertEnumR<CardStoreMode>("mode"). - Удалена трассировка расширений посредством настройки
ExtensionTracingModeв конфигурационных файлахapp.json. Для серверных расширений используйте трассировку посредством сервисаmonitor, описанную в разделе Трассировка серверов приложений. Трассировка расширений desktop-клиента невозможна с этого релиза, параметр/ExtensionTraceдля приложенияTessaClientтакже удалён. - Изменены интерфейсы контекстов расширений, связанные с трассировкой: свойство
ITraceableExtensionContext.ValidationResultперенесено в новый интерфейсIValidatableExtensionContext; интерфейсITraceableInfoExtensionContextудалён (свойствоInfoсамостоятельно определяется в каждом интерфейсе контекстов расширений). - Объект
DefaultExtensionTraceListener, использовавшийся для трассировки расширений посредством настройкиExtensionTracingModeв файлахapp.json, и связанные с ним API были удалены. - Модифицирована структура свойства
ITransactionScopeContext.Locksдля добавления информации не только об идентификаторе объекта, но и о его префиксе. - В скрипты конструктора бизнес-процессов добавлено новое свойства
RetryInfo. Данное свойство содержит информацию о настройках механизма перезапуска асинхронной обработки, позволяет включить или отменить перезапуск обработки в случае ошибки, а также содержит информацию о предыдущей ошибке, вызвавшей перезапуск. Данное свойство доступно только при асинхронной обработке сигнала. - Для перехватчиков представлений, наследуемых от
ViewInterceptorBase, добавлен вспомогательный метод для получения представления, выполняемого без текущего перехватчика:this.GetInterceptedView(request.ViewAlias). Перехватчики, зарегистрированные по порядку в свойствеOrderперед текущим перехватчиком, будут в таком случае выполнены - это аналогично получению значения из хэш-таблицыInterceptedViewsс выбрасыванием исключения, если представление недоступно. - Механизм исправления типов карточек перенесён в серверную часть (
Tessa.dll). Для этого реализован интерфейсICardTypeRepairManager. Интерфейс доступен на клиентской (для сессии администратора) и серверной стороне. - В скрипты конструктора бизнес-процессов добавлены новые методы
AddValidationError(string)иAddValidationError(string, object[]). Данные методы позволяют добавить в результат валидации сообщение об ошибке без создания карточки ошибки для бизнес-процесса. Подробнее см. раздел API скриптов. - Добавлен новый тип расширений
IForumUserMentionExtension, который позволяет реализовать логику упоминания пользователей в обсуждениях. Для фильтрации выполнения этих расширений был добавлен реестр пакетовICardBundleRegistryи методы фильтрацииWhenBundlesиWhenAnyBundle.
Исправления и оптимизации¶
- В обсуждениях (форумах) исправлен алгоритм проверки прав доступа при добавлении и подписке участников.
- В карточках оптимизирован список изменённых полей секций при сериализации в Typed Json (массив строк по ключу
".changed"). - В web-клиенте исправлена ошибка, из-за которой некорректно применялась настройка
Appearanceиз метаинформации представлений. - В web-клиенте исправлена ошибка, в результате которой отсутствовала возможность подсветить сообщения в обсуждениях из расширений посредством
ForumViewModel.topicEditor.highlightMessage. - В web-клиенте исправлена ошибка в мобильной версии приложения, приводящая к отсутствию прокрутки в контролах таблиц, расположенных в колоночных блоках карточек.
- Оптимизирована загрузка списка функциональных ролей задания, к которым относится текущий сотрудник, если загрузка данного списка вызывается несколько раз при сохранении карточки.
- В web-клиенте исправлена ошибка, приводящая к отсутствию диалогового окна с предложением сохранить несохранённые данные карточки при её закрытии через нажатие на среднюю кнопку мыши.
- Исправлена некорректная работа приложения-помощника Deski с буфером обмена в Windows.
- В web-клиенте исправлена ошибка, из-за которой некоторые иконки не были жирными.
- Исправлена локализация заголовка для страницы с ошибкой, которая отображается при открытии ссылок на файлы
/linksи контент/contentв отдельной вкладке браузера, если в cookies уже содержится актуальная сессия. - В web-версии исправлено отображение подсказки горячих клавиш у кнопок вторичных процессов и шаблонов бизнес-процессов с установленным флагом “группировать в “Действия”“.
- В методе генерации файла по шаблону
CardExtensions.GenerateFileFromTemplateAsyncисправлена ошибка, из-за которой в запросе на получение контента файла не передавалась дополнительная информация из параметраrequestInfo. - Исправлен сброс настроек двухфакторной аутентификации при импорте карточки настроек сервера.
- В web-клиенте исправлены мелкие ошибки, приводившие к игнорированию некоторых параметров темы в диалоге фильтрации, обсуждениях, заданиях, контролах “Список файлов”, “Ссылка” и “Список”, а также в некоторых диалогах.
- Исправлено дублирование записей в истории автоматического согласования, если сотрудник относится более чем к одной роли из списка связанных с заданием ролей.
- Исправлено отсутствие переноса строки перед пометкой о скором автоматическом согласовании задания в строке таблицы из рассылки уведомления о заданиях.
- В web-клиенте исправлена поддержка тем для контрола “Строка” в режиме “Avalon”.
- В web-клиенте исправлена поддержка тем для диалога “Структура карточки”.
- В web-клиенте исправлена поддержка тем для всплывающей подсказки.
- В web-клиенте удалены лишние условия фильтрации данных представлений у параметров с автодополнением и целочисленным типом данных.
- В web-клиенте исправлена проблема длительного расчёта высоты контрола “Строка” при отрисовке большого количества строк.
- В web-клиенте для контрола “Список файлов” рамка вокруг области “Загрузить файлы” теперь увеличивается в толщине, если над ней с помощью мыши drag&drop расположить файл.
- В web-клиенте исправлено отображение сообщений об ошибках аутентификации Windows.
- В файле типа диалога
TwoFactorAuthTotpSettings.jcardисправлено название параметров сBakgroundнаBackgroundиBorderThiknesнаBorderThickness. - Исправлена проверка прав доступа для работы с настройками двухфакторной аутентификации пользователя.
- Исправлена ошибка, из-за которой после изменения или переименования файла в карточке “Шаблон файла” не инвалидировался кэш шаблонов файлов. В результате, при создании файла по шаблону, имя создаваемого файла оставалось прежним до перезапуска сервера.
- Исправлена ошибка, из-за которой плейсхолдеры в именах шаблонов файлов заменялись только один раз, а не динамически при каждом запросе информации о шаблоне.
- В карточке операции OCR исправлено отображение распознанного файла, если в качестве инструмента предпросмотра файла используется Р7-Офис / OnlyOffice.
- В web-клиенте исправлена ошибка, из-за которой отсутствовал фон в заголовке диалога.
- В web-клиенте исправлено отображение заголовка окна диалога создания нового запроса на распознавание текста. Ранее в нём не отображались кнопки закрытия и разворачивания/сворачивания окна.
- Исправлена ошибка, из-за которой при импорте карточек их слияние с существующими карточками выполнялось неоптимально, что приводило к созданию лишних объектов в памяти.
- Исправлено изменение функций и процедур в схеме данных для PostgreSQL, если ссылки на них присутствуют в других объектах схемы (индексах, функциях, процедурах). При обновлении схемы, если происходит обновление уже существовавшей функции и её набор параметров не менялся, то вместо двух операций
DROP+CREATE, вызывается однаCREATE OR REPLACE. - В web-клиенте исправлено выделение строк для изменённых файлов в контроле “Представление” с расширением “Список файлов в представлении”.
- В web-клиенте исправлено отображение заголовка при открытии диалога добавления/редактирования строки.
- В web-клиенте исправлена ошибка, из-за которой колонки в представлении растягивались на всю ширину с тегами в позиции
TopилиBottom. - В web-клиенте в мобильной версии исправлена прокрутка обсуждения вниз при отправке сообщения, а также при заходе на страницу.
- В web-клиенте исправлена ошибка, в результате которой настройка “Автофокус” из TessaAdmin не применялась в контролах обсуждений.
- В web-клиенте исправлена ошибка контрола обсуждений с активной настройкой “Единственное обсуждение”: ранее в мобильной версии при открытии вкладки карточки, содержащей данный контрол, автоматически открывалось диалоговое окно с содержимым топика.
- В web-клиенте исправлена ошибка, приводящая к невозможности закрыть диалоговое окно с открытым обсуждением в мобильной версии приложения, если у пользователя нет прав на добавление новых обсуждений.
- В web-клиенте исправлено ошибка, приводящая к некорректному отображению кнопки “Редактировать” в обсуждениях для мобильной версии приложения.
- В web-клиенте исправлено ошибка, приводящая к возможности отображения всех доступных топиков с активной настройкой “Единственное обсуждение” для пользователей с правом добавления новых обсуждений в компактном режиме.
- В web-клиенте исправлено ошибка, приводящщая к некорректному отображению контрола обсуждений с активной настройкой “Единственное обсуждение” в мобильной версии приложения: ранее контрол отображал все существующие топики.
- В web-клиенте исправлена ошибка форматирования дат с миллисекундами.
- В web-клиенте исправлено отображение рамки валидации контрола в задании при сохранении карточки или завершении задания.
- В web-клиенте исправлена ошибка, из-за которой кнопка переключения режима отображения карточки дублировалась в ситуации, когда предпросмотр был скрыт.
- В web-клиенте исправлена ошибка, из-за которой при первом открытии карточки в диалоге контрол предпросмотра файлов мог отображаться всегда, даже когда размер рабочей области приложения это запрещал.
- В web-клиенте убрана кнопка переключения режима отображения карточки при отображении её в диалоге.
- В скриптах
Setup.bat/setup.shисправлен импорт схемы в случае, если при установке была отключена поддержка полнотекстового поиска. - В web-клиенте группировка по колонке, содержащей дату и время, теперь выполняется по дате без учёта времени.
- В web-клиенте исправлен сброс предпросмотра файла при клике по пустой области в контроле “Список файлов”, если в нём включена группировка.
- В web-клиенте исправлена ошибка, из-за которой в контроле “Строка” мог появляться второй скролл при изменении размеров страницы.
- В web-клиенте исправлено расположение колонок в карточке в блоке с флагом “Заголовки слева”.
- В web-клиенте для некоторых диалогов исправлено отображение заголовка и кнопки разворота на весь экран.
- В web-клиенте для диалога работы с нумератором карточки исправлены отступы между контролами и их заголовками.
- В web-клиенте исправлен размер фильтра представления для строкового параметра. Ранее введённый в фильтре текст мог обрезаться при наличии достаточного места для его отображения.
- В web-клиенте исправлена ошибка для мобильной версии приложения на iOS, приводящая к исчезновению поля ввода при активной клавиатуре в контроле обсуждений.
- Исправлена ошибка, которая возникала при сохранении карточек типа “Генератор умных ролей” на этапе проверки условий, что версия генератора умных ролей может быть обновлена.
- В web-клиенте исправлена ошибка в контролах “Строка”, “Нумератор”, и в поле “Номер” в диалоге контрола “Нумератор”, из-за которой последние символы контрола, значение которого достигло максимальной длины, удалялись при попытке редактирования значения.
- Для команд tadmin
OcrSyncиOcrAsyncисправлено взаимодействие с клиентским и серверным API системы. Теперь командаOcrSyncиспользует только те зависимости, которые зарегистрированы в серверной части, а командаOcrAsyncиспользует зависимости, зарегистрированные в клиентской части. Как следствие, для командыOcrSyncбольше не требуется открытие сессии. - В web-клиенте для диалога аннотаций PDF проведены косметические изменения.
- В web-клиенте исправлена ошибка контрола “Текст с форматированием”: ранее при добавлении внешней ссылки пропадала возможность печати вне добавленной ссылки.
- В web-клиенте исправлена ошибка, из-за которой не отображались признаки сортировки в представлениях, если сортировка для этих представлений была настроена.
- Исправлено удаление дубликатов типов уведомлений в настройках сотрудника на вкладке “Уведомления” при сохранении карточки.
- В web-клиенте исправлено расположение контролов в карточке при включённом флаге “С новой строки” у первого контрола.
- В web-клиенте исправлено расположение контролов в карточке в блоке с явно заданной высотой в диалоге “Расположение блоков”.
- В web-клиенте изменено отображение даты сообщений в обсуждениях.
- Исправлена ошибка, из-за которой при импорте карточки в ответе содержалось некорректное значение версии карточки после сохранения.
- Контроллер
/check, проверяющий состояние сервисаweb, теперь выполняет системное представлениеViewsвместоMyTasks(которое может быть существенно изменено или недоступно в проектном решении). - Перед выполнением представлений из запроса
ITessaViewRequestявно удаляются параметрыRequestParameter, имеющие повторяющиеся имена (без учёта регистра) или пустые имена. - В web-клиенте в обсуждениях удалена кнопка “Войти в режим повышенных привилегий” из меню топика.
- Исправлено создание операций в рамках транзакции, например, в сценариях маршрутов или бизнес-процессов. Теперь операция добавляется в очередь операций только при завершении внешней транзакции.
- В web-клиенте в объектной модели объекта для предпросмотра html добавлена возможность указывать параметр
sandbox. - Для представления “Активные сессии” исправлен вывод при указанном параметре “Используется”.
- В web-клиенте исправлено скачивание приложения Deski для пользователей, не являющихся администраторами.
- Исправлено повторное распознавание файла, а также отображение иконки OCR на файле, для которого могла отсутствовать карточка операции OCR в системе. Такое было возможно, например, при восстановлении карточки из корзины, если при её удалении в карточке присутствовал распознаваемый файл.
- В desktop-клиенте исправлено отображение диалога подтверждения при удалении распознаваемого файла.
- В web-клиенте исправлена ошибка для мобильной версии приложения, приводящая к некорректному отображению поля ввода текста с форматированием в обсуждениях.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению содержимого контрола предпросмотра посредством Р7-Офис / OnlyOffice: ранее контрол отображался по минимально возможной высоте.
- В web-клиенте исправлена ошибка, приводившая к некорректному расположению выпадающего списка относительно контрола “Ссылка”.
- В web-клиенте исправлена ошибка, приводящая к некорректной работе поисковых запросов, созданных посредством клика правой кнопкой мыши на узел дерева представлений: ранее скрытые параметры и параметры, доступные только для чтения, не сохранялись в поисковом запросе.
- В конструкторе процессов исправлена ошибка, возникающая при очистке поля “Иконка” в настройках узла и при попытке импортировать шаблон процесса, в котором в одном из узлов не была задана иконка.
- Исправлен некорректный подсчёт количества заданий в подразделении для отчёта “Текущие задания” в тех случаях, когда задание назначалось на роль из нескольких сотрудников.
- Исправлено закрытие подключения к Redis в
RedisConnectionProvider, если база данных Redis не была инициализирована, и при её инициализации возникли ошибки. - В web-клиенте исправлена ошибка экспорта данных представления в ситуации, когда использовался параметр с настройкой
DateTimeType. - Исправлено представление “Доступные заместители” (
AvailableDeputyUsers) при выполнении на СУБД PostgreSQL. - Исправлена ошибка, из-за которой при нажатии кнопки “Сохранить” в диалоге “Добавить обсуждение” могло создаться несколько одинаковых обсуждений.
- В web-клиенте исправлена ошибка в мобильной версии приложения на Android, приводящая к прокрутке окна приложения при открытом в обсуждениях редакторе текста.
- В web-клиенте исправлена ошибка в мобильной версии приложения, приводящая к возможности выполнять прокрутку панели приложения при открытом дереве представлений.
- Для карточки “Сотрудник” исправлено наполнение виртуальных секций “Подразделения” (
PersonalRoleDepartmentsVirtual), “Статические роли” (PersonalRoleStaticRolesVirtual), “Все роли” (PersonalRoleRolesVirtual), если из схемы у типа карточкиPersonalRoleвыключены некоторые из этих секций. - В web-клиенте исправлена ошибка, связанная с пропадающим списком топиков в обсуждениях при обновлении карточки.
- В web-клиенте исправлена ошибка в мобильной версии приложения на iOS, приводящая к появлению глобальной полосы прокрутки в рабочих местах и карточках.
- В web-клиенте исправлена обработка события нажатия клавиши Enter при входе в систему.
- В web-клиенте исправлена ошибка, где при нажатии на кнопку обновления в карточках не учитывалась информация о тегах.
- В конструкторе бизнес-процессов в действии “Группа заданий” исправлен текст ошибки, возникающей, если тип задания не указан в настройках действия.
- В web-клиенте исправлена ошибка в мобильной версии приложения, связанная с тем, что открытый диалог обсуждения перекрывал меню системы и диалог с заданиями.
- При подписании в случае ошибки проверки подписи, подпись не сохраняется в карточку, кроме определённых случаев, описанных в документации.
- В web-клиенте исправлено сохранение режима отображения/скрытия области предпросмотра.
- Для команд tadmin
ImportSchemeиImportSchemeSqlисправлена ошибка импорта схемы данных, возникающая при наличии в импортируемой схеме таблиц с новыми записями, относящимися к библиотеке, отличной от библиотеки самой таблицы. - В web-клиенте исправлена ошибка в контроле “Текст с форматированием”, приводившая к вставке внешней ссылки или файла в сообщение не в позиции курсора.
- Оптимизировано добавление участников и ролей к обсуждению.
- Для исполнителей заданий “На доработку” скорректирован список выдаваемых по умолчанию прав доступа. Актуальный список прав доступа, выдаваемых заданиями типового решения, можно посмотреть в руководстве администратора в разделе Права, определяемые задачей или этапом маршрута/процесса.
- В конструкторе бизнес-процессов в действии “Таймер” исправлена обработка флага “Блокировать процесс при асинхронном вызове”.
- В web-клиенте исправлена ошибка, приводившая к некорректному вертикальному выравниванию текста в кнопках с типом
small. - В web-клиенте у контролов “Ссылка” и “Список” определение доступных представлений по настройкам
RefSectionиColPrefixтеперь выполняется без учёта регистра. - Для серверных команд утилиты tadmin исправлено поведение, при котором выполнялась попытка инициализировать данные системы в Redis вместо того, чтобы проверять состояние инициализированности данных.
- Исправлено поведение, при котором проверка сервиса
webпо адресу/hcheckпыталась инициализировать данные системы в Redis вместо того, чтобы проверять только наличие подключения к Redis. - В TessaAdmin исправлена ошибка, возникающая при полном удалении JSON-текста представления в редакторе.
- В web-клиенте исправлено обновление списка обсуждений при архивации обсуждения.
- В web-клиенте исправлено закрытие обсуждения при выходе из него.
- В web-клиенте исправлена локализация элементов выпадающего списка ссылочных контролов в диалоге выбора категории файла.
- В web-клиенте для аннотаций pdf исправлено добавление и отображение многострочного текста, также внесены изменения во внешний вид.
- Исправлено заполнение поля “Назначено на роль” в истории заданий в тех случаях, когда длина строки с именами записываемых ролей превышала максимально допустимую.
- Исправлено обновление элементов истории заданий в тех случаях, когда происходило их одновременное обновление из-за изменения в задании или на основании изменений в объекте
Card.TaskHistory. - Исправлена ошибка проверки расширенных настроек доступа на запрет полей или секций карточки при её создании в ситуации, когда токен прав доступа карточки требуется перерассчитать, например, из-за изменения настроек правил доступа.
- При сохранении карточки тега в полях “Общий с”, “Редакторы” и “Читатели” теперь удаляются дублирующие роли.
- В web-клиенте исправлены отступы внутри тулбара в области предпросмотра файлов.
- В TessaAdmin при экспорте локализации в Excel исправлено создание строк, в которых отсутствует перевод для одного из используемых языков.
- В web-клиенте исправлена ошибка, приводившая к тому, что при изменении текущей версии файла в диалоге “Версии файла” имя файла оставалось прежним.
- В web-клиенте исправлено раскрытие первого узла в дереве рабочего места, когда для него свойство “Отображение узла” установленно “Свернутым” в TessaAdmin.
- Исправлено наименование плагина
RemoveCompiledViewsнаRemoveCompiledViewsPlugin. - В web-клиенте в контроле “Список файлов” исправлена ошибка группировки по категории файла в ситуации, когда категория из списка и вручную добавленная категория файла определялись в разные группы.
- При выборе категории файла в списке доступных категорий теперь не отображаются вручную добавленные категории, если они совпадают с категориями из списка.
- В web-клиенте для текстовых полей с форматированием отключена настройка “Автофокус” в мобильной версии приложения.
- Исправлена ошибка, которая приводила к тому, что контрол “Текст с форматированием” не мог отобразить текст после его редактирования, если до этого текст редактировался в web-клиенте.
- Исправлена ошибка, из-за которой не заменялись плейсхолдеры в именах шаблонов файлов при запросе от клиента, даже когда имя файла в таком запросе не задавалось, а использовалось имя из базы данных.
- В web-клиенте исправлена ошибка, в результате которой кнопки в окне настроек могли заезжать друг на друга при уменьшении ширины экрана.
- В TessaAdmin исправлена ошибка работы с формами и блоками в типах диалогов, которая возникала при наличии циклических зависимостей между таблицами карточек в схеме данных.
- В web-клиенте исправлена ошибка, приводившая к загрузке файла с некорректным именем при создании файла по шаблону.
- Исправлено отображение версии приложения Deski, который подключён к web-клиенту.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению высоты диалогового окна: ранее содержимое диалогового окна могло обрезаться по высоте.
- Исправлен вывод команды
tadmin Checkс параметром-hпри получении состоянияUnhealthy. - Исправлены конструкторы классов исключений
ConfigurationSealedExceptionиConfigurationStrictSecurityException, принимающие вложенное исключение. - В web-клиенте исправлена ошибка, приводившая к тому, что диалоговое окно об отсутствии лицензии отображалось без стилей.
- Исправлен сценарий генерации ссылки в контроллере для мобильного приложения TESSA Assistant. В приоритете получение ссылки из поля
WebAddressкарточки настроек сервера, или, если оно не заполнено, то ссылка формируется с помощьюLinkGenerator. - В web-версии исправлен расчёт отображения кнопок вторичных процессов.
- В форумах и в контроле “Текст с форматированием” исправлено открытие вложенного изображения по клику.
- В web-клиенте исправлено отображение неактуального фонового изображения при повторном открытии закрытой вкладки и дублировании вкладки.
- В web-клиенте в мобильной версии исправлена ошибка, в результате которой на вкладке обсуждений кнопки уходили за границу экрана.
- Исправлена ошибка компиляции скриптов в карточке “Шаблон файла”, возникающая при использовании API для работы с объектами документа Word или Excel.
- Исправлена локализация подсказок для полей
Время жизни JWT токена TESSA AssistantиИспользовать мобильный ассистент TESSA Assistantв карточке “Настройки сервера”. - Исправлена работа веб-сервиса
webв случае отсутствия прав на создание папкиauthorized_keys. - В web-клиенте исправлено поведение обнаружения открытой вкладки браузера с приложением: при перезагрузке страницы обнаружениие не производится.
- Исправлена ошибка, из-за которой не обновлялся флаг
IsActiveдля заместителей контекстных ролей при использовании старой системы замещений. - Исправлена инициализация зависимостей по умолчанию
TessaPlatform.DependenciesиTessaPlatform.ServerDependenciesпри невозможности выполнить парсинг файлаapp.json. Для приложенийchronos,web,tadminинициализируются зависимости изTessa.Linuxдля ОС Linux. Для приложенийchronos,webинициализируются зависимости изTessa.Server. Это позволяет для некорректно сформированного файлаapp.json(например, при опечатке в нём) открыть страницу/checkвеб-сервиса, и увидеть причину ошибки вместо падения при инициализации контейнера Unity. - В web-клиенте исправлена локализация заголовка у диалогов, открываемых до получения настроек локализации с сервера.
- В web-клиенте исправлена ошибка, приводившая к дублированию описания в диалоге ошибок.
- В web-клиенте исправлен стиль области между полосами вертикальной и горизонтальной прокрутки.
- В контроле “Представление” с включённым расширением “Список файлов в представлении” исправлено отображение колонки “Категория” в ситуации, когда группировка менялась с “По категории” на любую другую.
- В контроле “Список файлов” и в контроле “Представление” с включённым расширением “Список файлов в представлении” исправлена группировка “По копии” в ситуации, когда у двух основных файлов с копиями было одинаковое имя.
- В web-клиенте в контроле “Представление” с включённым расширением “Список файлов в представлении” отключён автоматический выбор первой строки, который приводил к предпросмотру первого файла при применении любой группировки или фильтрации.
- Исправлена ошибка, из-за которой в иерархических представлениях при установленном флаге
AutoSelectFirstRowне всегда выбиралась корректная строка. - В web-клиенте исправлена ошибка, приводящая к возможности просмотра структуры карточек при активированной конфигурации безопасности
Configuration.StrictSecurity. - Исправлена загрузка аннотаций pdf из файла.
- В web-клиенте исправлена прокрутка колесом мыши внутри элементов, открываемых из панели многостраничного тулбара.
- Исправлена ошибка, из-за которой могла некорректно отображаться отметка в маршруте о наличии дополнительных согласующих.
- В web-клиенте исправлена ошибка возникавшая при сохранении карточки, если до этого был открыт активный этап маршрута для просмотра.
- В web-клиенте исправлен drag-and-drop из контрола “Представление” с расширением “Список файлов в представлении” в файловую папку.
- Исправлена ошибка, из-за которой при запросе участников топика через метод
ITopicParticipantsProvider.GetTopicParticipantsAsync, мог возвращаться некорректный признак подписанности или отписанности участника топика. - В web-клиенте исправлена ошибка отображения ссылочных контролов, содержащих лоадер: ранее при появлении лоадера в ссылочном контроле периодически появлялись вертикальные и горизонтальные полосы прокрутки.
- В web-клиенте исправлена ошибка, приводящая к выполнению запроса на получение обсуждений при обновлении карточек типового решения, в которых обсуждения отсутствуют.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению значения ссылочного контрола с активной настройкой ручного ввода.
- Исправлено возможное зависание блокировки на глобальные кэши в Redis при сохранении схемы через TessaAdmin.
- В web-клиенте исправлен импорт файлов с аннотациями pdf: можно загружать файл с аннотациями других пользователей, которые были сделаны в редакторе аннотаций TESSA, а аннотации, добавленные во внешних редакторах, импортируются от имени текущего пользователя.
- В форумах исправлена локализация ролей при их добавлении в топик.
- В шаблонах файлов Word исправлена ошибка, возникавшая при наличии плейсхолдеров в колонтитуле документа.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению высоты многострочных контролов.
- В web-клиенте в форумах и контроле “Текст с форматирование” исправлено добавление множества картинок одновременно.
- Исправлена ошибка, из-за которой не учитывалась сортировка таблицы с данными представления при обработке плейсхолдеров для имён файлов шаблонов.
- Доработана обработка ошибок в веб-сервисах, использующих
ErrorHandlingMiddleware(web,jinni,monitor). При штатной отмене соединения с клиентом (например, пользователь закрыл браузер в процессе обработки) исключенияOperationCanceledExceptionилиIOExceptionболее не выводятся в консоль сервиса (которая видна поsystemctl status,journalctlили при запуске сервиса из терминала). Также при возврате ошибки устанавливаются HTTP-заголовки ответа на запрос, запрещающие его кэширование. - В web-клиенте исправлена ошибка отображения тега в столбце представления, возникавшая при недостатке места в ячейке для тегов, имя которых состоит из нескольких слов.
- В форумах исправлена ошибка, из-за которой отсутствовало сервисное сообщение об удалении ролей из топика.
- В web-клиенте исправлена ошибка, связанная с появлением лишней горизонтальной полосы прокрутки в табличных контролах при уменьшении ширины экрана.
- В web-клиенте исправлена ошибка, связанная с появлением лишней полосы прокрутки в обсуждениях при изменении размера редактора сообщений.
- В web-клиенте исправлена ошибка, из-за которой при открытии диалога выбора из представления мог ломаться рендер карточек.
- В мобильном web-клиенте исправлена ошибка, приводящая к появлению горизонтальной полосы прокрутки в представлениях, содержащих большое количество тегов.
- В web-клиенте исправлена ошибка при использовании SAML-авторизации, возникавшая в том случае, когда система при просроченных cookies SAML-авторизации отправляла запрос на логаут без всех необходимых данных к провайдеру аутентификации.
- В web-клиенте исправлена ошибка отображения параметров фильтрации, содержащих контрол “Дата и время” с выбранным условием “между”: ранее между вышеупомянутыми контролами параметра фильтрации отсутствовал отступ.
- В web-клиенте исправлена ошибка отображения тегов в карточках: ранее при использовании большого количества тегов, они сжимались до нечитаемого состояния.
- В плагине генерации умных ролей исправлена ошибка, из-за которой система производила лишние расчёты генераторов умных ролей.
- В web-клиенте исправлена ошибка отображения компонента слайдера для вывода точности распознавания текста: добавлены скругления для слайдера и его ползунка.
- В web-клиенте исправлена ошибка, возникавшая при открытии приложения, когда в файле настроек сервера
app.jsonв секцииSAMLпараметрLogoutBindingне был указан или имел некорректное значение. - В web-клиенте исправлена ошибка представлений с отключённой горизонтальной прокруткой: ранее при изменении ширины представления периодически появлялась полоса горизонтальной прокрутки.
- В web-клиенте исправлена ошибка, из-за которой колонки представления с типом
Decimalне всегда форматировались. - Исправлена ошибка, возникавшая при выборе более одного документа в узле “Мои документы” рабочего места “Пользователь”.
- В web-клиенте исправлена ошибка, из-за которой свойство
cornersне обрабатывалось при конвертации темы в переменные. - Исправлена ошибка, из-за которой после делегирования задания на согласование, задания на дополнительное согласование отзывались.
- Исправлено повторное подключение сервиса
webк сервисуmonitorв случае, еслиmonitorбыл перезапущен без перезапускаweb. - В web-клиенте исправлена ошибка отображения тегов в скрытом списке: ранее между тегами отсутствовали отступы, а сами теги отображались без скруглений.
- В web-клиенте исправлено использование строк локализации названий рабочих мест для информации о текущем пользователе.
- Исправлена ошибка при сбросе кэша прав доступа, которая позволяла другому процессу загрузить устаревший номер версии кэша.
- В web-клиенте исправлена ошибка в табличных контролах, приводившая к некорректному измерению ширины оверлея.
- В web-клиенте исправлена ошибка в табличных контролах, приводившая к изменению фактического размера колонки при переходе в скрытое состояние.
- В web-клиенте исправлена ошибка в табличных контролах, приводившая к тому, что в
IGridMetricsширина скрытых колонок всегда была равна нулю. - В web-клиенте исправлен ряд ошибок в табличных контролах, приводивших к некорректному поведению колонок, перекрытых оверлеем.
- В web-клиенте исправлена ошибка, появляющаяся при применении к представлению параметра фильтрации типа
Decimalс пустым значением. - В web-клиенте исправлена ошибка в диалоге выбора значений строки, отображаемого в диалоге выбора из представления, которая приводила к закрытию всех диалогов сразу.
- В web-клиенте исправлено некорректное отображение размера текста в pdf аннотациях.
- В конструкторе процессов исправлена ошибка, из-за которой действие “Типовая задача” не завершалось при завершении его заданий, если для типа карточки, для которой запускался процесс, не были включены маршруты.
- В web-клиенте исправлена ошибка, из-за которой при добавлении файла в карточку, для которого доступна только одна категория и размер которого был больше, чем разрешено расширенными настройками правил доступа, система выводила множество сообщений об ошибках вместо одного.
- Исправлено удаление связанных карточек в тестах вызовом методов
ITestCardManager.DeleteCardAfterTest()при освобождении скоупа. Теперь удаление выполняется в порядке, обратном порядку создания карточек. - В API тестов в классе
CardLifecycleCompanionисправлена ошибка методаCreateOrLoadSingleton, из-за которой метод мог вернуть некорректную версию карточки-синглтона. Теперь, если карточка уже существует, метод всегда загружает актуальную карточку из БД, а не возвращает закэшированную версию карточки. - Исправлена ошибка, из-за которой при экспорте карточки с перезаписью поверх уже существующей могли быть удалены файлы-исключения из подпапки, относящейся к данной карточке.
- В команде
tadmin ExportCardsисправлена ошибка, из-за которой игнорировался ключ-localize. - В команде
tadmin ExportCardsисправлена ошибка, из-за которой при экспорте карточек в библиотеку записи о карточках могли дублироваться. - Исправлен msi-инсталлятор Deski на ОС Windows, если на момент установки или удаления предыдущая версия приложения была запущена. Теперь приложение автоматически завершается в процессе установки.
- В конструкторе бизнес-процессов в действии “Типовая задача” исправлена обработка сигнала завершения заданий.
- В web-клиенте в диалоге аннотаций pdf исправлена локализация заголовков фильтров по автору и по типу аннотации.
- В маршрутах в этапе “Типовая задача” исправлена ошибка, из-за которой этап завершался при отзыве подзадачи при активной родительской задаче.
- В конструкторе бизнес-процессов в действии “Типовая задача” исправлена ошибка, из-за которой этап завершался при отзыве подзадачи при активной родительской задаче.
- В web-клиенте исправлена ошибка, из-за которой сохранение порядка колонок в диалоге настроек представления происходило неверно.
- Исправлен стиль компонента
ViewInformationLabel, влиявший на некорректное отображение текста сообщений об ошибках в контролах карточки. - Исправлена проверка значений начала и окончания действия исключения, а также начала и окончания действия именованного диапазона, при сохранении экземпляров карточек типа “Календарь” и “Тип календаря: Рабочая неделя”. Теперь не допускается возможность одинаковых значений для начала и окончания указанного диапазона.
- Исправлена работа расширения типа “Переместить колонку с тегами влево”.
- Исправлено заполнение поля
CompletedByRoleвTaskHistory. Поле заполняется именем сотрудника из поляCompletedByName, если не удалось определитьCompletedByRoleна основании связанных с заданием ролей. - В web-клиенте исправлена ошибка отображения границ ссылочных контролов диалогового окна “Настройки уведомлений по карточке”: ранее цвет фона диалогового окна совпадал с фоном содержащихся в нем контролов.
- Исправлена скрипт
tadmin Script TypeSettingsFix(ранееTypeFontsFix), который не учитывал некоторые настройки контролов, из-за чего для них мог оставаться указан шрифтSegoe UIвместо шрифтаDefault(nullв сериализованном типе.jtype). - Исправлено использование объектов
ICardTypeVisitorдля обхода вложенных объектов в форме у расширения типа “Таблица в представлении”. - Исправлено формирование архива с дампом схемы при возникновении ошибки сохранения схемы.
- В контроле “Представление” более нельзя скрыть колонку с тегами через пункт контекстного меню “Скрыть столбец”, сделать это можно только через настройку “Расположение тегов”.
- В web-клиенте исправлена ошибка контрола “Представление”, приводящая к отображению кнопки “Сохранить” в контекстном меню настроек видимости и порядка колонок в случае, если настройка “Разрешить сохранение настроек” неактивна.
- В web-клиенте исправлена ошибка, из-за которой не сохранялось расположение тегов в контроле “Представление” в карточке при его изменении через диалог настроек.
- В web-клиенте исправлено получение индекса колонки при двойном клике на ячейку контролов “Таблица” и “Представление”.
- Исправлена ошибка, из-за которой блокировки на чтение карточек освобождались не после завершения действия этих блокировок, а только после завершения всей транзакции.
- Исправлено формирование имени при получении контента файла или его версии.
- Исправлен вывод заголовков контролов карточки в тёмной теме, а также для других тем, переопределяющих цвет заголовка относительно стандартного в холодной теме.
- В web-клиенте в аннотациях pdf исправлены ошибки с перетаскиванием аннотаций и картинок.
- В web-клиенте в аннотациях pdf исправлено позиционирование аннотации текста при вставке.
- В web-клиенте исправлено сохранение позиции курсора в текстовом контроле при вставке.
- В web-клиенте исправлена индикация выпадающего списка у кнопок тулбара карточки.
- В web-клиенте для аннотаций pdf исправлено поведение выделения аннотаций при маштабировании и перемещении.
- В web-клиенте исправлена ошибка для контрола “Метка”, приводившая к тому, что при наличии прокрутки фон не растягивался вслед за содержимым.
- В web-клиенте исправлена некорректная обработка пустых параметров фильтрации представления целочисленного и вещественного типов.
- Исправлена ситуация, когда для сервисов
monitorиwebуказание переменной окруженияTESSA_CIDигнорировалось. - Исправлено имя переменной окружения
TESSA_CIDдля сервисаwebbi(ранее использовалась переменная с именемCID_FILE_NAME). - В web-клиенте исправлена ошибка, позволявшая вставку текста в контрол в режиме “Только дня чтения”.
- Исправлена ошибка, приводившая к некорректному результату при получении значений плейсхолдеров через метод контекста расширений на замену плейсхолдеров
PlaceholderReplaceExtensionContext.GetValueFromPlaceholderAsync. - В TessaAdmin в разделе “Рабочие места” из настроек расширения
WebChartWorkplaceExtensionубрана лишняя кнопка в настройке “Цвет выделенного элемента”, при нажатии на которую возникала ошибка. - В web-клиенте исправлена ошибка, из-за которой метод
CardService.getFileContentне передавал данныеinfoс сервера в ответе. - В web-клиенте в маршрутах в этапе “Создание карточки”, работающего в режиме “Открыть новую карточку”, исправлена ошибка, из-за которой не работала инициализация созданной карточки.
- В web-клиенте исправлена ошибка преобразования десятичного числа в цвет в формате RGBA, из-за чего в ситуации, когда в шестнадцатеричном виде числа количество разрядов было отлично от 6 и 8, переданное число не распознавалось системой как корректный цвет. Проблема затрагивала подсветку ячеек представления “Мои задания”, из-за чего при просрочке задания меньше чем на сути ячейка не выделялась оттенком красного цвета.
- В web-клиенте исправлена ошибка, приводившая к некорректному вертикальному выравниванию текста в поисковых запросах.
- Исправлена ошибка, из-за которой уведомления об истекающем сроке пароля продолжали отправляться даже после его истечения.
- В web-клиенте исправлено отображение предпросмотра файла при нажатии на любой элемент контекстного меню файла в файловом контроле.
- При ошибке операции синхронизации AD/LDAP в сформированную карточку ошибки теперь добавляется корректная ссылка на карточку.
- Из типа карточки “Операция” удалена неработающая ссылка на тип.
- В web-клиенте исправлена ошибка, возникающая при копировании цитат из обсуждений: ранее при вставке цитат в контролы “Текст с форматированием” или в другие обсуждения возможно было перейти к обсуждению, откуда была скопирована цитата.
- В web-клиенте исправлена ошибка, из-за которой параметр маппинга представления мог быть сгенерирован без критериев.
- Исправлена ошибка, которая могла возникать при передаче параметра маппинга, равного
null, в случае, когда флаг “Не добавлять параметр для Null” снят. - Исправлено сообщение о скором истечении срока действия пароля пользователя.
- Исправлена ошибка, из-за которой при экспорте карточек с прикреплёнными файлами значение свойства
CardFile.Hashдля таких файлов было отличное отnull. - Исправлено освобождение потока с контентом файла при использовании REST-метода
api/v1/cards/get-file-content-multipart. Предыдущее поведение могло приводить к тому, что файл или карточку с файлом нельзя было удалить, когда этот файл недавно загружался указанным методом. - В конструкторе бизнес-процессов в действии “Создание карточки” исправлена ошибка, из-за которой нельзя было выбрать тип документа для создания карточки.
- В web-клиенте и в desktop-клиенте исправлена ошибка, из-за которой карточки с типом “Диалог” не открывались, если в них использовался файловый контейнер
cardModel.FileContainer. - В конструкторе бизнес-процессов в действии “Условие” исправлена ошибка, из-за которой в настройках условий могли зависнуть удалённые списки условий, из-за чего при проверке условий система выполняла уже удалённые проверки.
- В web-клиенте исправлена ошибка, приводящая к отсутствию всплывающей подсказки при наведении на кнопку, созданной через
CardToolbarAction: ранее настройкаtoolTipне учитывалась. - В web-клиенте исправлена ошибка, из-за которой в карточке “Запись в истории” в меню системы не отображались глобальные пункты меню.
- В форумах и в контроле “Текст с форматированием” исправлено отображение изображений в режиме “Показывать уменьшенную версию”.
- В web-клиенте для поисковых запросов добавлено изменение фонового цвета при наведении на них курсора мыши.
- В web-клиенте исправлена ошибка, из-за которой неправильно определялся оператор при задании параметра представления типа
Booleanпри выборе группировки. - Исправлена ошибка, из-за которой при использовании старой системы замещения при отправке задания на контекстную роль заместители по типу документа добавлялись в список функциональных ролей задания не сразу, а только после перерасчёта заместителей.
- Исправлена запись в лог сервиса
webошибкиFailed to authenticate using Kerberos, если одновременно с Kerberos может использоваться Basic-аутентификация, обеспечиваемая средствами front-сервера (IIS, Nginx, Apache). - Исправлена ошибка расчёта заместителей по типу документа при использовании старой системы замещения, возникающая после отключения и включения заместителей в настройках роли.
- Исправлена редко встречающаяся ошибка при выполнении запроса к представлению на СУБД PostgreSQL без установленного флага
TreatAsSingleQueryв метаданных. Ошибка связана с тем, что сгенерированная хранимая процедура отсутствовала в кэше СУБД. - В окне “Роли задания” исправлено отображение подразделений сотрудников из состава контекстной роли при включённой новой системе замещений.
- В web-клиенте в контроле “Метка” исправлена ошибка отображения многострочного текста.
- Исправлена ошибка при восстановлении удалённой карточки с тегами, которая возникала в том случае, когда пользователь, производящий операцию восстановления, не имел прав на использование одного или нескольких прикреплённых к карточке тегов.
- В desktop-клиенте исправлен некорректный выбор элемента в контроле “Ссылка” при подтверждении элемента, выбранного из выпадающего списка, потерей фокуса на контроле.
- В web-клиенте исправлена индикация состояния “Только для чтения” для контрола “Флажок”.
- В web-клиенте исправлена фокусировка для контрола “Флажок”.
- В web-клиенте исправлено отображение заголовка для контрола “Флажок” в режиме переключателя.
- В маршрутах в этапе “Создание карточки” поле “Тип карточки” переименовано в “Тип”.
- В web-клиенте исправлен текст ошибки при отсутствии доступа на отправку ознакомления.
- Исправлена конвертация файлов из офисных форматов в
pdfпосредствомunoconvпри наличии в файле оглавления. - В тексте уведомления “Завершение подзадачи” исправлена ошибка, из-за которой исполнитель задания выводился некорректно.
- В desktop-клиенте исправлена ошибка, из-за которой в параметрах представлений не работала вставка значений с дробной частью.
- При генерации шаблонов файлов исправлена ошибка, из-за которой добавленные при генерации файла предупреждения и информационные сообщения не отображались пользователю.
- Исправлена ошибка, из-за которой в контроле “Таблица”, размещённом внутри формы строки другой таблицы, некорректно работала логика изменения порядка строк.
- В web-клиенте исправлена ошибка, приводящая к некорректному расположению иконки статуса в контролах диалогового окна распознавания текста.
- В web-клиенте исправлена ошибка, из-за которой при открытии диалога добавления тега не устанавливался фокус на контрол быстрого поиска представления.
- В web-клиенте при открытии сессии теперь корректно устанавливается локальный часовой пояс пользователя.
- В web-клиенте в маршрутах в этапе “Согласование” исправлена ошибка, из-за которой могла некорректно отображаться отметка о наличии дополнительных согласующих.
- Исправлена ошибка, из-за которой в представлениях “Мои обсуждения” и “Последние обсуждения” у параметра “Показать архивные обсуждения” отображались лишние критерии для фильтров.
- Исправлена ошибка, из-за которой при удалении записи в представлении “История ознакомления” выполнялось удаление сотрудника, которому было отправлено ознакомление.
- В web-клиенте исправлена ошибка резолва DI зависимостей при создании вторичного процесса в режиме без задания.
- Оптимизирована регистрация кэшей компиляции в
ICompilationCacheContainer. - В типе карточки “Шаблон” исправлена ошибка, из-за которой на верхней панели не отображались стандартные кнопки управления карточкой, такие как “Сохранить”, “Обновить” и “Удалить”.
- В web-клиенте исправлена ошибка, возникающая при переводе шаблона в режим редактирования.
- Исправлена ошибка, из-за которой после генерации файлов по шаблону с форматом
xlsxсводные таблицы этих файлов не отображались в редакторе Р7-Офис. - Исправлена ситуация, когда делегат, передаваемый в метод
IBackgroundServiceQueue.EnqueueAsync, выбрасывал исключениеOperationCanceledException, которое не было связано с переданным через параметр токеномCancellationToken, что приводило к остановке фоновой очереди операций для веб-сервиса. - Исправлена ошибка, из-за которой сервер мог попытаться получить файл из файлового источника, даже если было известно, что данный файл имеет ошибку.
- В web-клиенте исправлены ошибки в логике некоторых действий контекстного меню файлов, из-за которых клиент мог попытаться запросить файл у сервера, даже если было известно, что данный файл имеет ошибку.
- В desktop-клиенте исправлена ошибка, из-за которой в контекстном меню файлов отображались строки с действиями, которые не должны отображаться для файлов, имеющих ошибку.
- Оптимизирована обработка запросов на стороне web-сервера при добавлении участников в обсуждения.
- В web-клиенте исправлена ширина анимации загрузки.
- Исправлено отображение информации о том, что система находится в режиме технического обслуживания, в окне сообщения об ошибках. Ранее наблюдалось некорректное наложение стилей.
- Исправлена ошибка, из-за которой не освобождался номер из последовательности после безвозвратного удаления карточки. Ошибка воспроизводилась, если использовался только регистрационный номер и для проектного номера не стоял флаг “Освобождать номер при удалении”.
- Исправлена обработка создания задания, отправленного на контекстную роль, в старой системе замещений. Теперь, если при создании задания, основным исполнителем которого назначена контекстная роль, указать временную зону и календарь, система не будет пытаться вычислить их на основании состава контекстной роли, а возьмёт те, что указаны в задании. Кроме того, для расчёта плановой даты задания в описанном выше случае также будут использованы данные о временной зоне и календаре, указанные в самом задании.
- В web-клиенте в контроле “Таблица” исправлен поиск по контенту числовых колонок.
- В web-клиенте исправлена ошибка, приводившая к тому, что кнопка с многоточием тулбара в режиме “spread-end” растягивалась по ширине.
- В web-клиенте исправлена ошибка отображения кнопок завершения заданий с активной настройкой “Дополнительный вариант”.
- В web-клиенте исправлена ошибка, приводящая к закрытию диалогового окна аннотаций при отсутствии подтверждения удаления аннотаций из файла.
- При генерации хранимых процедур для выполнения представления в СУБД PostgreSQL имя процедуры теперь не зависит от регистра переданных в запросе имён для алиаса представления, сабсетов и параметров фильтрации. Это оптимизирует количество хранимых процедур, если имена передаются в различных регистрах.
- В маршрутах оптимизирована компиляция сценариев.
- В desktop-клиенте для открытия файлов TIFF через пункт меню “Редактирование изображений” (для последующего преобразования в PDF) исправлено создание лишней пустой временной папки.
- В web-клиенте исправлено отображение поля информации о задании, которое содержит информацию о текущем сотруднике, взявшем задание в работу.
- В web-клиенте исправлена ошибка отображения данных типа
DateTimeOffsetв контролах таблиц. - В web-клиенте исправлена ошибка, из-за которой бандлы с расширениями могли подключаться в неверном порядке.
- Исправлено форматирование дат в сообщениях об ошибках, связанных с открытием сессии. Теперь даты форматируются в соответствии с предпочтениями пользователя. Ранее даты в таких сообщениях всегда форматировались в виде
dd/MM/yyyy. - Исправлены ошибки, из-за которых могли не освобождаться в Redis блокировки при: блокировке операций с помощью
IOperationLockingStrategy, расчётах ACL, создании и обновлении вложенных и умных ролей. - Исправлена установка запрета на изменение секции
BusinessProcessVersionsпри открытии карточки шаблона бизнес-процесса для тех случаев, когда секция была исключена из карточки. - В web-клиенте исправлена ошибка в файловом контроле, из-за которой в режиме множественного выбора при нажатии на файл происходил предпросмотр файла.
- В web-клиенте исправлена ошибка, приводящая к появлению лишней полосы прокрутки в диалоговых окнах ошибок в мобильной версии приложения.
- В web-клиенте исправлена ошибка, приводящая к появлению лишней полосы прокрутки в диалоговых окнах поисковых запросов в мобильной версии приложения.
- В web-клиенте исправлено выделение диапазона строк в контроле представления с зажатым Shift.
- В web-клиенте в диалоге добавления тега к карточке скрыта кнопка “Фильтрация данных”.
- Исправлена ошибка обработки шаблонов бизнес-процессов, из-за которой флаг “Блокировать процесс при асинхронном вызове” в настройках связи выполнял блокировку процесса при отсутствии флага, а не его наличии.
- В web-клиенте исправлена ошибка в контроле представления при установке колонки для группировки.
- Исправлена ошибка NRE, которая могла возникать при проверке сертификата посредством OSCP.
- Исправлена ошибка, из-за которой для карточки типа “Диалог” выполнялось вычисление дайджеста.
- В web-клиенте оптимизирована проверка прав на доступ к представлению “История заданий”, отображаемому в контроле “Представление”.
- В web-клиенте исправлено отображение текста для дополнительного описания файла.
- В маршрутах исправлена ошибка, из-за которой неправильно задавался идентификатор родительской строки этапа. Ошибка, например, приводила к неправильному формированию отображаемого списка “Участники” в таблице “Этапы маршрута” в карточке документа, если участников было больше двух.
- В web-клиенте исправлена ошибка, приводящая к отображению пункта “На весь экран” для выпадающего списка пользовательских настроек в мобильной версии приложения.
- Исправлена ошибка, из-за которой не отображался пункт системного меню “Редактировать” в карточке “Сотрудник”. Ошибка возникала, если тип карточки “Сотрудник” был добавлен в типовое решение, и состояние карточки отлично от “Проект”.
- В web-клиенте исправлена ошибка переключения режима сортировки таблицы при обновлении карточки, если режим сортировки столбца указан в расширениях.
- Исправлена ошибка, которая могла возникать при параллельном создании текстового слоя в процессе распознавания многостраничного файла.
- Исправлена проблема, из-за которой при возникновении ошибок во время загрузки файла карточки для него устанавливался некорректный статус.
- В карточке “Правило расчёта ACL” в контроле “Расширения” поиск расширения по имени через автокомплит или параметр представления теперь выполняется без учёта регистра.
- Исправлена ошибка в API конвертации файлов, где поток на временный файл с результатами конвертации мог быть не закрыт, если в процессе сохранения карточки кэша файлов возникло необработанное исключение (такое, как по токену отмены операции). В результате временный файл не удалялся.
- В desktop-клиенте исправлена ошибка, возникавшая при открытии представления, у которого в настройке строкового названия
DisplayValueColumnдля какой-либо из ссылок был указан алиас не строковой колонки. - В web-клиенте исправлена обработка drag-and-drop файла в контрол “Текст с форматированием”.
- В web-клиенте исправлена проблема, из-за которой не локализовывался текст при возникновении ошибки во время загрузки файлов карточек.
- Исправлены возможные ошибки в кэшах настроек календарей, типов календарей и кэше бизнес-процессов.
- В web-клиенте исправлена ошибка, приводящая к отсутствию возможности загружать файлы в приложение при использовании мобильных устройств на iOS.
- Исправлено формирование обратных ссылок в письмах мобильного согласования.
- Исправлена ошибка, из-за которой не учитывались изменения в контексте расширений на отправку уведомлений.
- В представлении
TaskHistoryисправлена ошибка, из-за которой не отображалось состояние “назначено на” для незавершённых заданий. - В web-клиенте исправлена ошибка, приводившая к появлению неиспользуемого пространства в выпадающем меню тегов карточки.
- В web-клиенте исправлена ошибка, из-за которой при выгрузке данных из представлений имя файла имело неправильное значение.
- Исправлен возврат
IConditionSourceпо коллекционным секциям из типов карточек настроек, вызываемый во время исправления типов условий. - В приложении-ассистенте Deski исправлены ошибки в логике определения блокировки на файле.
- В web-клиенте теперь карточка не будет сохранена при наличии проблем с файлами в Deski. В этом случае сохранение будет отменено, и пользователю будет выведено сообщение об ошибке.
- Исправлен сброс кэша настроек истории действий при запросе новой карточки настроек сервера.
- В web-клиенте исправлена ошибка, возникавшая при закрытии редактора настроек дня недели в карточке “Тип календаря: Рабочая неделя”.
- Исправлены опечатки в названиях методов:
WorkflowHelper.InializeTaskCompletionOptionsAsync -> WorkflowHelper.InitializeTaskCompletionOptionsAsync,WorkflowHelper.InializeActionCompletionOptions -> WorkflowHelper.InitializeActionCompletionOptions. - Исправлена работа параметра “Заместитель” при использовании в представлениях по замещениям при включённой новой системе замещений.
- В методе
GuardStatics.ThrowIfNullValueисправлена обработка значения параметраparamName. - В web-клиенте исправлена ошибка отображения некоторых значений в ячейках представлений: ранее значения
falseи0не отображались. - В web-клиенте исправлен баг, когда шапка таблицы и контент таблицы разъезжаются после переключения вкладок.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению параметров фильтрации с выбранным критерием “между”: ранее отсутствовал визуальный разделитель между полями.
- В web-клиенте исправлено отображение пункта “Открыть карточку” контекстного меню, добавляемого в представление расширением
ViewsContextMenuExtension. - В web-клиенте исправлена ошибка, приводящая к тому, что в мобильной версии приложения диалоговые окна валидации всегда отображались на весь экран.
- В конструкторе бизнес-процессов в действиях “Согласование” и “Подписание” исправлена ошибка, из-за которой не создавалась запись в истории заданий “Вернуть документ на доработку” при завершении действия с отрицательным вариантом завершения.
- В web-клиенте исправлена ошибка, приводящая к появлению ошибок и предупреждений в консоли браузера при работе с панелью приложения.
- Исправлена работа трассировки представлений.
- Оптимизирована работа представлений на СУБД PostgreSQL посредством использования флага
TreatAsSingleQuery. - Оптимизирована работа всех стандартных SQL-функций на СУБД PostgreSQL посредством указания дополнительных атрибутов, что приводит к оптимизации плана запроса, в котором используются эти функции.
- Для SQL-функций
GetStringиLocalizeпри выполнении на СУБД PostgreSQL исправлено поведение, чтобы при указании параметраculture, равногоNULL, функция возвращала бы значениеNULL. Ранее возвращалась исходная строка, что не соответствовало атрибутуSTRICT, указанному для функции. Для СУБД MS SQL Server поведение этих функций уже было ожидаемым, т.е. теперь функции на двух СУБД возвращают идентичные результаты, когда один или несколько параметров переданы какNULL. - В desktop-клиенте исправлена ошибка в окне параметров фильтрации представлений. Для воспроизведения нужно добавить параметр с любым критерием, подвердить фильтр “ОК”, после этого открыть диалог фильтрации ещё раз, удалить все критерии этого параметра крестиком, тут же ещё раз добавить этот же параметр, после чего подтвердить фильтр “ОК”. В результате представление выполнялось одновременно и с предыдущими значениями критериев, и с новыми, а если в метаинформации параметра запрещено более одного значения
Multiple: false, то выполнение представления завершалось ошибкой. - В web-клиенте исправлена ошибка, приводящая к некорректному расположению зоны “Загрузить файлы” в карточках на устройствах под управлением iOS.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению контролов карточек на устройствах под управлением iOS.
- В web-клиенте в мобильной версии приложения добавлены недостающие кнопки в заголовок обсуждений: кнопка обновления текущего обсуждения и кнопка поиска по нему.
- Оптимизирован JSON, генерируемый при сериализации ответа на запрос по выполнению представления
TessaViewResult. Это сокращает сетевой трафик и оптимизирует затраты сервера и клиента по сериализации результата с большим количеством колонок и строк. - В web-клиенте фон компонента предпросмотра HTML файла в тёмной теме теперь аналогичен фону холодной темы.
- В web-клиенте при вставке из буфера обмена в однострочные поля ввода вставляется только первая строка, если был скопирован многострочный текст.
- В web-клиенте при закрытии всех вкладок и рабочих мест будет открыто первое в списке рабочее место.
- В web-клиенте исправлено отображение кнопки задания “В работу”, когда у пользователя нет функциональной роли с возможностью брать задание в работу.
- В web-клиенте исправлена группировка файлов в расширении “Список файлов в представлении” при открытии карточки.
- В web-клиенте исправлено форматирование отображаемого значения с типом, отличным от строкового, в контроле “Представление”, для которого используется расширение “Таблица в представлении”.
- В web-клиенте исправлен сброс счётчиков для общего числа строк и общего числа страниц в detail-представлении при изменении данных в master-представлении.
- В web-клиенте при выборе значения сабсета, ссылочная колонка которого равна
null, теперь применяется критерий “пусто” вместо критерия “равно” со значениемnull. Это соответствует поведению desktop-клиента, а также алгоритму маппинга в полях с автодополнением. - Добавлена возможность “Перевести на себя” задание, взятое в работу другим сотрудником и находящееся в состоянии “Отложено”.
- Исправлена десериализация нетипизированного массива из Typed Json, где первый элемент был равен
null. - Оптимизирована сериализация массивов в Typed Json, где могут быть вперемешку только вложенные массивы, объекты (хэш-таблицы) и
null. Теперь для них не перечисляются типы по дескриптору::typesдля всех элементов. Это не влияет на корректность десериализации. - В TessaAdmin и для консольной команды
tadmin ImportSchemeисправлено сохранение записей в таблицах типаEnumerationдля дробных значений колонок вещественных типовDouble,Decimalи др. Ошибка воспроизводилась, если у пользователя, сохраняющего схему, настройки форматирования были указаны для русского языка. - В web-клиенте исправлена ошибка, приводящая к сохранению стилей темы при копировании сообщений из обсуждений.
- Исправлена ошибка в обработке OCSP-ответа, если в нём указан хеш публичного ключа, а не имя издателя.
- Исправлена ошибка, возникающая при импорте карточек, когда у перезаписываемой карточки отсутствует строковая секция в БД при использовании СУБД Postgres.
- В web-клиенте исправлена ошибка отображения дерева представлений в браузере Safari на iOS и macOS: ранее при прокрутке приложения дерево представлений не изменяло своего положения.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению фонового цвета скрытых строк контролов таблиц и представлений.
- В правилах доступа исправлена ошибка, из-за которой правила доступа с настроенными правилами расчёта ACL и без настроенных ролей не всегда учитывались при проверке расширенных настроек прав доступа.
- В правилах доступа исправлена ошибка, из-за которой для правил доступа с настроенными правилами расчёта ACL и без настроенных ролей не учитывался флаг “Всегда проверять правило доступа”.
- Исправлена проблема в работе с кэшом файлов для Р7/OnlyOffice, из-за которой могли возникать ошибки при одновренном обращении к файлам.
- Исправлена проблема, из-за которой не показывался текст ошибки подписи.
- В маршрутах исправлена ошибка, из-за которой запускался этап, который был пропущен пользователем и удалён из шаблона этапов.
- В web-клиенте исправлена функциональность кнопки “Сбросить настройки” текущего представления. Теперь при сбросе настроек текущее рабочее место будет закрыто и открыто заново с настройками по умолчанию.
- В web-клиенте исправлен внешний вид текстового поля в диалоге добавления новой папки.
- В web-клиенте в тёмной теме исправлен цвет текста выбранного месяца в элементе управления “Календарь”.
- В web-клиенте в тёмной теме исправлен цвет подсказки узла “Теги” в рабочем месте пользователя.
- Исправлено определение неактивных компонентов, если текущее время на сервере Redis и в приложении (веб-сервисе), которое проверяет дату последней активности компонентов, отличается.
- В web-клиенте исправлен баг, когда при возникновении ошибки при загрузке файлов, пользователю не показывалось сообщение об ошибке и больше нельзя было прикреплять файлы.
- Исправлен запуск Deski на компьютерах пользователей с установленными дистрибутивами ОС Linux, в которых используется старая версия библиотеки
glibc. - При обработке шаблонов файлов в формате
.docxисправлена ошибка обработки табличных плейсхолдеров внутри строк таблиц, возникающая при выделении области таблицы с помощью примечания. - При обработке шаблонов файлов в формате
.docxисправлена ошибка замены плейсхолдеров в параграфах после сохранения файла с помощью LibreOffice. - В web-клиенте исправлено сообщение в консоли браузера от библиотеки
react-dropzone, предупреждающая о том, что свойствоdisableClickявляется устаревшим. - Для сервиса
webbiисправлена совместимость с некоторыми дистрибутивами ОС Linux, использующих старую версию библиотекиglibc. - В web-клиенте исправлена ошибка, приводящая к отсутствию отображения контекстных меню при длительном нажатии в браузере Safari на iOS.
- Исправлено заполнение поля
AssignedOnRoleв истории заданий, когда в списке связанных с заданием ролей нет ни одной записи с функциональной ролью, требующей взятие задания в работу. - В типе задания “Настраиваемое задание” исправлена ошибка, из-за которой варианты завершения задания могли быть доступны автору задания при определённых настройках типа задания и функциональной роли.
- Исправлено выполнение метода-расширения
PlatformExtensions.RunWithMaxDegreeOfParallelismAsync, когда в одном из запущенных тасков выброшено исключение. Теперь метод дожидается окончания всех уже запущенных им задачTask, прежде чем выбросить исключение наружу. - В desktop-клиенте исправлена работа расширения типа карточки “Переместить колонку с тегами влево”.
- В web-клиенте исправлена ошибка отображения контрола “Строка” в режиме ввода кода: ранее при скрытии контрола и его повторном отображении ввод текста был невозможен.
- В web-клиенте добавлена возможность изменять кнопки диалога редактирования строки для компонента таблицы.
- В web-клиенте исправлена ошибка, из-за которой в представлении, для которого настроено расширение “Таблица в представлении” и указано поле для сортировки, не отображались кнопки перемещения строк.
- Изменена проверка варианта завершения при завершении универсального задания, отправленного из маршрутов. Теперь вариант завершения задания сравнивается с доступными вариантами из этапа маршрута в шаблоне этапа.
- В web-клиенте изменен механизм отрисовки кнопок в задании, теперь при изменении массива кнопок будет происходить перерисовка.
- В представлении “Шаблоны этапов” исправлена ошибка фильтрации “По типу” при выполнении на СУБД PostgreSQL.
- В web-клиенте исправлена ошибка, возникающая при сортировке десятичных колонок таблиц и представлений: ранее, если ячейки десятичных колонок имели значение
null, то при сортировке появлялась ошибка отображения пользовательского интерфейса. - Добавлено понятное сообщение об ошибке, когда у плейсхолдера
{fv:...}указано некорректное имя колонки. - В аннотациях pdf исправлено отображение контрола с вводом текста комментария при раскрытии/скрытии панели комментариев.
- При обработке шаблонов файлов в формате
.docxпри определении таблиц с плейсхолдерами в случае, когда внутри таблицы есть другая таблица. Теперь таблицей с плейсхолдерами определяется наружная таблица, а не внутренняя. - В desktop-клиенте исправлена ошибка, из-за которой в контроле с файлами отображались дубли файлов, изменённых на предыдущих циклах согласования, даже когда не использовалась группировка “По циклу согласования”.
- В представлении “Мои задания” в версии для СУБД PostgreSQL исправлена ошибка расчёта срока завершения задания, которая могла возникнуть при наличии нескольких календарей в системе.
- Исправлено определение типа устройства на сервере при открытии сессии в web-клиенте. Вместо
DeviceTypes.Desktopопределялся типDeviceTypes.Other. - В web-клиенте исправлена ошибка, приводившая к тому, что в json-файлах темы значения свойства
marginне конвертировались из юнитов в пиксели. - В карточке сотрудника на вкладке “Мои замещения” в таблице “Кто меня замещает по документам” исправлено отображение срока действия замещения.
- В web-клиенте исправлена невозможность вставки текста из буфера обмена в многострочные поля ввода.
- В web-клиенте исправлено отображение параметров фильтрации в режиме “только для чтения” в темной теме: ранее содержание параметра фильтрации имело светло-серый фон.
- Исправлен порядок отправки исполнителям заданий, относящихся к действию редактора бизнес-процессов “Согласование” в соответствии с порядком указанных исполнителей в списке.
- В web-клиенте исправлена ошибка, возникавшая при поиске в представлении, для которого определено расширение типа карточки “Таблица в представлении”.
- В конструкторе бизнес-процессов в действиях “Согласование” и “Подписание” исправлена ошибка, из-за которой в свойстве
IWorkflowEngineContext.Tasksсодержалось некорректное значение. Ошибка воспроизводилась, например, при завершении задания “Согласование”, имеющее дочернее задание “Запрос комментария”. - В маршрутах в этапе “Регистрация” исправлена ошибка, из-за которой запись в истории заданий и в листе согласования имела неверный порядок. Ошибка возникала, если регистрация выполнялась без отправки задания, и после неё выполнялся этап “Типовая задача”.
- В web-клиенте исправлено отображение компактной версии контрола “Обсуждения” относительно его собственной ширины, а не ширины экрана.
- В маршрутах исправлена ошибка, из-за которой для заместителя по типу документов неверно определялись доступные для добавления вручную этапы.
- В TessaAdmin при сохранении и экспорте рабочего места исправлено указание локализованного на текущий язык значения для параметра фильтрации представления в узле рабочего места, если параметр выбирался по диалогу с троеточием, а не при вводе с автодополнением.
- В TessaAdmin исправлена ошибка, когда при перемещении узлов в рабочих местах (drag&drop или copy/paste) из базы данных могли быть удалены права доступа (очищен список ролей) для некоторых рабочих мест, включая те, что не были изменены. Список ролей не должен быть изменён при такой операции.
- При изменении ролей заданий в карточках теперь не загружаются кнопки вторичных процессов и бизнес-процессов.
- В таблице
ServerInstancesколонкаUseNewDeputiesтеперь указывается со значением по умолчаниюtrue. Это влияет на инициализацию новой базы данных без импорта карточки “Настройки сервера”, что может быть в тестах. - Из архива со сборкой удалён неактуальный скрипт
Fixes/DeleteWfResolutions.ms.sql. - Исправлена возможность получения клиентом некорректной метаинформации, если перезапустить его после изменения системы замещения в настройках сервера до того, как сервис
webбудет перезапущен. - Исправлена ошибка, из-за которой при запросе файла для OCR в истории действий не записывалось имя этого файла.
- В web-клиенте исправлена возможная ошибка обращения к секции
WfResolutionsзадания резолюции при открытии карточки. - В web-клиенте исправлено отображение контрола “Кнопка” с включённой настройкой “Использовать всё пространство”.
- В web-клиенте для мобильных устройств исправлено отображение выпадающего списка со способами распознавания на панели инструментов в области предпросмотра карточки операции OCR.
- В мобильной версии web-клиента исправлена ошибка, приводившая к некорректному позиционированию изображений в диалоге предпросмотра.
- В web-клиенте исправлена ошибка, приводившая к закруглению углов области предпросмотра изображений в диалоге.
- При отмене операции конвертации файла посредством исключения
OperationCanceledExceptionбудет выполнено удаление этой операции из базы данных. - В web-клиенте исправлено отображение длинных заголовков диалогового окна в браузере Mozilla Firefox.
- В файлах
DockerfileиDocker/jinni/templates/*.template, связанных с разворачиванием системы в контейнерах Docker, исправлены предупрежденияLegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" formatиFromAsCasing: 'as' and 'FROM' keywords' casing do not match. - В web-клиенте исправлена ошибка в контролах “Ссылка” и “Список”, из-за которой контролы не отображали результаты валидации.
- В web-клиенте исправлено множественное обновление представления после редактирования карточки, открытой из него.
- В web-клиенте исправлена ошибка некорректного отображения картинок формата
webpв предварительном просмотре. - Исправлена ошибка, возникавшая при экспорте карточек “Разделы справки”, если у экспортируемой карточки не было прикреплённых изображений или файлов.
- Исправлена ошибка, из-за которой при сохранении карточек “Правило доступа” в историю действий не записывался дайджест карточки.
- В web-клиенте исправлена ошибка, при которой текстовый редактор в обсуждениях уходил за границу контрола.
- В web-клиенте исправлено отображение кнопки разворачивания у текстового поля в режиме чтения.
- В web-клиенте исправлена ошибка, при которой кнопка разворачивания перекрывала остальные кнопки в правой части контрола.
- В web-клиенте для контрола “Выбор цвета” добавлена возможность указания прозрачности цвета вне зависимости от использования палитры.
- В web-клиенте исправлен выбор цвета заданий в диалоге “Мои настройки”.
- В web-клиенте исправлено применение цвета заданий по умолчанию.
- В web-клиенте в контроле “Выбор цвета” исправлен цвет, заданный в палитре по умолчанию.
- Исправлена ошибка механизма исключения секций из проверки валидаторами типов карточек в реализации
ICardValidationLimitationManager. Из-за ошибки при маскировке всей секции целиком через расширенные настройки правила доступа валидация замаскированных полей всё равно выполнялась. - В web-клиенте исправлено некорректное отображение вертикальной полосы прокрутки для таблиц при заданном расположении блоков в карточке.
- В конфигурационном файле
app-db.jsonдля консольной утилитыtadminв строке подключенияmigrationтеперь указаны настройкиMaxAutoPrepare=50; AutoPrepareMinUsages=20. - В TessaAdmin исправлено сообщение об ошибке при попытке выполнить в отладке пустой SQL-запрос.
- В web-клиенте в представлениях для параметров с типом “Дата” теперь не показывается время в случае, если режим работы не указан.
- В web-клиенте исправлено автоматическое заполнение даты окончания действия исключения датой начала действия исключения, если дата окончания действия исключения не заполнена. Теперь дата окончания действия исключения указывается датой начала действия исключений, но со временем, установленным на конец дня. Также при выборе даты окончания исключения мышкой теперь заполняется конец дня, если дата окончания исключения до этого была не заполнена.
- Исправлено неверное отображение ошибки, когда даты начала и окончания действия исключений в календаре или типе календаря были указаны неверно.
- В web-клиенте исправлена ошибка отображения активных узлов дерева представлений на устройствах с сенсорным экраном: ранее активный узел был стилизован как узел, над которым наведен курсор.
- Исправлена возможная ошибка
NullReferenceExceptionв случае, если проверка прав доступа происходит для несуществующей карточки. - Оптимизировано получение карточек контекстных ролей из кэша
ICardContextRoleCache. - В web-клиенте у контролов с возможностью указать количество строк исправлена вёрстка сообщения об ошибке.
- Исправлена ошибка, из-за которой не выполнялось освобождение блокировки на запись. Ошибка возникала, в случае, когда существующая блокировка на чтение была эскалирована до блокировки на запись.
- Добавлена валидация возвращаемого значения методов
GetCardXXXв скриптах карточек маршрутов и типов условий. - Исправлена возможность передать
nullдляTabSelectedEventArgs.SelectedTab. Ранее невозможность передатьnullприводила к ошибке, если в контроле с вкладками скрыть все вкладки. Например, посредством расширенных правил доступа. - Исправлено автоматическое освобождение блокировки на чтение при выходе из скоупа транзакции
ITransactionScopeContext, когда не был явно вызван метод для её освобождения (например, это вызовICardLockingStrategy.ReleaseReaderLockAsyncдля освобождения блокировки на карточку). - Исправлено отображение превью страниц в аннотациях pdf.
- Исправлена ошибка при входе в систему с использованием двухфакторной аутентификации (2FA).
- В web-клиенте исправлен некорректный предпросмотр pdf документа, если документ имеет угол поворота.
- Исправлено отображение страниц и превью страниц в аннотациях pdf для файлов, содержащих разноформатные страницы.
- В серверных расширениях
NumberDigestRequestExtensionиCardDigestRequestExtensionисправлена ошибка, из-за которой не формировался дайджест для карточки, содержащей неполные данные. - В web-клиенте исправлена ошибка, из-за которой в диалоге фильтрации представлений не всегда корректно работало автодополнение для параметров с настроенным маппингом.
- Исправлена ошибка импорта схемы, созданной через команду
tadmin SchemeCompact. - В web-клиенте в карточке “Сотрудник” исправлен цвет и размер текста метки для типа входа в систему “Пользователь Windows”.
- В web-клиенте исправлен цвет текста контрола “Метка” с типом “Гиперссылка”.
- В web-клиенте исправлена ошибка, из-за которой в метке для отображения информации в представлении
ViewInformationLabelне учитывались значения из свойстваclassName. - В конструкторе бизнес-процессов в действиях “Доработка” и “Задание регистрации” исправлен текст ошибки, возникающей при выполнении действия без указания исполнителя задания.
- Оптимизировано кэширование объектов
StringBuilderпосредством их получения методомStringBuilderHelper.Acquireс последующим освобождением методами-расширениямиbuilder.Release()иbuilder.ToStringAndRelease(). - В маршрутах в этапе “Диалог” с временем жизни “Запрос” исправлена ошибка, из-за которой при завершении диалога сообщения валидации выводились два раза. Ошибка возникала, если диалог был запущен в синхронном локальном вторичном процессе.
- В web-клиенте для тем добавлена возможность создавать наборы иконок.
- В web-клиенте исправлена ошибка отображения кнопки календаря в параметрах фильтрации, которые содержат контрол времени: ранее эта кнопка была смещена к верхнему краю границы выбранного параметра фильтрации.
- В web-клиенте исправлена ошибка, из-за которой контролы с дефолтными настройками ширины в горизонтальном блоке не подстраивались под размер контента.
- В команде
tadmin SchemeDiffисправлена ошибка, возникающая при сравнении схем, в которых есть различия в порядке ссылочных колонок комплексной колонки или в списке колонок индекса. - В web-клиенте исправлена ошибка, приводящая к отображению групп в истории заданий, которые не содержат строк.
- В web-клиенте исправлена ошибка параметра фильтрации, который содержит контрол даты: ранее кнопка выбора даты в контроле с активным критерием “между” была неактивна.
- В web-клиенте исправлена ошибка предпросмотра PDF при включённом флаге “Постраничный предпросмотр PDF”.
- Исправлено заполнение дайджеста карточки в истории действий при изменении ролей заданий из desktop-клиента.
- В конструкторе бизнес-процессов исправлены ошибки обработки привязок, возникающие при попытке получить по привязке списки любых типов, отличных от
List<object>. - В глобальных диалогах, выводимых этапом или действием “Диалог”, исправлено создание тайлов.
- В отчётах по текущим и завершённым заданиям исправлена ошибка расчёта средней просрочки задания, которая могла возникнуть при наличии нескольких календарей в системе.
- В web-клиенте в аннотациях pdf исправлена точность вставки и перемещения аннотаций в зависимости от масштаба.
- В web-клиенте исправлена ошибка диалогового окна параметров фильтрации: ранее при изменении параметров фильтрации выбранного поискового запроса невозможно было сбросить изменения при повторном клике на выбранный поисковой запрос.
- В web-клиенте исправлена ошибка, из-за которой кнопка “Добавить обсуждение” отображалась, даже когда контрол работал в режиме только одного обсуждения.
- В desktop-клиенте исправлена ошибка, из-за которой кнопка “Добавить обсуждение” была неактивна до перехода в режим повышенных привилегий, если карточка была в состоянии, отличном от “Проект”.
- В web-клиенте оптимизировано сохранение карточки. Теперь при вызове сохранения карточки клиент не будет отправлять запрос на получение дайджеста с сервера.
- В desktop-клиенте оптимизировано сохранение новой карточки. Теперь при вызове первого сохранения карточки система не будет отправлять запрос на получение дайджеста сразу же после выполнения сохранения.
- В конструкторе бизнес-процессов и маршрутах оптимизировано получение дайджеста основной карточки при её сохранении после окончания обработки процесса.
- Исправлена работа фильтров по идентификатору сотрудника, идентификатору карточки и идентификатору типа карточки при трассировке серверов приложений.
- При сохранении карточек из них теперь удаляется информация о платформенных тайлах и тэгах.
- При сохранении карточек из них теперь удаляется информация о вторичных процессах, даже если для типа карточки не включены маршруты.
- В конструкторе бизнес-процессов в действии “Диалог” исправлена ошибка, из-за которой задание диалога было доступно автору.
- В web-клиенте исправлено некорректное позиционирование заголовка относительно крайней границы контрола.
- В web-клиенте исправлено позиционирование диалога заданий в компактной версии. Теперь он корректно перекрывает рабочую область.
- Исправлена ошибка импорта карточек вторичных процессов, из-за которой при импорте карточки затиралось описание условий в таблице условий.
- В web-клиенте для аннотаций pdf исправлено отображение контрола регулировки прозрачности.
- Исправлено возможное зависание сервера приложений в случае, если используются расширенные права доступа, запрещающие редактировать табличные секции.
- В web-клиенте исправлен баг, из-за которого кнопки на панели инструментов области предварительного просмотра PDF были расположены на разных уровнях.
- Исправлен импорт карточек, содержащих сателлит, для которого указаны файлы, ссылающиеся на несуществующее хранилище файлов.
- В web-клиенте исправлена ошибка, приводящая к появлению ошибки при изменении порядка столбцов в таблицах на устройствах под управлением iOS.
- В web-клиенте исправлен баг, из-за которого с включенной опцией “Постраничный предпросмотр PDF” не работала прокрутка.
- В web-клиенте исправлена ошибка параметров фильтрации, которые содержат контрол “дата и время”: ранее изменения в данных параметрах не применялись к представлению при нажатии на кнопку Enter.
- В представлении
ProtocolCompletedTasksисправлена логика получения данных для колонки “Роль”, сама же колонка переименована в “Назначено”. - В
webbiисправлена проблема разбора строк подключения кRedisв форматеStackExchange.Redis. - Исправлена ошибка, которая возникала при импорте карточек-синглтонов, если ID импортируемой карточки отличался от ID карточки, существующей в системе.
- Исправлены ошибки валидации заполнения обязательных полей при сохранении кнопок в карточках “Шаблон бизнес-процесса”.
- Исправлены ошибки валидации заполнения обязательных полей при сохранении карточек “Виртуальный файл”.
- В web-клиенте исправлена ошибка, приводящая к некорректной работе анимации контекстного меню в диалоговых окнах в браузере Mozilla Firefox.
- В web-клиенте исправлена ошибка, возникавшая в элементе управления “Обсуждения”, из-за которой нельзя было начать обсуждение в режиме “Единственное обсуждение”.
- В desktop-клиенте исправлена ошибка, из-за которой могли некорректно открываться версии файлов карточек.
- Исправлено возможное исключение
TaskCancelledExceptionпри остановке веб-сервиса (в т.ч. для гибридных тестов), в котором есть фоновые сервисы, выполняемые посредством объектаWebPeriodicService. - В web-клиенте исправлена ошибка, из-за которой недоступные пользователю кнопки тулбара карточки оставались доступны через выпадающий список.
- Улучшена генерация
RowIDдля строк таблицыActionHistory. Теперь создаваемые значения учитывают свойствоModified, что положительно сказывается на вставке в таблицу и индексах, использующих колонкуRowID. - В методе
SqlHelper.FormatParameterTypeпри использовании СУБД MS SQL Server иmaxSize = trueдля параметров с типомBinaryиVarBinaryтеперь корректно указывается типvarbinary(max). - Исправлен импорт карточек, содержащих сателлиты. Теперь при импорте таких карточек всегда производится импорт вложенных сателлитов, даже если в результате smart merge в основной карточке нет изменений.
- Исправлены регистрации зависимостей для класса
ApplicationPackageBuilderи для реализаций интерфейсаIApplicationPackageBinder, чтобы их использование в пределах одного DI-контейнера не могли пересекаться (актуально в т.ч. для тестов). - Исправлена ошибка при исправлении условий “По типу заданий” для правил доступа при миграции с версий платформы 3.x, где колонка
KrTaskTypeConditionSettings.IsAuthorиз старой версии системы (флаг “Я автор”) была указана с опечаткой в расширении на исправление (и этот флаг не переносился при миграции). - Исправлены возможные ошибки выполнения тестов в классе
Tessa.Test.Default.Shared.GC.ExternalObjectManagerиз-за race conditions, возникающих в классеLiteDB.BsonMapper. - В web-клиенте исправлена некорректная высота представлений на небольшой ширине экрана при скрытии дерева представлений на рабочем месте.
- В web-клиенте доработано применение цвета, выбранного через палитру, в контрол выбора цвета.
- В представлении “Мои документы” исправлена работа параметра “Тип” с условием “не равен”. Из доступных вариантов условий для параметра “Тип” исключены варианты условий “пусто” и “не пусто”.
- Исправлена ошибка, возникавшая при импорте библиотек локализации из файлов формата Excel, которая перезаписывала null-значения комментариев для строк локализации значениями пустой строки.
- Исправлено отображение обязательных к заполнению полей в типах “Тип условия” и “Раздел справки”.
- Исправлено отображения всплывающей подсказки для поля “Условие” в типе “Тип условия”.
- Добавлен отсутствовавший валидатор для обязательного к заполнению поля “Текст раздела” в типе “Раздел справки”.
- Исправлено состояние файла, удаляемого из корзины: вместо состояния
CardFileState.NoneиспользуетсяCardFileState.Deleted. - В web-клиенте в обсуждениях (форумах) теперь корректно учитывается значение свойства
Полнотекстовый поиск по сообщениям в обсужденияхиз карточкиНастройки сервера. - В маршрутах исправлены ошибки при выполнении вторичного процесса в обработчике этапа. Подробнее см. в руководстве разработчика.
- В маршрутах исправлена ошибка, из-за которой сигналы
KrConstants.KrCancelProcessGlobalSignalиKrConstants.KrSkipProcessGlobalSignalне обрабатывались текущим основным процессом, что приводило к выполнению этапов, следовавших за текущим. Ошибка воспроизводилась, если указанные сигналы были поставлены в очередь обработки сигналов для текущей основной карточки вторичным процессом, выполненным при обработке текущего этапа основного процесса. - В маршрутах исправлена ошибка “Невозможно изменить карточку. Требуется версия N, но в действительности версия M.” при запуске вторичного процесса из обработчика этапа.
- В маршрутах исправлена ошибка при запуске процесса из обработчика этапа. Ошибка воспроизводилась, если текущий процесс был запущен по сигналу.
- В маршрутах исправлена ошибка
InvalidCastExceptionпри получении значения свойстваKrProcessInstance.ProcessInfo. - Исправлено создание глубокой копии объекта с помощью метода
StorageExtensions.DeepClone. - В конструкторе бизнес-процессов исправлена ошибка, из-за которой при отправке сигнала внутри процесса (например действием “Отправить сигнал”) он мог обработаться узлом, который уже завершил своё выполнение в рамках текущей обработки процесса.
- В приложении-помощнике web-клиента Deski исправлена работа с буфером обмена в ОС macOS и в некоторых дистрибутивах ОС Linux.
- В web-клиенте исправлено скрытие окна с доступными вариантами для выбранного эмодзи при прокрутке общего списка с эмодзи.
- В web-клиенте исправлен результат выполнения метода
ValidationResultItem.toString, если для объекта задан ключ в полеValidationResultItem.key, отличный отValidationKey.unknown. - В web-клиенте исправлено сворачивание/разворачивание горизонтального блока при клике по заголовку.
- В web-клиенте исправлена ошибка отображения кнопки задач в карточках в тёмной теме для мобильной версии приложения: ранее цвет кнопки сливался с ее фоном.
- В web-клиенте в компактном режиме исправлено отображение элементов в тулбаре представления.
- По умолчанию имя файла на диске (без части с путём), создаваемого во временной папке при использовании API файлов и объектов
IFileContainer/ICardFileContainer, установлена равной 100 символам, что исправило ошибки для файловых систем, имеющих ограничение на длину полного пути (например, некоторые конфигурации с ОС Linux и файловой системой Ext3). Ранее длина ограничивалась только при использовании в desktop-клиенте, теперь это также затрагивает серверные компоненты, тесты, консольные команды и др. Ограничения можно снять, указав значение свойстваIFileContentOptions.MaxFileNameLength = 0. - Исправлено именование файлов, предлагаемых по умолчанию в desktop-клиентах в их диалогах “Сохранить как”. Теперь имена не превышают 100 символов (в соответствии с настройкой
MaxFileContentNameLength), что актуально для ОС Windows, в которых не включена поддержка длинных путей файлов. - В web-клиенте исправлено отображение индикации фокуса в файловом контроле.
- В ОС Linux исправлена обработка запроса на распознавание текста в файле с опцией “Выполнять предобработку страницы изображения перед распознаванием”, когда для изображения требовалось масштабирование для улучшения качества распознавания.
- Исправлено усечение имени файла при сохранении в базу данных, если длина имени с расширением превышает длину строковой колонки в базе данных (256 символов). Теперь усекается часть имени файла перед расширением, а расширение остаётся неизменным.
- В desktop-клиенте при переименовании файла ограничена максимально вводимая длина имени в 250 символов.
- В web-клиенте в контроле “Календарь” исправлено отображение окна с выбором даты, которое появляется при нажатии на кнопку, если у этой кнопки была изменена видимость.
- В web-клиенте исправлено отображение кнопок для очистки значения параметра фильтрации при использовании критерия “Между”.
- В web-клиенте заменена подложка с фоновым цветом на прозрачный в диалогах “Режим отображения” и “Создание временной ссылки на скачивание файла/версии”.
- В веб-сервисе исправлен сброс кэша типов документов при изменении карточки настроек типового решения в случае, если используются несколько рабочих процессов.
- Оптимизированы проверки на вхождение карточек в типовое решение.
- В web-клиенте исправлен баг, из-за которого при переходе в карточку задачи в компактном режиме не скрывалась кнопка переключения между областью заданий и областью карточки.
- Исправлена ошибка, из-за которой доступные тайлы шаблонов бизнес-процессов не исчезали с боковой панели карточки после её обновления в ситуации, когда в расширениях на загрузку карточки был удалён ключ со списком тайлов для отображения.
- В web-клиенте для аннотаций pdf исправлена работа с изменением размера добавленных картинок.
- Исправлена ошибка отключения заместителей при окончании срока замещения.
- В web-клиенте исправлена ошибка, приводившая к сбоям при расчете высоты текстовых контролов, если для них был задан пользовательский размер шрифта.
- В web-клиенте для аннотаций pdf исправлено положение рамки выделения.
- В web-клиенте исправлена ошибка, приводившая к отображению некорректного фона для контрола “Текст с форматированием” в режиме “только для чтения”.
- Исправлена ошибка распределения файлов по циклам согласования, из-за которой файлы, добавленные при выполнении типовой задачи, не попадали в правильную группу.
- В web-клиенте исправлена ошибка отображения валидации контролов, содержащих текстовое поле ввода: теперь валидация осуществляется при каждой потере фокуса контрола.
- Исправлена ошибка работы с доверенными сертификатами при подписи для пользователей без прав администратора.
- Оптимизировано определение доступа пользователя к представлениям.
- В web-клиенте исправлена обработка кнопок в диалогах, созданных из действия “Диалог” конструктора бизнес-процессов, если была включена настройка “Без отправки задания”.
- Исправлено выравнивание контролов в типах карточек
FileTemplate,KrStageTemplate,KrSecondaryProcess,KrStageGroupиKrTemplateCard. - В web-клиенте исправлена ошибка отображения контейнера содержимого вкладки карточки: ранее, при определенных масштабах окна браузера, могла обрезаться часть содержимого контролов в нижней части контейнера.
- Исправлена ошибка проверки расширенных настроек доступа к файлу, которая возникала, если расширение файла содержало заглавные буквы.
- В web-клиенте исправлено отображение превью файла при нажатии на строку контрола представления в режиме списка файлов и при отмене выбора.
- В web-клиенте исправлен автоматический расчёт ширины диалога по добавлению этапа в маршрут.
- В конструкторе бизнес-процессов исправлена ошибка выгрузки скриптов в файловую систему.
- Для электронных подписей исправлен механизм получения цепочки сертификатов, который приводил к предупреждениям в серверном логе.
- В web-клиенте в маршрутах исправлено форматирование параметров этапов: “Ветвление”, “Диалог”, “Ознакомление”, “Регистрация”, “Создание карточки”, “Типовая задача”, “Управление ветвлением”, “Управление историей”, “Управление процессом”.
- Оптимизирована миграция базы данных при использовании команды
tadmin MigrateDatabase. - Исправлена ошибка неправильного вычисления группы истории заданий. Ошибка воспроизводилась, если история заданий содержала группу заданного типа, но её родительская группа отличалась от используемой для текущей группы.
- Исправлено определение невалидных символов в именах файлов и путей на ОС Linux, чтобы они соответствовали значениям на ОС Windows для их замены в формируемых платформой именах файлов и путей (в т.ч. для консистентности в ситуациях, когда сервер расположен на ОС Linux, а клиент - на ОС Windows). Это могло приводить к ошибкам при скачивании файлов вида:
ArgumentException: The format of value 'File "name".txt' is invalid. - В конструкторе бизнес-процессов исправлена ошибка, из-за которой процесс переходил в некорректное состояние, если в момент асинхронной обработки процесса останавливали плагин асинхронной обработки
WorkflowEngineAsyncPlugin. - В контроле “Представление” исправлено обновление данных в области, выводящей текущие установленные параметры фильтрации при нажатии на кнопку “Обновить”.
- В web-клиенте исправлена ошибка отображения изображения фона в диалоговом окне “Фон и тема”: ранее изображение не адаптировалось к разрешению экрана и могло обрезаться на маленьких разрешениях.
- В web-клиенте исправлен подсчёт символов во время редактирования сообщения в обсуждениях.
- В web-клиенте исправлен баг, когда при вставке через буфер обмена переименованного файла сохранялось предыдущее название.
- В команде
tadmin Compileпередаваемые категории теперь проверяются без учёта регистра. - В web-клиенте исправлена ошибка получения контента файла из Deski, если до этого сохранение карточки было прервано и файл открывался для чтения или редактирования.
- В web-клиенте в маршрутах в параметрах этапа “Управление процессом” исправлена ошибка, из-за которой в режиме “Переход на этап” не отображалось поле “Строка с этапом”.
- В web-клиенте исправлена ошибка, из-за которой список обсуждений не обновлялся при создании нового обсуждения.
- В web-клиенте было улучшено определение жеста открытия контекстного меню файла в файловом контроле.
- В типовом процессе исполнения задач, маршрутах и конструкторе бизнес-процессов в этапах и действиях “Согласование”, “Подписание”, “Доработка”, “Ознакомление” и “Создать файл по шаблону” исправлены ошибки, из-за которых не выполнялась локализация параметров, заданных в виде алиаса строки локализации (
$LocalizableName). - В web-клиенте исправлено изменение высоты компонента файла, если он находится в процессе выполнения операции, например, при подписании файла.
- В web-клиенте исправлена ошибка отображения области предпросмотра: ранее в тёмной теме фон области предпросмотра сливался с фоном хром-панели этой области.
- В web-клиенте исправлено отображение фона строки таблицы при наведении.
- В маршрутах исправлена ошибка, из-за которой нельзя было создать несколько дескрипторов типов этапов, использующих одинаковый тип карточки настроек.
- В web-клиенте для внутренних переменных тем добавлена поддержка юнитов.
- В web-клиенте больше нельзя указывать прозрачность в цветах во внутренних переменных темах.
- В web-клиенте для объекта
ThemeBuilderреализована возможность добавить произвольный фрагмент к уже собранной теме. - Исправлена ошибка, из-за которой в списке участников обсуждения могли дублироваться пользователи.
- В web-клиенте исправлена ошибка, из-за которой в диалоге списка версий файлов могло отображаться два контекстных меню одновременно.
- В TessaAdmin для свойства
Максимум строкконтролаСтрокаисправлена локализация всплывающей подсказки валидации. - Для веб-сервиса
jinniпри его развёртывании в среде Docker исправлена установка актуальной версии LibreOffice. - Для веб-сервиса
jinniпри его развёртывании в среде Docker оптимизированDockerfileи шаблоны для его генерации. - При установке
Configuration.SealedилиConfiguration.StrictSecurityравнымtrueв конфигурационном файлеapp.jsonвеб-сервисаweb, поля, связанные со скриптами в маршрутах, теперь корректно помечаются как неизменяемые. - В web-клиенте исправлена работа вертикальной прокрутки контрола “Контейнер” c включенной настройкой “Включить прокрутку”.
- В web-клиенте для контрола “Дата и время” исправлены стили выделения текущей даты в календаре в темной теме.
- Исправлена ошибка конвертации файлов в pdf с указанием jwt-токена при использовании OnlyOffice/Р7 для конвертации.
- В web-клиенте исправлена утечка памяти в контроле “Текст с форматированием”.
- В ежедневной рассылке уведомлений по заданиям исправлена ошибка, приводившая к тому, что в уведомлении учитывались задания, в состав исполнителей которых входит текущий сотрудник, но задания были взяты в работу другим сотрудником.
- В конструкторе бизнес-процессов в действии “Группа заданий” исправлено отображение заголовков связей в поле “Переходы” в настройках обработки вариантов завершения заданий.
- В конструкторе бизнес-процессов в действиях “Согласование” и “Подписание” исправлена ошибка, из-за которой действия не отправляли сигналы завершения после удаления заданий по сигналу
DeleteTask. - В конструкторе бизнес-процессов в параметрах действия “Согласование” исправлена ошибка, из-за которой некорректно автоматически изменялось значение поля “Вид” после изменения состояния флага “Рекомендательное согласование”.
- Исправлено создание защищённых токенов доступа к содержимому системы
IContentTokenRepository. В некоторых случаях при сохранении защищённых токенов СУБД округляла поля, содержащие дату и время, что приводило к недействительности выданного токена. - В web-клиенте в диалоге фильтрации представлений убрано отображение кнопок контролов в режиме только для чтения.
- В web-клиенте поля
minDate,maxDate,beginDate,highlightBeginDateвDateTimeViewModelтеперь реактивные. - В конструкторе бизнес-процессов исправлены ошибки обработки привязок с типами “Карточка” и “Задание”. Ошибки возникали при получении значения ссылочного поля строковой секции при обработке привязки для списка значений, например, параметр “Роли” в действии “Группа заданий”.
- В конструкторе бизнес-процессов исправлена ошибка, из-за которой при настройке привязки типа “Представление” нельзя было выбрать “Параметр для ID карточки” с типом
Guid Null. - Исправлена ошибка, из-за которой не работала сортировка кнопок бизнес-процессов на тулбаре карточек.
- В web-клиенте исправлено выделение текста при выборе диапазона строк при помощи Shift в контроле представления.
- В конструкторе бизнес-процессов исправлена ошибка “System.InvalidOperationException: GetCardAsync method called outside of scope.” при отправке почтовых уведомлений.
- В web-клиенте в примере расширения
21_forumUIExtensionисправлено добавление кнопки и дублирование пунктов контекстного меню. - Время жизни токена, выписываемого для отображаемых пользователю аватаров, увеличено с 1 дня до времени жизни сессии (по умолчанию 7 дней).
- В API тестов исправлена ошибка в методе
KrTestHelper.GetWorkflowProcessAsync, из-за которой неправильно загружался идентификатор процесса. - В web-клиенте исправлена ошибка, из-за которой периодические запросы на сервер продолжали отправляться при невалидной сессии.
- Исправлена десериализация строк в json со стороны .NET, если строки содержат значения в ISO-формате даты вида
yyyy-MM-ddTHH:mm:ssZ. БиблиотекаNewtonsoft.Json, используемая для сериализации json, трактовала такую строку как объектDateTime(например, в строковом поле карточкиsection.Fields["Name"]содержался бы объект типаDateTime, а неstring). Теперь строковые значения всегда десериализуются как строки, независимо от содержимого, а десериализацияDateTimeвозможна только с суффиксом::dtmв имени ключа для Typed Json. - Исправлен метод
TessaSerializer.CreateTyped(Action<JsonSerializerSettings>). Теперь он создаёт сериализатор с конвертеромTypedJsonConverterдо того, как будет вызван делегат в параметре. Если конвертер должен быть добавлен вручную внутри делегата, то следует вызвать аналогичный методCreate. - В web-клиенте исправлено отображение фона строк у таблиц в компактной версии.
- Для подписей ЭП атрибут “Время подписи” выставляется в UTC.
- Исправлены предупреждения в консольном выводе веб-сервисов вида “HTTP/2 requires TLS application protocol negotiation” и “HTTP/3 requires TLS” при прослушивании портов по HTTP (без HTTPS).
- В web-клиенте исправлена ошибка, из-за которой выпадающий список мог перекрывать поле ввода в контроле “Ссылка”.
- В web-клиенте исправлена консольная ошибка несоответствия MIME-типов при открытии диалогового окна выбора файлов.
- Исправлена документация по генерации тестовых сертификатов.
- В web-клиенте в системе обсуждений больше не показываются кнопки “Подписаться” и “Выйти из участников” в неактуальных служебных сообщениях.
- В web-клиенте в системе обсуждений у кнопки “Подписаться” в выпадающем меню обсуждения исправлено обновление статуса подписки.
- При использовании свойства
CardStoreRequest.ForceTransactionвеб-сервисwebтеперь возвращает ошибку в случае, если запрос пришёл с клиентского приложения. - В web-клиенте исправлено применение срока доступа временной ссылки на файл при её создании. Раньше всегда применялся период, указанный в карточке настроек сервера в поле
Максимальный период действия ссылки на файл (дней). - В web-клиенте исправлено отображение пунктов контекстного меню у приложенных файлов для контрола “Текст с форматированием”.
- В web-клиенте исправлено отображение всплывающих окон при прокрутке.
- В web-клиенте в системе обсуждений убрано отображение сообщения об ошибке при выходе из обсуждения.
- В web-клиенте для тёплой темы исправлен фон некоторых кнопок при наведении.
- В web-клиенте исправлена ошибка, приводившая к невозможности задать полностью прозрачный фон для контрола “Метка”.
- В web-клиенте исправлено выравнивание надписи с отображением количества строк в некоторых представлениях.
- В web-клиенте исправлена ошибка, связанная с некорректным отображением тайлов в браузере Firefox.
- Модифицирован алгоритм работы
IBackgroundServiceQueueтаким образом, чтобы при штатной остановке веб-сервисов запланированные задачи могли быть выполнен. Ранее очередь просто прерывалась, и задачи не выполнялись. - В web-клиенте исправлена ошибка, из-за которой в расширении на узел рабочего места
InformationLabelViewExtensionв некоторых случаях некорректно рассчитывалась видимость метки. - Исправлена ошибка, из-за которой при выборе категорий файлов в контроле “Список файлов”, когда отсутствует флаг “Сохранять порядок категорий”, эти категории могли быть отсортированы не по алфавиту.
- В web-клиенте оптимизировано взаимодействие между клиентом и сервером при подписании файлов.
- В web-клиенте файлы теперь не загружаются полностью в память, а принимаются потоком. Процесс скачивания при этом контролируется браузером.
- В web-клиенте исправлена ошибка отображения контролов “Представление” в области заданий: ранее цвета, используемые в представлениях, не соответствовали цветовой гамме выбранной темы.
- В шаблонах файлов Word для выделенной табличной области, лежащей внутри параграфа, исправлено определение табличных плейсхолдеров в случае, когда к данному параграфу были привязаны элементы, обтекаемые текстом или лежащие перед/за ним (надписи, картинки и т.д.).
- В TessaAdmin при сохранении локализации исправлено отображение ошибок.
- В web-клиенте исправлена ошибка, связанная с некорректным расчётом позиции всплывающих окон.
- Исправлена ошибка “An item with the same key has already been added”, отображаемая при попытке добавить существующий заголовок в методе
ClientResponseExecutor.ResponseAsync. - В web-клиенте
MessageBoxтеперь корректно обрабатывает текст и обеспечивает правильное отображение обычного текста или HTML-разметки. - Исправлено возвращаемое имя версии файла при доступе к ней по временной ссылке. Ранее в качестве имени версии устанавливалось текущее актуальное имя файла.
- В web-клиенте в контроле “Текст с форматированием” исправлена ошибка добавления картинок.
- Исправлена ошибка, приводившая к лишней проверке доступа на изменение связанных с заданием ролей.
- Доработан
CardTaskAccessProviderтак, чтобы запрос проверки прав на изменение связанных с заданием ролей не вызывался повторно, если он уже был вызван в рамках текущей проверки. - В web-клиенте исправлена ошибка, из-за которой к контролу “Флажок” не применялись настройки текста.
- Исправлена ошибка “Sequence contains no matching element” при заполнении кэша виртуальных файлов.
- В web-клиенте исправлена ошибка, связанная с некорректным переносом строк в контроле “Текст с форматированием”.
- В desktop-клиенте для контролов “Флажок”, “Кнопка” и “Дата и время” исправлено применение настроек оформления текста “Подчёркнутый” и “Зачёркнутый”.
- В плагине расчёта заместителей исправлена ошибка, из-за которой заместитель с указанным периодом замещения не добавлялся в роль в первый день замещения.
- Исправлена ошибка, из-за которой тестовое представление “Генератор” (
TransientView) могло некорректно отображаться в web-клиенте. - Исправлена ошибка, из-за которой для настроек расширенных правил доступа “Допустимое количество файлов” и “Обязательный файл” учитывались виртуальные файлы карточки.
- Исправлена ошибка при сохранении схемы в базу данных, когда добавляется первая запись в таблицу-перечисление с указанием другой библиотеки, чем та, что задана у таблицы.
- Исправлена ошибка при сохранении схемы в базу данных, когда в таблице-перечислении присутствуют записи со значениями
NULL. - При взятии блокировки карточки на запись не проверяется её версия, если этого не требуется.
- Исправлен вывод представления “Задания от меня” при фильтрации по типу карточки, в котором отсутствует секция
DocumentCommonInfo. - Исправлен вывод колонки “Тип” для представлений в папке “Завершённые задания”, где задания были завершены по карточкам, тип которых используется без типов документов.
- Оптимизировано хранение данных в служебных таблицах посредством справочников нормализации:
ActionHistory,Instances,Files,FileVersions,DeletedFiles,DeletedFileVersions. - Оптимизирован размер и улучшена читаемость метаинформации представлений.
- В web-клиенте исправлена ошибка в контроле выбора цвета, из-за которой невозможно было указать цвет через поля ввода “hex” и “rgb”.
- В web-клиенте исправлена ошибка в диалоге редактирования тегов, из-за которой в контроле выбора цвета неправильно обрабатывались цвета с нулевой прозрачностью.
- В web-клиенте исправлена ошибка, связанная с некорректным переносом текста в поле с автодополнением.
- В web-клиенте исправлена ошибка предварительного просмотра SVG изображений в браузере Firefox.
- В web-клиенте исправлен фон некоторых диалоговых окон в тёплой теме.
- В web-клиенте в маршрутах в этапе “Подписание” исправлена ошибка “Cannot read properties of null (reading ‘id’)” при отображении заместителем исполнителя задания скрытых по умолчанию действий.
- Исправлено выполнение клиентских тестов, если метод
ClientTestBase.OpenSessionAsyncбыл вызван в одном из тестов, после чего упал с ошибкой (например, некорректный пароль). - Исправлена ошибка дублирования
usingиusing staticпри компиляции скриптов системы. - При обработке плейсхолдеров
{tv:...}и{fv:...}при передаче в плейсхолдер в качестве параметра значения с типомboolтеперь используется критерийIsTrueилиIsFalse, в зависимости от значения параметра. - Исправлено проблема, когда при наличии ошибки в файле схемы в сообщении об этой ошибке отображалось имя другого файла.
- В web-клиенте исправлена ошибка, из-за которой заголовки представлений в рабочих местах не соответствовали названиям узлов в рабочих местах.
- В web-клиенте исправлена ошибка делавшая невозможным применение настроек шрифта к элементам управления.
- В web-клиенте из нижней панели диаграмм убраны компоненты пейджинга и подсчета количества строк.
- В обработчике бизнес-процессов исправлена ошибка, возникавшая при сохранении результата обработки экземпляра процесса в карточку “Ошибка” в ситуации, когда обработчику не удалось взять блокировку на экземпляр процесса.
- Исправлена ошибка “The given key ‘TypeID’ was not present in the dictionary”, которая в некоторых случаях предотвращала запись в историю действий о неуспешном открытии карточки.
- В web-клиенте исправлена ошибка, из-за которой кнопка “Отмена” при создании карточки в диалоговом окне не вызывала диалоговое окно с подтверждением действия.
- Исправлена ошибка, из-за которой в типе условия “Изменение поля” можно было выбрать комплексную колонку.
- В web-клиенте исправлена ошибка отображения кнопок файлового контрола: ранее кнопки могли не отображаться при его инициализации.
- Исправлена ошибка “Токен подписан неверно” при валидации токена прав доступа, возникающая при чтении некоторых свойств расширенных настроек прав доступа до выполнения валидации. Это могло возникнуть при обращении к свойствам токена на клиенте или при повторной валидации токена на сервере.
- В web-клиенте исправлено применение списка доступных расширений файлов для файлового контрола.
- В web-клиенте исправлена ошибка отображения выбранных файлов через группы файловых контролов: ранее в области предпросмотра отображались файлы только из первой выбранной группы.
- В web-клиенте исправлена ошибка, при которой выпадающий список из тулбара появляется в левом углу окна.
- В web-клиенте исправлена ошибка “Отсутствуют доступные категории файлов.”, возникавшая при попытке сменить категорию файла, добавленного другим пользователем.
- В desktop-клиенте в типе карточек “Правило доступа” исправлена ошибка, из-за которой в контроле “Роли” не локализовывались значения ролей, содержащих в своём имени строку локализации.
- В web-клиенте исправлено появление полосы прокрутки в окне браузера после нажатия на кнопку “Загрузить файлы” в файловом контроле.
- Для сервиса
monitorисправлено логирование. По умолчанию логи записываются в файлlog.txtпо аналогии с другими сервисами. - В web-клиенте исправлена прокрутка диалога “О программе” на мобильных устройствах.
- Оптимизирована работа представлений “Активные бизнес-процессы” и “Процессы с ошибками” для СУБД PostgreSQL.
- В web-клиенте исправлено сохранение параметров фильтрации при открытии представления в новой вкладке.
- В web-клиенте исправлено сохранение параметров фильтрации при добавлении сохраненного запроса к узлу.
- В web-клиенте предотвращено выделение названий элементов дерева рабочего места и файлов в файловом контроле при вызове контекстного меню.
- В модуле синхронизации с AD/LDAP исправлена ручная синхронизация подразделений, статических ролей и пользователей. Теперь объекты скрываются и блокируются в случае, если они отсутствуют в AD/LDAP.
- В web-клиенте увеличено число строк у полей “Сообщение” и “Подробно” в диалоге ошибки.
- Исправлена ошибка, позволявшая администратору изменять схему данных при установленном в
app.jsonфлагеConfiguration.Sealed. - В web-клиенте добавлено ограничение на использование расширений загружаемых фоновых изображений. Список поддерживаемых расширений:
png,jpg,jpegиwebp. - В web-клиенте убран отступ у контрола флажка в режиме только для чтения.
- Для трассировки сервисов
webдобавлено ограничение на хранимую в памяти трассировку в случае, если сервисmonitorнедоступен. - Исправлена обработка счётчиков на основе
UpDownCounterдля сервисаweb. - В сервисе
monitorисправлена обработка счётчиков, содержащих метки с неподдерживаемыми символами. - В сервисе
monitorисправлено зависание в случае, если при обработке запроса произошла ошибка. - В сервисе
webисправлена обработка новых публичных ключейdiscoveryпри их добавлении в папку на диске в случае, если сервис уже запущен. - Для команды
tadmin GenerateDiscoveryKeyисправлено обращение кRedisв случае, если используется режимGenerate. - В сервисе
webисправлена включение трассировкиTracingMiddlewareв случае, если использовались группировкиWebили*. - В web-клиенте исправлена ошибка, из-за которой нажатие клавиши Enter в диалоге выбора эмодзи приводило к ошибке.
- В web-клиенте добавлены строки локализации для заголовков представлений “Текущие задания”, “Завершённые задания”, “Просроченные задания”.
- Исправлена ошибка починки типов условий в ситуации, когда при починке карточек с условиями одна из запланированных для исправления карточек была удалена.
- При взятии блокировок на объекты при помощи
IObjectTransactionLockingStrategyдобавлен учёт префикса объекта. - В web-клиенте исправлен баг, который возникал при просмотре больших файлов PDF.
- В конструкторе бизнес-процессов исправлена ошибка, из-за которой в режиме последовательной отправки заданий после удаления очередного задания следующее задание не отправлялось.
- В объектах
CardTaskиCardTaskSessionRoleдля web-клиента исправлены имена ключей, по которым происходило обращение к хранилищу объекта для получения его свойств. - Убрана лишняя проверка на наличие изменённого поля
NeedRebuildв секцииKrApprovalCommonInfoVirtualво время проверок прав доступа в типовом решении. - В TessaAdmin исправлено открытие типа карточки “Сотрудник” на предпросмотр с расширениями.
- В web-клиенте исправлена ошибка для контрола “Флажок”, из-за которой при изменении масштаба окна браузера его внешняя обводка могла соприкасаться с границей элемента.
- В web-клиенте исправлена ошибка, позволявшая вставку текста в текстовые контролы в карточке сверх ограничения по длине.
- В web-клиенте исправлена ошибка применения выбранного цвета в редакторе аннотаций к файлам.
- В маршрутах исправлена ошибка, из-за которой в
IKrScopeмогла содержаться неактуальная версия карточки. Ошибка, например, возникала, если карточка изменялась в процессе Workflow Engine, после чего при сохранении выполнялся вторичный процесс и тоже вносил изменения. - Исправлена ошибка, из-за которой при импорте карточек поверх уже существующих могли создаваться лишние запросы к серверу на сохранение карточки.
- При асинхронной обработке процессов Workflow Engine с блокировкой исправлена потенциальная возможность возникновения deadlock-а при одновременной синхронной и асинхронной обработке процесса. Теперь для начала обработки процесса берется блокировка на запись карточки, к которой относится процесс.
- В web-клиенте исправлена ошибка, приводившая к невозможности присвоить пользовательское имя класса выпадающему меню скрытых элементов тулбара в режиме
spread. - Исправлено возможное зависание сервиса
webв случае изменения типов карточек во время обработки других запросов. - В web-клиенте исправлена ошибка применения сохраненного поискового запроса со ссылочным параметром логического типа
boolean. - Исправлена ошибка в типе условия “По типу задания”. Теперь флаг “Взято в работу” не учитывается для заданий, которые автоматически берутся в работу.
- В web-клиенте исправлена ошибка, в результате которой при вставке скопированных данных из ячейки представления с типом
Guidдобавлялся нулевой пробел. - Исправлено отображение названий для параметров фильтрации представлений, в метаинформации которых поле
Captionлибо не задано (тогда выводится алиас), либо является пустой/пробельной строкой после применения локализации (также выводится алиас), либо содержит плейсхолдеры локализации{$Localization_Alias}(теперь они применяются). - В web-клиенте в типе карточки “Сотрудник” исправлена ситуация, когда при появлении метки сдвигалось поле ввода пароля.
- В конструкторе бизнес-процессов исправлена ошибка, из-за которой вложенная обработка процесса Workflow Engine, запущенная в рамках сохранения вложенной карточки, повторно сохраняла тот же самый экземпляр карточки.
- Плагин автоматического согласования теперь записывает в лог ошибки, возникшие при завершении задания.
- В web-клиенте исправлена ошибка из-за которой при инициализации контрола “Строка” отображалось некорректное количество строк.
- Запись в истории действий по созданию или изменению представления теперь имеет тип “Изменение представления” (ранее использовался тип “Создание представление” для любых изменений). Запись по созданию или изменению рабочего места теперь имеет тип “Изменение рабочего места” (ранее использовался тип “Создание рабочего места” для любых изменений). Для существующих записей в истории тип действия переименован, все записи сохранены.
- В web-клиенте для элемента управления “Выбор цвета” исправлена ошибка, возникавшая при нажатии на кнопку выбора цвета если в поле ввода было значение отличное от цвета в формате #AARRGGBB.
- В web-клиенте в диалоге проверки отзыва сертификата ЭП OCSP и CRL исправлен заголовок для идентификатора алгоритма подписи.
- В представлениях исправлена ошибка компиляции при использовании классов, принадлежащих библиотеке
System(например,System.Environment), в C# выражениях. - В web-клиенте исправлена ошибка отсутствия валидации текстовых параметров фильтрации, содержащих уникальные идентификаторы.
- В редакторе схемы данных в индексах свойство
Разреженныйтеперь неизменяемое в случае, если не заполнено свойствоСтепень заполнения. - Расширение
UniversalSatelliteGetFileContentExtensionне будет выполнять запрос на получение типа карточки сателлита. - Исправлена ошибка при распределении файлов по циклам согласования. Ошибка возникала, если в истории заданий содержались элементы с неизвестной датой завершения в разных циклах согласования.
- Исправлено отображение ролей комментаторов в таблице “Комментарии” в заданиях “Согласование” и “Подписание”.
- В web-клиенте исправлено открытие выпадающего списка у контрола “Ссылка” по нажатию стрелок вверх/вниз с клавиатуры.
- Исправлена ошибка, приводящая к некорректному отображению локализации в диалоговом окне “Правило уведомления”.
- Добавлены валидаторы для полей “Начальный множитель”, “Конечный множитель” и “Шаг множителя” в карточке “Потоковый ввод документов”.
- Веб-сервис
jinniтеперь сообщает в систему Discovery код сервераServerCode, если он обслуживает единственный экземпляр сервера. В этом случае он будет отображаться в Redis Explorer в группе этого кода сервера вместе с прочими компонентами. - В web-клиенте в тёмной теме улучшена контрастность выпадающих списков за счёт обновленного значения стиля тени.
- В уведомлении “Рассылка о заданиях” исправлена ошибка, из-за которой дата автоматического согласования выводилась некорректно.
- В web-клиенте исправлен баг: при открытии больших PDF файлов происходило зависание предварительного просмотра.
- Исправлена ошибка сохранения изменений функциональных ролей задания, возникающая в ситуации, когда в списке ролей присутствовала удалённая из системы роль.
- В веб-сервисе
jinniисправлена ошибка, связанная с устаревшим пакетомdistutils, которая возникала в процессе конвертации файла вpdf.
Обновление на новую сборку¶
- Обновлена документация по поддерживаемым версиям дистрибутивов ОС Linux. Добавлена поддержка дистрибутивов
РЕД ОС 8,Rocky Linux 9.3,Ubuntu 24.04. Прекращена поддержкаАльт Сервер / Альт Рабочая станция 10.1,AlterOS 7.5,Astra Linux Special Edition 1.6,Astra Linux Common Edition,CentOS,Debian 10,Fedora,Linux Mint,SUSE Linux Enterprise 12,Ubuntu 23.04, 23.10, 20.04. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux. - На сервере приложений на ОС Windows для использования совместно с IIS теперь требуется установленный пакет .NET Runtime & Hosting Bundle последней доступной версии 8.0.x; допустимо использовать компоненты версий 9.0.x. Ссылка для скачивания последней версии доступна по адресу https://dotnet.microsoft.com/download/dotnet/8.0.
- Все типы
.jtypeв сборке изменены, в них увеличена версия JSON-формата и исправлены настройки контролов и блоков. Типы, содержащие только такие изменения, не были перечислены как изменённые. Для сравнения изменённых типов с актуальными в проектном репозитории предварительно вызовите команду tadmin ConvertConfiguration, а затем командуtadmin Script TypeSettingsFix -pp:source=PATH, гдеPATH- путь к папке с конфигурацией в репозитории. При обновлении решения все типы из проектного репозитория должны быть исправлены вызовом этих команд перед импортом. - Перед обновлением схемы выполните скрипт
Fixes/Migration-4.1-pre.**.sql. Затем обновите схему данных, а после обновления - выполните скриптFixes/Migration-4.1.**.sql. Версия скрипта “ms” или “pg” для соответствующей СУБД. Скрипты для PostgreSQL выполняйте посредством командыtadmin Sql ИмяСкрипта, не используйте psql. Мы рекомендуем выполнить автоматизированное обновлениеUpgrade.bat/upgrade.sh, где не потребуется выполнять вызовы команд вручную. - В карточке настроек календаря изменены даты начала и окончания расчёта. Измените и пересчитайте календарь при обновлении, если срок его окончания подходит к концу.
- Приложение-помощник web-клиента Deski обновлено до версии 2.3.0. Опубликуйте новые версии приложения при обновлении. При использовании функций, связанных с Deski, пользователю будет предложено обновить его версию на опубликованную. Также обновление может выполнить администратор системы, установив msi-пакет для Windows через доменные политики, а для Linux воспользовавшись инструкцией Установка ассистента web-клиента Deski.
- После обновления платформы выполните компиляцию всех скриптов в базе данных. Для этого вызовите консольную команду
tadmin Compileс указанием адреса подключения к серверу приложений и параметров входа. Например,tadmin Compile -a:server_address -u:admin -p:admin. - Во всех представлениях изменены метаданные колонок. В них добавлено поле
InvisibleByDefault, с помощью которого можно указать, что в пользовательском интерфейсе колонка должна быть скрыта по умолчанию, но её видимостью можно управлять через пользовательские настройки представлений (по умолчанию колонки видны). Существующие в базе данных представления продолжат работать, а также их можно импортировать без поляInvisibleByDefault, которое считается в этом случае равнымfalse. - Перевыгружено большинство карточек
.jcard, в которых актуализирована структура в соответствии с текущей схемой. Такие изменения выполняются при импорте автоматически, поэтому являются необязательными, и не перечислены в списке объектов. - Ссылки на файлы
/linksтеперь по умолчанию отображают страницу с ошибкой в браузере. Укажите параметр&showErrorPage=false, чтобы вместо этого сервер возвращал json-объектValidationResult. - Доработаны действия редактора бизнес-процессов “Задание”, “Группа заданий”, “Универсальное задание и “Управление заданием”. Теперь эти действия поддерживают настройку связанных с заданием ролей через интерфейс. Необходимо выполнить обновления версий действий бизнес-процессов, содержащих данные действия. Сделать это можно посредством команды
tadmin UpgradeWorkflowProcesses, либо эта команда будет вызвана во время автоматизированного обновления черезUpgrade.bat/upgrade.sh. Также в этих действиях были упразднены поля “Автор” и “Роль”. Поэтому после обновления версий действий в бизнес-процессах надо проверить скрипты данных типов действий на обращение к полямRoleID,RoleName,AuthorID,AuthorNameи заменить их на работу с секцией действияWeTaskActionTaskRoles. - Если любые используемые вами конфигурационные файлы
app.jsonсодержали символ%в строковых значениях (например, в паролях или в строках подключения к базам данных), то необходимо его задублировать%%для корректной обработки (т.е. выполнить эскейпинг). - Для переопределения пути к файлу
.cid, который используется в подсистеме мониторинга и обнаружения компонентов, вместо переменной окруженияCID_FILE_PATHиспользуйте переменнуюTESSA_CID. - В командах мониторинга переименован набор прав доступа
keysнаmanage-keys. Повторно сгенерируйте ключи, содержащие этот набор прав. - Администратор системы по умолчанию больше не видит статистику по заданиям других сотрудников (кроме себя) в отчётах “Текущие задания” и “Завершённые задания”. Однако, он может явно добавить в права на текущие отчёты запись о том, что он может просматривать отчёты сотрудников в роли “Все сотрудники”.
- Изменена схема работы уведомлений в форумах и обсуждениях: теперь уведомления о новом сообщении приходят всем подписанным участникам сразу после отправки сообщения вместо периодической отправки группами по несколько сообщений.
- В опции слияния для карточек был добавлен новый параметр
UpdatedColumns, который позволяет настроить для секций карточки колонки, которые будут задействованы при определении различий между строковыми секциями или между строками в табличных секциях, а также для определения колонок для модификации данных. Подрбнее см. в руководстве администратора. - В консольной утилите tadmin переименованы команды:
GenerateCommandKey->GenerateDiscoveryKey,PrintComponents->PrintDiscoveryInfo,ViewKey->ViewDiscoveryKey. - В библиотеке карточек
Platform.jcardlibк карточкамDefaultWeek_TypeиDefaultCalendarдобавлены настройкиmerge-options.json, предотвращающие импорт карточек, если они уже были в системе. Измените этот файл с настройками, если требуется обновлять данные карточки при каждом импорте библиотеки. - Библиотека
libgdiplus, которая была необходима при установке системы наLinux(в т.ч.Docker), больше не используется. Теперь для функционирования системы не требуется устанавливатьlibgdiplusиз репозитория и добавлять символьную ссылку дляlibdl.so. Также при установки системы наCentOS-подобные дистрибутивы не требуется устанавливать пакетыepel-release. - Удалён плагин
TextRecognitionдля обработки операций по распознаванию текста в файле, а также соответствующий ему файл конфигурацииTextRecognition.xmlи настройки плагина вapp.json. - При установке в Docker изменены передаваемые аргументы командной строки для скрипта
setup.shв файлахinstall.bat. Обратитесь к разделу Проверка работы контейнеров и завершение установки tessa. - Приложения desktop-клиента теперь поддерживаются только для использования администраторами и разработчиками, функциональность таких приложений была ограничена. Используйте web-клиент для работы обычных пользователей.
- Для desktop-приложений больше не поддерживается запуск для ОС Windows 7 SP1 и Windows 8.1. Минимальные версии браузеров, в которых запускается web-клиент, также не поддерживают Windows 7 и Windows 8.1. Минимальной поддерживаемой клиентской версией ОС Windows является Windows 10 v1809.
- Минимально разрешённая версия протокола TLS теперь равна 1.2. В конфигурационных файлах сервисов
app.jsonиapp-web.jsonудалены настройкиEnforceTls12иAdSync.EnforceTls12. Актуально для веб-сервисовwebиjinniдля запуска в режиме Kestrel (без front-сервера в виде IIS/Nginx/Apache), для интеграции с LDAP, а также для синхронизации с Active Directory/LDAP в Chronos. - Обновление на эту версию платформы допустимо с версии 3.6.0 или старше. Если у вас более старая версия платформы, то выполните обновление сначала на неё, а затем, при необходимости использовать desktop-клиент, установите Tessa Applications через msi-пакет (допустимо использование групповых политик).
- Приложение Tessa Applications более не подключается к серверам TESSA версии младше 3.6.0. Tessa Applications версии младше 3.6.0 не может подключиться к серверу 4.1, чтобы скачать и запустить приложения.
- Удалено расширение
ChartViewExtensionдля представлений и узлов рабочих мест. Диаграммы в desktop-клиенте более не поддерживаются. - В desktop-клиенте удалена функциональность, связанная с просмотром сообщений из топиков обсуждений, выводимая в области заданий.
- Удалены скрипты консольной утилиты tadmin:
ConvertBson,ConvertSearchQueries,ConvertTypes,ConvertWorkplaces,ConvertWorkplaceSettings. - Устаревшие бинарный формат карточек
.card, xml-формат библиотек карточек.cardlib, xml-формат типов.tct, xml-формат локализации.tll, формат представлений.view, рабочих мест.workplaceи поисковых запросов.queryболее не поддерживаются. Используйте утилиту tadmin предыдущей версии платформы для конвертации в актуальные форматы.jcard,.jcardlib,.jtype,.jlocalization,.jview,.jworkplaceи.jqueryсоответственно. - Перед обновлением убедитесь, что в базе данных отсутствуют представления, которые содержат метаинформацию в legacy-формате exchange (для них в TessaAdmin выводится значок предупреждения в списке представлений). Также получить список представлений можно, выполнив SQL-запрос
SELECT "Alias" FROM "Views" WHERE "MetadataSource"<>''. Выполните конвертацию в новый формат средствами TessaAdmin или tadmin предыдущей версии платформы, или удалите такие представления из базы данных, если обновлённые версии этих представлений в формате.jviewприсутствуют в папке с конфигурацией, импорт которой выполняется при обновлении. - Для desktop-клиента удалена функциональность сканирования, отображения диаграмм, предпросмотра файлов во внешних приложениях. Из диалога “Мои настройки” удалены настройки “Использовать предпросмотр PDF средствами Windows” и “Разрешить предпросмотр через несколько внешних программ”. Также подписание и проверка подписи будут работать некорректно для менеджеров подписи, отличных от
DefaultEDSManager(по умолчанию для алгоритмов ГОСТ, см. карточку “Настройки электронной подписи”, таблица “Настройки алгоритмов подписи и хеширования”). - В конфигурационных файлах
app*.jsonи файлах проектов.csprojзамените строку подключения файлов лицензии*.tlicна*.?licдля поддержки нового формата файла.jlic. - Из метаинформации по колонкам представления удалено неиспользуемое свойство
HasTag. Перевыгружены все представления с удалением этого свойства. Типы в базе данных не требуют обновления. - В desktop-клиенте удалена возможность открывать список участников обсуждения.
- В конфигурационных файлах
app.jsonдля строк подключения к СУБД PostgreSQL необходимо удалить параметрIntegrated Security. Начиная с версии Npgsql 8.0 он более не применяется, и его наличие приводит к ошибке. - Из папки
Sourceсборки удалён файл.hgignore, применяемый в репозиториях Mercurial. Используйте систему контроля версий Git для разработки на платформе. - Все настройки плагинов сервиса Chronos перенесены из конфигурационного файла
app.jsonв файлapp-plugins.json. - Добавлена поддержка загрузки конфигурации запуска плагинов из
app.json. Все настройки с расписанием запуска плагинов платформы перенесены из отдельных xml-файлов в конфигурационный файлapp-plugins.json. Подробнее про структуру настроек см. в разделе Настройка плагинов. - В конфигурационный файл
app-saas.jsonвеб-сервиса и Chronos добавлен блок настроекSaaS, позволяющий включить режим SaaS для веб-сервиса, а также настроить работу плагинов на веб-сервисе. Подробнее см. в разделе Настройка запуска плагинов на веб-сервисе. - Плагин хроноса
NoticeMailerпереименован вMailSender, включая его настройки в конфигурационном файле. - В папке с проектными расширениями
Sourceфайлыapp-local-*.jsonиapp-local-*.json.sampleпереименованы вapplocal-*.jsonиapplocal-*.json.sampleсоответственно. В файлеapplocal-server.jsonизменена директива.includeдля включения файлаapp-webdev.json. Также изменены файлы проектов тестовTessa.Test.*.csproj, чтобы в дополнение кapp-*.jsonподключались файлыapplocal-*.json. Эти файлы используются для разработки, они позволяют переопределить любые настройки из файловapp-*.json(строки подключения к БД, адрес Redis и др.). При обновлении проектного решения переименуйте соответствующие файлы, обновите содержимое файлаapplocal-server.jsonи убедитесь, что файлы.csprojобновлены. - В файлах
app.jsonдля всех сервисов и приложений изменён блок директивы.include, чтобы включать файлы по маскеapplocal-*.jsonпозже файловapp-*.json. Файлыapplocal-*.jsonиспользуются при разработке, они позволяют переопределить любые настройки из файловapp-*.json. При обновлении убедитесь, что файлыapp.jsonактуализированы для удобства разработки. На тестовом и production контурах обновлять конфигурационные файлы необязательно, т.к. там не должны использоваться файлыapplocal-*.json(подключение отсутствующих файлов в директиве.includeне изменит конфигурацию). - Перевыгружены все представления с изменением того, как сериализуются пустые массивы и пустые строки в метаинформации. Такие изменения можно игнорировать.
- В конфигурационных файлах
app.jsonдля приложений desktop-клиента изменился блок".if": [ "wine", { ... } ]. Если такие файлы изменялись в проектном решении, то убедитесь, что они корректны обновлены. - В конфигурационных файлах
app.jsonсимволwineбудет объявлен только для desktop-приложений TessaClient, TessaAdmin, TessaAppManager, SchemeEditor. Например, его объявление не производится для консольной утилиты tadmin, которая запущена в среде эмуляции Wine. - Увеличена версия действий редактора бизнес-процессов “Согласование” и “Подписание”. Необходимо выполнить обновления версий действий бизнес-процессов, содержащих данные действия. Сделать это можно посредством команды
tadmin UpgradeWorkflowProcesses, либо эта команда будет вызвана во время автоматизированного обновления черезUpgrade.bat/upgrade.sh. - Изменён способ хранения данных для верифицируемых полей. Теперь вместо коллекционных секций используется
json-структура. Пример структуры см. в руководстве разработчика. - При обновлении Deski убедитесь, что удалена папка
.deski_data. На ОС Linux/macOS она расположена в папке с исполняемым файлом, а на ОС Windows - в папке%LocalAppData%\tessa\deski\.deski_data. При обновлении Deski на ОС Windows посредством msi-инсталлятора папка удаляется автоматически, т.е. дополнительных действий не требуется. На других ОС предоставляется zip-архив с исполняемым файлом, поэтому папка.deski_dataдолжна отсутствовать в месте распаковки. - При экспорте карточек порядок строк коллекционных секций может быть изменён, т.к. теперь при экспорте карточки строки секции по умолчанию сортируются по
RowID. - Обновлён раздел документации Создание образов Docker с использованием дистрибутива TESSA alpine-redist. Внесены пояснения в пункты инструкции, добавлены примечания.
- Обновите скрипты
Export.batиexport.shпроектного репозитория, которые копировались из папкиSourceв сборке. - Изменились рекомендации по настройке сервиса
webbiдля ОС Windows (IIS). - Изменён способ определения групп при формировании распределения файлов по циклам согласования. Настройте необходимые типы групп в карточке типового решения в поле “Типы групп истории заданий, используемые для определения циклов согласования” на вкладке “Дополнительно”.
- При использовании Nginx для корректной и оптимальной работы веб-сервиса рекомендуется отключить кэширование запросов на уровне
serverилиlocationв конфигурационном файле Nginx*.conf(настройкаproxy_request_buffering off), а также в других прокси, за которыми стоит Nginx, если таковые присутствуют. Подробнее в разделе Настройка веб-сервера Nginx. - Изменён способ включения и отключения в режима технического обслуживания. Необходимо изменить настройки
IISиnginx, обратитесь к соответствующим разделам документации. - Изменена версия схемы. При открытии схемы данных в SchemeEditor или TessaAdmin система обновит схему на новую версию из файловой папки. Рекомендуется использовать команду
tadmin SchemeUpdateдля обновления схемы в репозитории перед объединением её со схемой в сборке. - Увеличена версия JSON-формата для хранения метаданных представлений до
4. Для представлений в базе данных используйте скриптUpgradeViewsSql:tadmin Script UpgradeViewsSql(будет выполнен при автоматической миграцииupgrade.sh/Upgrade.bat). Для представлений на файловой системе*.jview(в репозитории) используйте команду tadmin ConvertConfiguration:tadmin ConvertConfiguration Ваша_папка_с_файлами_конфигурации. Перед объединением проектной конфигурации с этой сборкой выполните такую команду на папкеConfiguration/Viewsв проектном репозитории, после чего её можно будет объединить средствами репозитория с конфигурацией из этой сборки. - Увеличена версия JSON-формата для хранения метаданных рабочих мест до
4. Для рабочих мест в базе данных используйте скриптUpgradeWorkplacesSql:tadmin Script UpgradeWorkplacesSql(будет выполнен при автоматической миграцииupgrade.sh/Upgrade.bat). Для рабочих мест на файловой системе*.jworkplace(в репозитории) используйте команду tadmin ConvertConfiguration:tadmin ConvertConfiguration Ваша_папка_с_файлами_конфигурации. Перед объединением проектной конфигурации с этой сборкой выполните такую команду на папкеConfiguration/Workplacesв проектном репозитории, после чего её можно будет объединить средствами репозитория с конфигурацией из этой сборки. - Увеличена версия JSON-формата для хранения метаданных поисковых запросов до
2. Для поисковых запросов в базе данных используйте скриптUpgradeSearchQueriesSql:tadmin Script UpgradeSearchQueriesSql(будет выполнен при автоматической миграцииupgrade.sh/Upgrade.bat). Для поисковых запросов на файловой системе*.jquery(в репозитории) используйте команду tadmin ConvertConfiguration:tadmin ConvertConfiguration Ваша_папка_с_файлами_конфигурации. В архиве со сборкой отсутствуют выгруженные поисковые запросы, поэтому объединение проектной конфигурации с конфигурацией из сборки для них не требуется. - Расширение представлений
TagsWorkplaceViewDemoActionExtension, предоставляющее кнопку, которая добавляет теги к карточкам, перечисленным в представлении, переименовано вAddTagButtonViewExtension. - Расширение представлений
FilterViewDialogOverrideWorkplaceComponentExtension, переопределяющее кнопку фильтрации представлений на специализированный диалог, переименовано вOverrideFilterViewExtension. - Переименованы расширения на представления и узлы рабочего места, используемые в целях тестирования:
CustomFolderViewExtension->AbCustomFolderExtension,GetDataWithDelayExtension->AbGetDataWithDelayExtension,TreeViewItemTestExtension->AbTreeViewItemExtension. - В служебных таблицах колонки заполняются из справочников нормализации:
ActionHistoryдля колонокType,ModifiedBy;Instancesдля колонокType,CreatedBy,ModifiedBy;Filesдля колонокType,CreatedBy,ModifiedBy;FileVersionsдля колонкиCreatedBy;DeletedFilesдля колонокType,CreatedBy,ModifiedBy,DeletedBy;DeletedFileVersionsдля колонкиCreatedBy;Sessionsдля колонкиUserName. Соответствующие строковые колонки внутри комплексных стали виртуальными. Если таблица использовалась в представлениях или SQL-запросах в коде проектных расширений, то измените их, чтобы для строковых колонок использовались соответствующие справочники нормализации (Users,Types). При использовании в коде обратитесь к объекту, возвращаемому методомICardMetadata.GetNormalizationInfoAsync, чтобы получить актуальные идентификаторы справочников. - Для плагина
WorkflowEngineAsyncPluginдобавлены настройкиRetryPeriodиRetryTimeout, определяющие период, через который будет перезапущена асинхронная обработка сигнала после возникновения ошибки, и период, через который будет прекращена повторная асинхронная обработка сигнала после ошибки. Подробнее см. в разделе Список плагинов. - В конструкторе бизнес-процессов исправлена проверка версии карточки при сохранении после окончания обработки. Теперь версия карточки проверяется всегда. Если в скриптах бизнес-процессов выполняется сохранение карточки с изменением версии через репозиторий карточек, то необходимо или удалять карточку из текущего скоупа с помощью метода
RemoveCardAsync, или устанавливать корректную версию для карточки из скоупа. - Если для карточек необходимо включить поддержку тегов, необходимо установить флаг “Разрешить теги” в типе карточки.
Изменения API при обновлении¶
- Изменена логика определения дайджеста при сохранении карточки из клиента. Теперь при сохранении карточки в запросе на сохранение отправляется дайджест карточки, полученный при её загрузке, а не дайджест, сформированный с учётом сохраняемых изменений. Если в расширениях на сохранение карточки требуется получить актуальный дайджест карточки, то необходимо использовать метод
ICardRepository.GetDigestAsyncи передать в качестве параметра сохраняемую карточку. - Для разработки расширений web-клиента установите последнюю версию Node.js из линейки версий
20.x. Удалите подпапкуnode_modulesиз папкиWebClient SDKпроектного репозитория, если локально выполнялась сборка расширений с предыдущей версией Node.js. - Для проектов с тестами
Tessa.Test.Client/Server/Shared/Windowsи проектов модулейTessa.Module.Sample.Client/Server/Sharedпо умолчанию теперь включена поддержка nullability в C# (тег<Nullable>в файлах проекта.csproj). - При отправке запроса к представлению
ITessaViewRequestзначение свойстваViewAliasтеперь должно совпадать с алиасом вызываемого представления. Убедитесь, что при получении данных из представления в серверных расширениях и в перехватчиках представлений внутри запроса передаются корректные значения для свойстваViewAlias. - В
RedisEventSubscriberубрана синхронизация обработки событий при получении сигнала из Redis. Теперь он позволяет обрабатывать сразу несколько событий параллельно. Если при обработке событий требуется синхронизация их выполнения, она должна быть реализована в действии, передаваемом в методеRedisEventSubscriber.SubscribeAsyncпри создании подписки на событие. - В метод
CardComponentHelper.FillTaskSessionRolesAsyncдобавлены параметрыforceFillиpreserveOldValues. ПараметрforceFillвызывает принудительное наполнение списка функциональных ролей задания, к которым относится текущий сотрудник, даже если загрузка уже была выполнена ранее. ПараметрpreserveOldValuesотключает очистку списка от старых значений. - В действия редактора бизнес-процессов добавлена информация о версии действия. При серьёзных изменениях действий, требующих обновления, версия действия увеличивается. Экземпляр действия в шаблоне бизнес-процесса и экземпляр действия в запущенном процессе хранят версию, которая была у дескриптора действия в момент их создания. Система не позволит выполнить действие, если оно имеет неактуальную версию.
- Изменён интерфейс
IRoleManagerService. Добавлен методRecalcSmartRoleGeneratorsAsync, который выполняет пересчёт генераторов умных ролей. - Для определения базовой папки с конфигурационными файлами вместо
RuntimeHelper.ConfigRootPathиспользуйтеConfigurationHelper.ConfigRoot.ResolvePath(). - Тип свойства
ITessaViewRequest.Parameters(переименовано изValues) изменён наList<RequestParameter>. Измените код проектных расширений, который опирался на то, что свойство имело типICollection<RequestParameter>. - В зависимости, используемые при разработке консольного клиента, добавлена библиотека
Microsoft.IdentityModel.Tokens. - Изменена сигнатура статического метода
CardComponentHelper.GetContentContextsAsync. Теперь, если параметрfileIDsне был передан, то метод будет выполнять получение контекстов для всех файлов карточки. - В метод расширения
FileExtensions.RemoveWithNotificationAsyncдобавлен опциональный параметрwithBackup(по умолчаниюfalse). Он показывает, что файлы удаляются с возможностью восстановления. - Изменена сигнатура метода расширения
CardExtensions.HasContent. Теперь метод принимает объект типаCardFileвместоCardFileState. - В web-клиенте изменён способ создания модели представления для компонента окна логина. Теперь модель представления регистрируется в DI-контейнере и возвращается как зависимость. Замените все места явного создания моделей представления на регистрацию в DI-контейнере.
- В методы
RedisPlatformExtensions.RegisterRedisиPlatformExtensions.RegisterServerдобавлен параметрallowRedisInitialization, управляющий необходимостью либо полной инициализации данных системы в Redis, либо проверки текущего состояния инициализированности данных. - Переименован метод
ObjectPool<T>.Get()наRent(). - Изменено API по созданию и использованию объектов
IWebProxy. Изменены конструкторы базовых классовWebProxyиWebProxyFactoryBase. Пространства имён для соответствующих типов изменены сTessa.Platform.RuntimeнаTessa.Platform.Web. Изменены параметры методаWebProxy.SendAsync<T>: для передачи флагов используйтеWebRequestFlags.PerRequest(); стандартные флаги доступны как поля статического классаWebRequestFlags, также изменён их смысл (например, были флагиOmitXyzдля исключения заголовка запроса, теперь заголовки по умолчанию не добавляются, пока не указаны соответствующие флагиAddXyzHeader); функцииmodifyRequestFuncAsyncиmodifyResponseFuncAsyncполучают объект контекстаIWebProxyContextсо свойствамиRequest,Response,CancellationToken. КлассLegacyBinaryContentпереименован вWebLegacyBinaryContent. Обратитесь к разделу руководства Запросы к веб-сервисам посредством прокси-объектов WebProxy. - Были добавлены проекты расширений
Tessa.Extensions.Default.Imaging.csprojиTessa.Extensions.Imaging.csproj. В данных проектах можно создавать расширения для работы с изображениями (например, для работы с плейсхолдерами). Также в эти проекты была перенесена логика форматирования плейсхолдеров с QR-кодами, штрихкодами и изображениями в OpenXML. Из серверных зависимостей были удалены следующие библиотеки:System.Drawing.CommonиQRCoder. - Теперь замена плейсхолдеров с форматтерами
#image,#barcodeи#qrcodeне выполняется по умолчанию, если в проекте отсутствует библиотекаTessa.Extensions.Default.Imaging.dll. - Изменена сигнутура метода
IDocLoadDocument.AppendPageAsync. Теперь метод первым аргументом ожидает объект типаImage<Rgba32>из библиотекиSixLabors.ImageSharp.Drawing. - Изменена сигнутура метода
IBmpConverter.ReadAsync. Теперь метод возвращает объект типаImage<Rgba32>из библиотекиSixLabors.ImageSharp.Drawing. - Для сборки проектов расширений требуется IDE Visual Studio 2022 (версия 17.9 или старше). Вы можете использовать альтернативные IDE, такие как Visual Studio Code и JetBrains Rider, или же выполнять сборку из командной строки. Также, независимо от выбранной IDE, требуется установленный пакет .NET SDK версии 8.0.202 или старше (устанавливается вместе с Visual Studio). Ссылка для скачивания последней версии доступна по адресу https://dotnet.microsoft.com/download/dotnet/8.0.
- Во всех файлах проектов расширений
.csprojвключается файлTessa.targets, в котором указано свойствоLangVersion 12. В текущей реализации это соответствует версии C# 12.0. Укажите значения в ваших проектах расширений, явно добавив тег<LangVersion>или подключив файлTessa.targets, если актуально получить языковые возможности последней доступной версии C# при разработке расширений. - Изменён интерфейс
IGetDataRequest. СвойствоSelectedMasterRowDataпереименовано вSelectedMasterRowsData, а тип изменён наList<IDictionary<string, object?>>?. - Изменён интерфейс
IParametersMappingContext. СвойствоSelectedRowDataпереименовано вSelectedRowsData, а тип изменён наList<IDictionary<string, object?>>. - Более не поддерживается создание WCF-сервисов с использованием API TESSA. Вы можете создать такой сервис как отдельное веб-приложение, которое будет обращаться к веб-сервису TESSA как к микросервису с использованием REST API.
- Для поддержки лицензий формата
.tlicв кастомизированных приложениях, добавьте в проекте ссылку наTessa.BinaryLicense.dll(присутствует в папках сервисовchronos,jinni,web), после чего при запуске приложения добавьте вызов:LicensingHelper.BinaryLicenseSupportDelegates = new(BinaryLicenseHelper.SerializePayload, BinaryLicenseHelper.DeserializePayload);. - Удалён NuGet-пакет
Tessa.NetStandard. Разработка сервисов для платформы .NET Framework более не поддерживается. - Удалены разделы документации
Использование анонимной аутентификации в веб-сервисах,Подключение к сервису Tessa через WSDL,Создание веб-сервиса WCF, который вызывает веб-сервис платформы. Взаимодействие с веб-сервисами TESSA с использованием протокола SOAP и фреймворка WCF более не поддерживается. Существующие WCF-сервисы возможно модифицировать, чтобы они использовали REST API платформы и REST-контроллеры, разрабатываемые в проектном решении. - Для получения пустой коллекции замените вызов
EmptyHolder<T>.CollectionнаImmutableList<T>.Empty. Такую коллекцию можно возвращать какIReadOnlyList<T>. - Удалено устаревшее свойство
ITessaViewResult.DataTypes. Используйте свойствоSchemeTypesдля указания типов данных колонок в результате представления. - Регистрация консольных команд в методе
CommandContext.AddCommand()теперь выполняется без перечисления типов аргументов. Измените регистрацию команд в проектном решении соответствующим образом. - Удалён класс
Tessa.Platform.Check. Используйте методыThrowXyz, подключаемые как global usings, вместо методов этого класса. Например,ThrowIfNullвместоCheck.ArgumentNotNull. - Для объектов
ICardTypeVisitorметодыVisitBlockAsync,VisitControlAsync,VisitTabFormAsyncиVisitTableFormAsyncв качестве дополнительных контекстных параметров могут получатьnull(например, параметрыblockиformв методеVisitControlAsync), если они были возвращены расширением типа, таким как “Таблица в представлении”. Если в проектном решении определены реализации интерфейса (в т.ч. наследники классаCardTypeVisitor), то убедитесь, что они учитывают возможные значенияnullв этих методах. - В классе
CardGetFileContentRequestбулевое свойствоSuggestFileNameзаменено на свойство-перечислениеSuggestFileNameMode. - Регистрация расширений плагинов
IPluginExtensionтеперь производится по имени группы, а не по объектуPluginSchedulingMode, определяющем режим планирования. Замените в регистрации проектных расширений плагинов вызов методаWithSchedulingна методWithGroup. Список платформенных имён групп доступен в классеPluginGroups. - Типы в пространстве имён
Tessa.Platform.Configurationперенесены в пространство имёнTessa.Platform.ConfigurationLogging. Пространство имёнTessa.Platform.Configurationтеперь содержит API по работе с конфигурационными файлами. - Типы, относящиеся к конфигурации в пространстве имён
Tessa.Platform(классыConfigurationXyzи интерфейсыIConfigurationXyz) перенесены в пространство имёнTessa.Platform.Configuration. КлассTessa.Platform.ConfigurationManagerсделан статическим, он по-прежнему содержит статические методы и свойства, тогда как экземплярные члены перенесены в классTessa.Platform.Configuration.DefaultConfigurationManager. КлассConfigurationManagerLazyпереименован вLazyConfigurationManager. СвойствоConfigurationManager.GlobalDefinedSymbolsи константы с символами перенесены в статический классConfigurationSymbols. - Асинхронные функции регистрации в контейнерах Unity теперь возвращают
ValueTaskвместоValueTask<IUnityContainer>. Это такие методы-расширения, какRegisterServerForPluginAsync,RegisterServerForConsoleAsync,RegisterDatabaseForConsoleAsyncи др., а также статическое методыTestHelper.InitializeServerContainerBaseAsync. - Используйте класс
UnityContainerCompanionвсякий раз, когда необходимо создать объектUnityContainerс нуля, например, для использования в командах и скриптах tadmin, а также в плагинах Chronos. Этот объект упрощает освобождение зависимостей из DI-контейнера, регистрируемых вIUnityDisposableContainer, а также упрощает инициализацию конфигурацииIConfigurationManagerпри указании свойстваUseConfiguration = true. Примеры использования доступны в коде типового решения (см.Tessa.Extensions.Default.Console) и в документации, например, в разделе Разработка плагинов, обрабатываемых веб-сервисом. - Изменена сигнатура метода
ICompilationCacheContainer.Register. Измените регистрацию кэшей компиляции в проектном решении соответствующим образом. - Удалён флаг
WebRequestFlags.AddInstanceInUri. Использование нескольких экземпляров для одного сервиса более не поддерживается. Удалите все использования этого флага. - Свойство
ITessaViewRequest.Viewудалено. Получить метаданные представления в запросе можно по алиасу представления (свойствоITessaViewRequest.ViewAlias). - Удалён класс
SortingColumnCollection. Используйте вместо негоList<ISortingColumn>. - В классе
ITessaViewRequestсвойствоValuesпереименовано вParameters. Для web-клиента аналогично переименовано свойствоViewRequest.valuesвparameters. - Доработан механизм выполнения расширений
ICardPermissionsExtension. Добавлен методExtendPermissionsAfterTokenCheckAsync, методExtendPermissionsAsyncбыл переименован вExtendPermissionsBeforeTokenCheckAsync. МетодExtendPermissionsBeforeTokenCheckAsyncвыполняется до проверки прав на основанииKrTokenи предназначен для добавления дополнительных требований к уже проверяемым правилам (посредством свойстваKrPermissionsDescriptor.StillRequired). МетодExtendPermissionsAfterTokenCheckAsyncвыполняется после проверки прав на основанииKrTokenи предназначен для выполнения проверки по выданным правам, а также для добавления или исключения из списка уже выданных с учётом токена прав. - В API календарей внесены изменения в метод
RebuildCalendarAsync. Был добавлен необязательный параметрerrorCardID. Он необходим для того, чтобы передать в метод идентификатор карточки, с которым будет создана карточка ошибки в случае её возникновения во время пересчёта календаря. Это позволило реализовать возврат ошибок, которые могут возникнуть при пересчёте календаря, на клиент. - Изменён интерфейс для результата выполнения представлений
ITessaViewResult. Список колонокColumnsсодержит и имя колонки, и её тип. Список строкRowsсодержит значения всех строк в формеList<List<object?>>. Конструктор, принимающийIViewMetadata, автоматически заполняет свойствоColumnsпо метаданным представления, рекомендуется использовать его, где применимо. Все свойства не равныnull, при обращении к ним не требуются проверки наnull. Измените в соответствии с этим места использования представлений в проектном решении со стороны сервера и desktop-клиента. - Удалён метод
Tessa.Extensions.Default.Shared.Notices.NotificationHelper.ModifyEmailForMobileApprovers. Удалите его использование из проектного кода. - Исправлены опечатки в названиях методов:
WorkflowHelper.InializeTaskCompletionOptionsAsync -> WorkflowHelper.InitializeTaskCompletionOptionsAsync,WorkflowHelper.InializeActionCompletionOptions -> WorkflowHelper.InitializeActionCompletionOptions. Переименуйте их в проектном решении, если они используются. - Переименованы константы в классе
CriteriaOperatorConst(C#) иViewCriteriaOperators(JS) для имён условных операторов в параметрах представлений. Соответствующие строковые значения остались неизменны. Также переименованы соответствующие классы-наследникиCriteriaOperator(C#) (например, используйтеEqualsToCriteriaOperatorвместоEqualsCriteriaOperator). Если в проектных расширениях web-клиента (JS) или в любом коде C# используются эти костанты и классы для работы с представлениями, то переименуйте их. Все переименования аналогичны и очевидны: например, вместо константыEqualityв C# иEqualsв JS используйте константуEqualsTo. - Для использования классов-наследников
CriteriaOperator- объектов условных операторов в параметрах представлений, - следует использовать статическое свойствоInstanceсоответствующего класса. Например, вместоnew EqualsCriteriaOperator()вызовитеEqualsToCriteriaOperator.Instance. - В метаинформации представлений свойство объекта
ISortingColumn.SortDirection, указывающее направление сортировки, заменено на логический флагDescending(true- сортировка по убыванию,falseсортировка по возрастанию). По умолчанию значение равноfalse. - В метаинформации представления
IViewMetadataколонки сортировки по умолчанию теперь определяются только коллекциейDefaultSortingColumns. СвойстваDefaultSortColumnиDefaultSortDirectionудалены. - Изменена сериализация запросов к представлениям
TessaViewRequestи ответов на запросыTessaViewResult. ДляTessaViewRequestпереименован ключ с коллекцией параметров:Values->Parameters. ДляTessaViewResultпереименованы ключи с заглавными буквами:columns->Columns,schemetypes->SchemeTypes,rows->Rows,rowcount->RowCount,info->Info. - Изменена регистрация класса
ViewQueryExecutor, теперь для определения таймаута по умолчанию используется объектIViewExecutionSettingsProviderвместо зависимостиAsyncLazy<int>. - Метод
HandlerHelper.TryGetOverridenTaskHistoryGroupпереименован вHandlerHelper.TryGetOverriddenTaskHistoryGroup. Переименуйте места вызова метода в проектах. - Константы
IsDisableAutoApproval,CanEditCardиCanEditAnyFilesперемещены из классаTessa.Extensions.Default.Shared.Workflow.WorkflowEngine.WorkflowConstants.NamesKeysвTessa.Extensions.Default.Shared.Workflow.WorkflowCommonConstants. - Методы
CombinePerformers,TryGetPersonalRoleIDAsync,GetKindAsync,AppendApprovalInfoUserCompleteTaskAsyncиSetTaskKindперемещены из классаWorkflowHelperвWorkflowCommonHelper. МетодыAddTaskToNextContextTasksиCreateTasksContextсделаны методами-расширениями дляIWorkflowEngineContextи перемещены в классWorkflowEngineExtensions. - Удалён метод
HandlerHelper.SetTaskKind. Вместо него используйте методWorkflowCommonHelper.SetTaskKind. - Объект
Tessa.Extensions.Default.Server.Workflow.WorkflowEngine.IKrWorkflowHistoryStrategyпереименован и перемещён вTessa.Extensions.Default.Server.Workflow.IKrHistoryStrategy. - Удалён метод
KrWorkflowTaskActionBase.GetSqlPerformers. Вместо него используйте объектIKrGetSqlPerformersStrategyиз Unity-контейнера. - Удалён метод
WorkflowEngineContextExtension.SendEditInterjectTaskAsync. Вместо него используйте объектIKrEditInterjectTaskManagerиз Unity-контейнера. - Удалены методы
KrWorkflowTaskActionBase.SendRequestCommentTaskAsyncиKrWorkflowTaskActionBase.RequestCommentTaskCompleteAsync. Вместо него используйте объектIKrRequestCommentTaskManagerиз Unity-контейнера. - Объект
RoleEntryStorageперемещён в пространство имёнTessa.Extensions.Default.Shared.Workflow. - В объектах-наследниках
StorageSerializableвместо статических методовTryGetInt32,TryGetBooleanи подобных используйте методы-расширенияstorage.TryGetConvertInt32,storage.TryConvertBooleanи др. Вместо методаTryGetStringиспользуйте метод-расширениеstorage.TryGet<string>. - Для метода-расширения
StorageExtensions.ToJsonStringпараметрindentedтеперь является обязательным. Ранее он имел значение по умолчаниюtrue. - Класс
ParserNamesперенесён из пространства имёнTessa.Views.ParserвTessa.Viewsдля удобства использования. - Метод
ISessionServer.OpenSessionAsyncвместо параметра с единственным проверяемым типом входа сотрудникаUserLoginType? expectedLoginTypeтеперь принимает параметр с коллекцией ожидаемых типовIReadOnlyCollection<UserLoginType>? expectedLoginTypes. Значениеnull(по умолчанию) или пустая коллекция аналогичны разрешению для всех типов входа, кромеUserLoginTypes.Forbidden. - Переименован тип
IWebUnityContainerHandlerнаIWebUnityHandler. - Изменён пример в документации Создание веб-приложения ASP.NET Core, использующего API TESSA. Удалён вызов
ConfigureTessaApplicationдля файлаStartup.cs. МетодRegisterTessaLifetimeпереименован вRegisterUnityLifetime. В файлеProgram.csизменены создание и запуск объектаIHost. - Удалён класс
ITessaWebScope, который являлся scoped-зависимостью в DI-контейнере ASP.NET Core. В контроллерах веб-сервисов и их зависимостях вы можете получить контейнер Unity посредством синглтонаIWebUnityHolder, а текущую сессию - посредством синглтонаIWebContextAccessor. - Удалён ключ валидации
CardValidationKeys.UnknownOrUnspecifiedCardType. Используйте вместо негоCardValidationKeys.UnspecifiedCardTypeилиCardValidationKeys.UnknownCardType. - Изменён тип возвращаемого значения в методе
IOcrService.CreateOperationAsync. В частности, параметр с токеном балансировки нагрузки стал необязательным для сервисаIOcrSyncService. Если токен не был передан, то реализация по умолчанию выполнит формирование такого токена автоматически. - Для параметров запроса к представлению
RequestParameterудалено свойствоMetadata. Чтобы указать имя параметра, используйте свойствоName(можно передать параметром конструктора). Метаданные должны определяться в соответствии с представлением, в зависимости от места использования параметра. - Вместо
RequestParameterBuilderдля создания параметров запроса к представлениюRequestParameter, создавайте параметр стандартным конструктором, используя методыAddдля добавления критериев по аналогии с тем, как это выполнялось посредствомRequestParameterBuilder.AddCriteria(где параметрыvalueиtextпоменяны местами, а указаниеtextдля нессылочных параметров не требуется). Например:new RequestParameter("UserID").Add(EqualsToCriteriaOperator.Instance, userID). Параметр является ссылочным, если метод-расширениеparameterMetadata.IsReference()возвращаетtrue(в текущей версии это происходит, когда заполнено его коллекцияRefSection). - Переименовано свойство
ITessaView.ViewAliasвITessaView.Alias. - Переименованы методы-расширения для
ITessaViewRequest:GetParameterFirstValue->GetFirstParameterValue,GetParameterFirstValueIsNull->GetFirstParameterValueIsNull,GetParameterSecondValue->GetSecondParameterValue,GetParameterSingleValue->GetSingleParameterValue,GetParameterSingleValueIsNull->GetSingleParameterValueIsNull. Эти методы могли использоваться в SQL-запросе представлений, например,request.GetFirstParameterValue("ByPermissionExpression"), поэтому при обновлении проверьте не только проекты с расширениями C#, но и выполните поиск по файлам выгруженных представлений.jview. - В web-клиенте для класса модели представления файла
FileViewModel, отображаемого в файловом контроле, добавлено булевое свойствоhideSignatureTag, с помощью которого можно скрыть значок подписи на файле. - Свойства
SignatureKeyиCipherKeyудалены из объектаITessaServerSettings. Используйте методыGetSignatureKey()иGetCipherKey()соответственно из объектаITessaServerKeyProvider. - Для использования метода-расширения
SwaggerGenOptions.IncludeXmlCommentsFromInheritDocsпри создании web-приложений ASP.NET Core, использующих API TESSA замените подключение пространства имёнUnchase.Swashbuckle.AspNetCore.Extensions.ExtensionsнаTessa.Web.Unchase.Swashbuckle.Extensions. - При получении карточки по серверному запросу теги больше не загружаются. Если теги необходимы при загрузке карточки на сервере, то их можно получить через API
ITagManager. - В обработчике привязок конструктора бизнес-процессов
IWorkflowEngineBindingExecutorметодGetAsync<T>, который позволял получить значение по привязке как для скалярных типов данных, так и для списков (при передаче в качестве типа вTмассива или типа, реализующегоIEnumerable<object>), разделён на 2 отдельных метода -GetAsync<T>для получения скалярных типов данных иGetListAsync<T>для получения списков. Если вы использовали методGetAsync<T>для получения списка значений (например,List<object>), то замените его наGetListAsync<T>. - При получении списка из сериализуемого хранилища его необходимо привести к типу
IList. Убедитесь, что при получении данных из сериализуемого хранилища нет приведений к типамIList<object>илиList<object>. Если есть, то необходимо заменить на приведение к типуIList. - Изменён абстрактный класс
TaskSatelliteClientGetFileContentExtension, используемый для передачи дайджеста карточки в запрос на получение файла из карточки-сателлита задания. Из конструктора базового класса удалён параметрICardRepository. - Изменён интерфейс
ICardManager. В методыImportAsyncдобавлен опциональный параметрbool errorIfCardExists, который позволяет не производить логику слияния и вернуть ошибку в ответе, если карточка уже существует, например, когда предполагается удаление существующей карточки перед импортом. - Удалена константа
KrConstants.DefaultStagesCount. Вместо неё используйте методKrConstants.GetDefaultStagesCount. - Для объектов
GlobalCache<T>событиеInvalidatedзаменено на методыAddInvalidatedHandlerAsyncиRemoveInvalidatedHandler. - Удалена возможность использовать компоненты карточек с платформенными расширениями, но без расширений типового решения и других расширений (актуально на сервере и в desktop-клиенте). Удалены регистрации контейнера
IExtensionContainerпо имениExtensionContainerNames.Platform, а также других объектов по именамиCardRepositoryNames.Platform,CardRepositoryNames.PlatformWithoutTransactionAndLocking,CardRepairManagerNames.Platform. - Из класса
KrComponentsHelperудалены методы, принимающиеICardCache. Вместо них используйте одноимённые методы, принимающиеIKrTypesCache. - В серверном API представлений для обращения к объекту
ViewDataAccessorвместо получения из DI функцииFunc<ViewDataAccessor>укажите типIViewDataAccessor. - Удалён интерфейс
IExtraViewProvider, вместо него используйте интерфейсIExtraViewListProvider. - В методы
IViewInterceptor.GetInterceptedViewAliasesAsyncиIExtraViewListProvider.GetExtraViewsAsyncдобавлен параметрViewDatabaseInfoс информацией по СУБД для основной базы данных, которая может передаваться в функциюCreateTessaViewFuncили в конструктор объектаTessaViewModelAdapterдля создания объектов представленийITessaView. Также гарантируется, что эти методы выполняются при открытом подключении к этой БД посредством объектаISeparateDbConnectionWorker, поэтому при обращениях к БД не требуется открывать такое подключение вручную. - Интерфейс
ITessaViewAccess, используемый для программных представлений, регулирующих свойств доступ по ролям, переименован вITessaViewWithAccessControl, он теперь реализуетITessaView. Его методGetRolesAsyncпереименован вGetRoleIdentifiersAsyncи возвращает только идентификаторы ролей. Пример программного представления в классеAbTransientViewProvider. - Изменён тип свойства
WorkflowEngineTaskSignal.TaskIDsнаIList<Guid>. Обновите проектный код, содержащий ссылку на это свойство. - Метод
HandlerHelper.SetTaskResultAsyncзаменён наWorkflowEngineHelper.UpdateTaskHistoryResultAsync. Обновите проектный код, содержащий ссылку на этот метод. - Теги регистраторов
RegistratorTag.DefaultForXyzпереименованы вRegistratorTag.GroupForXyz, также переименованы теги:Default->GroupForDefault,Server->GroupForServer,DefaultForClientAndConsole->GroupForClient. Используйте такие групповые теги в атрибутах регистраторов, но не в методах регистрации расширений в DI-контейнереcontainer.FindAndRegisterExtensionsOnXyzAsync(). В дополнение переименованы негрупповые теги для очевидного использования:ServerDefault->ServerOther,Client->ClientOther,ConsoleClient->ClientConsole,AppManagerClient->ObsoleteAppManager(отмечен как[Obsolete]). - В атрибуте регистраторов
[Registrator]удалено свойствоType. Для выполнения регистратора только для клиента любого типа укажитеTag = RegistratorTag.GroupForClient, а для любого сервера - укажитеTag = RegistratorTag.GroupForServer. - В объект сессионного токена
ISessionTokenдобавлено свойствоKind, которое используется при создании записи в истории действий. Учтите данное изменение при создании собственных записей в истории действий. - Класс
SharedEventArgs, используемый в API глобальных кэшей, сделан абстрактным. ВместоGlobalCache<SharedEventArgs>объявите кэш какGlobalCache<EmptySharedEventArgs>. Также в подписчиках на события инвалидации кэшей замените тип параметраDeferredEventArgs<SharedEventArgs>наDeferredEventArgs<EmptySharedEventArgs>. - Для абстрактных классов
StorageSerializableиAsyncStorageSerializableвиртуальные методы сериализации/десериализации, не выполнявшие действий, теперь являются абстрактными и обязательны для объявления. - Удалён метод-расширение
StorageExtensions.GetSerializedEnum, используйте вместо него аналогичные методыConvertEnumилиTryConvertEnum. - Удалены методы-расширения
ToSerializable. Используйте соответствующие методы для объектаSerializableObject, явно созданного конструктором по умолчанию. - Методы
ParserNames.IsAnyв API представлений переименованы вParserNames.Contains(для проверки единственного значения) иParserNames.HasIntersections(для проверки нескольких значений). - Удалён интерфейс
IKrPermissionExtendedCardSettings, который мог использоваться в расширениях правил доступа. Замените его на классKrPermissionExtendedCardSettingsStorage. Вместо метода интерфейсаTryGetCardSettingsиспользуйте методTryGetSectionSettings. - Модифицированы все методы интерфейсов
IObjectLockingStrategy,IObjectTransactionLockingStrategy,IKrPermissionsObjectLockingStrategy. Для корректной идентификации блокируемого объекта используется параметр типаObjectLockKey, который заменил два параметраobjectIDиobjectPrefix. Семантика использования осталась прежней. Для перехода на новыйAPIдостаточно окружитьobjectIDиobjectPrefixконструкциейnew (...), т.е.new (objectID, objectPrefix). - В методах
ITransactionStrategy,ICardTransactionStrategyдобавлена предварительная проверка параметраvalidationResultна наличие ошибок. В случае их наличия, никакие действия не выполняются и производится немедленный выход из методов. - В методах
IObjectLockingStrategy.ReleaseWriterLockAsync,IObjectLockingStrategy.ReleaseReaderLockAsync,IObjectTransactionLockingStrategy.ReleaseObjectAsync,IKrPermissionsObjectLockingStrategy.ClearLocksAsync,IKrPermissionsLockStrategy.ClearLocksAsync,IAclLockStrategy.ReleaseLockAsync,INestedRoleLockStrategy.ReleaseLockAsync,ISmartRoleLockStrategy.ReleaseLockAsyncудалён параметрcancellationToken. - Из API тестов удалены методы
KrAssert.IsStageActive. Вместо них используйте методыKrAssert.StageHasState. - Скоуп карточек
IWorkflowEngineCardsScopeпри вызове методаCreateтеперь всегда создаёт новую область видимости карточек, а не использует ранее созданную при повторных вызовах. Для методов получения карточки из скоупа добавлен необязательный параметр, позволяющий получать карточку, как только из текущего скоупа, так и из цепочки родительских скоупов. - Из метода
ISessionActivityProvider.SetIsActiveAsyncудалён параметрcancellationToken.
Изменения конфигурации при обновлении¶
-
Рабочие места:
-
AbTest(добавлено) -
Administrator -
User-
Добавлен узел “Шаблоны согласования”.
-
Добавлен узел “Удалённые файлы” в режиме отбора.
-
Для узлов “Мои теги” и “Доступные теги” изменены настройки расширения
CreateCardExtension. -
Для узлов в папке “Диаграммы” удалено расширение
ChartViewExtension. -
Изменена локализация заголовков для узлов “Текущие задания” и “Завершённые задания” в папке “Отчеты”, и для узла “Просроченные задания” в папке “Диаграммы”.
-
-
-
Представления:
-
AbCars(переименовано изCars) -
AbGroups(переименовано изGroups) -
AbGroupsWithHierarchy(переименовано изGroupsWithHierarchy) -
AbHierarchy(переименовано изHierarchy) -
AbResolutions(добавлено) -
AbViewFiles(переименовано изViewFiles) -
AccessLevels -
AccessTokens(добавлено) -
AclForCard -
AclGenerationRuleExtensions -
AclGenerationRules -
AcquaintanceHistory -
AcquaintanceStates -
ActionHistory -
ActionHistoryTypes -
ActionTypes -
ActiveWorkflows -
ApplicationArchitectures(удалено) -
ApplicationNames -
Applications -
ApprovalProcessControlMethods(добавлено) -
ApprovalProcessControlTypes(добавлено) -
ApprovalProcessEditorRoles(добавлено) -
ApprovalProcessInfoModes(добавлено) -
ApprovalProcessStates(добавлено) -
ApprovalProcessTemplates(добавлено) -
AvailableApplications -
AvailableDeputyRoles -
AvailableDeputyUsers -
BarcodeTypes -
Bundles(добавлено) -
BusinessProcessTemplates -
BusinessProcessTileHandlers(добавлено) -
ButtonToolbarVisibilityModes(добавлено) -
CalendarCalcMethods -
Calendars -
CalendarTypes -
CardTasks -
CardTaskSessionRoles -
CompletedTasks -
CompletionOptionCards -
CompletionOptions -
ConditionTypes -
ConditionUsePlaces -
ContractsDocuments -
CreateFileFromTemplate -
Currencies -
DashboardDisplayModes(добавлено) -
DateFormats -
Deleted -
DeletedFiles(добавлено) -
Departments -
DeputiesManagement -
DeviceTypes -
DialogButtonTypes -
DialogCardAutoOpenModes -
DialogCardStoreModes -
DocumentCategories -
Documents -
DocumentTypes -
DurableRoles -
EdsManagers -
EmittedTasks -
Errors -
ErrorWorkflows -
FileCategoriesAll -
FileCategoriesFiltered -
FileConverterTypes -
FileLoadingTokensForCard(добавлено) -
FileTemplates -
FileTemplateTemplateTypes -
FileTemplateTypes -
FormatSettings -
FunctionRoleCards -
GetCardIDView(удалено) -
GetFileNameView(удалено) -
HelpSections -
HelpSectionsGrouped -
ImageModes -
IncomingDocuments -
KrActionTypes -
KrCreateCardStageTypeModes -
KrCycleGroupingModes -
KrDocNumberRegistrationAutoAssigment -
KrDocNumberRegularAutoAssigment -
KrDocStateCards -
KrDocStates -
KrDocTypes -
KrFilteredStageGroups -
KrFilteredStageTypes -
KrForkManagementStageTypeModes -
KrManagerTasks -
KrPermissionAclGenerationRules -
KrPermissionFlags -
KrPermissionRoles -
KrPermissionRuleAccessSettings -
KrPermissions -
KrPermissionsControlTypes -
KrPermissionsExtendedCards -
KrPermissionsExtendedFiles -
KrPermissionsExtendedMandatory -
KrPermissionsExtendedTasks -
KrPermissionsExtendedVisibility -
KrPermissionsFileCheckRules -
KrPermissionsFileEditAccessSettings -
KrPermissionsFileReadAccessSettings -
KrPermissionsMandatoryValidationTypes -
KrPermissionsReport -
KrPermissionStates -
KrPermissionTypes -
KrProcessManagementStageTypeModes -
KrRouteModes -
KrSecondaryProcesses -
KrSecondaryProcessModes -
KrSecondaryProcessTileHandlers(добавлено) -
KrStageCommonMethods -
KrStageGroups -
KrStageRows -
KrStageTemplateGroupPosition -
KrStageTemplates -
KrStageTypes -
KrTypes -
KrTypesEffective -
KrTypesForDialogs -
KrTypesForPermissionsExtension -
KrVirtualFiles -
Languages -
LastTopics -
LicenseTypes -
LinkedDocuments -
LoginTypes -
MyAcquaintanceHistory -
MyCompletedTasks -
MyDocuments -
MyTags -
MyTasks -
MyTopics -
Notifications -
NotificationSubscriptions -
NotificationTypes -
OcrLanguages -
OcrOperations -
OcrPatternTypes -
OcrRecognitionModes -
OcrRequests -
OcrSegmentationModes -
Operations -
OutgoingDocuments -
Palettes(добавлено) -
Partitions -
Partners -
PartnersContacts -
PartnersTypes -
ProtocolCompletedTasks -
ProtocolReportsWithPhoto -
Protocols -
RefDocumentsLookup -
RefGroupModeEnum -
RefGroups -
RefGroupTypes -
RefGroupValueTypesEnum -
ReportCurrentTasksByDepartment -
ReportCurrentTasksByDepUnpivoted -
ReportCurrentTasksByUser -
ReportCurrentTasksRules -
ReportDocumentsByType -
ReportPastTasksByDepartment -
ReportPastTasksByUser -
ReportPermissionsMyTasks(добавлено) -
RoleDeputies -
RoleDeputiesManagementDeputized -
RoleDeputiesManagementDeputizedByDocTypes(добавлено) -
RoleDeputiesNew -
RoleDeputiesNewByDocTypes(добавлено) -
RoleGenerators -
Roles -
RoleTypes -
Sequences -
Sessions -
SignatureDigestAlgos -
SignatureEncryptionAlgos -
SignatureFileCategories -
SignaturePackagings -
SignatureProfiles -
SignatureTypes -
SmartRoleGenerators -
SmartRoleMembers(добавлено) -
SmartRoles(добавлено) -
TagCards -
Tags -
TaskAssignedRoles -
TaskAssignedRoleUsers -
TaskFunctionRoles -
TaskHistory -
TaskHistoryGroupTypes -
TaskKinds -
TaskStates -
TaskTypes -
Templates -
TileSizes(удалено) -
TimeZones -
TopicParticipants -
TopicUsersForMention(добавлено) -
TopicUsersForMentionAutocomplete(добавлено) -
TwoFactorAuthAllowedTypes -
TwoFactorAuthModes -
TwoFactorAuthTypes -
Types -
Users -
UsersBirthdays(добавлено) -
UsersDetails(добавлено) -
UsersDictionary(добавлено) -
VatTypes -
Views -
WebApplications -
WeTaskControlTypes -
WeTaskGroupActionOptionTypes -
WeTaskRoleSelectionModes(добавлено) -
WfResolutionAuthors -
WorkflowEngineCompiledBaseTypes -
WorkflowEngineErrors -
WorkflowEngineLogLevels -
WorkflowEngineLogs -
WorkflowEngineTaskActions -
WorkflowEngineTileManagerExtensions -
WorkflowLinkModes -
WorkflowNodeInstanceSubprocesses -
WorkflowNodeInstanceTasks -
WorkflowSignalProcessingModes -
WorkflowSignalTypes -
Workplaces
-
-
Таблицы:
-
AbCarAdditionalInfo(переименована изTEST_CarAdditionalInfo) -
AbCarCustomers(переименована изTEST_CarCustomers) -
AbCarMainInfo(переименована изTEST_CarMainInfo) -
AbCarOwners(переименована изTEST_CarOwners) -
AbCarSales(переименована изTEST_CarSales) -
AbCustomerOperations(переименована изTEST_CustomerOperations) -
AbPerformers(добавлена) -
AbResolutions(добавлена) -
AbResolutionStages(добавлена) -
ActionHistory -
ActionHistoryVirtual -
ActionTypes -
ApplicationArchitectures(удалена) -
Applications -
ApprovalProcessAction(добавлена) -
ApprovalProcessActionApprovedLinks(добавлена) -
ApprovalProcessActionDisapprovedLinks(добавлена) -
ApprovalProcessActionRevokedLinks(добавлена) -
ApprovalProcessControlAction(добавлена) -
ApprovalProcessControlMethods(добавлена) -
ApprovalProcessControlTypes(добавлена) -
ApprovalProcessInfo(добавлена) -
ApprovalProcessInfoApprovers(добавлена) -
ApprovalProcessInfoModes(добавлена) -
ApprovalProcessInfoTaskRoles(добавлена) -
ApprovalProcessInfoTasks(добавлена) -
ApprovalProcessInstanceNodes(добавлена) -
ApprovalProcessInstances(добавлена) -
ApprovalProcessSettings(добавлена) -
ApprovalProcessStates(добавлена) -
ApprovalProcessTasks(добавлена) -
ApprovalProcessTemplates(добавлена) -
ApprovalProcessTemplateTypes(добавлена) -
ApprovalProcessTemplateUsers(добавлена) -
ApprovalProcessTemplateWriters(добавлена) -
BackgroundColors(удалена) -
BlockColors(удалена) -
Bundles(добавлена) -
BusinessProcessButtons -
BusinessProcessButtonsVirtual -
BusinessProcessButtonToolbarVisibilityModes(добавлена) -
CompletionOptions -
CustomBackgroundColorsVirtual(удалена) -
CustomBlockColorsVirtual(удалена) -
CustomForegroundColorsVirtual(удалена) -
DashboardDisplayModes(добавлена) -
Dashboards(добавлена) -
DashboardTypes(добавлена) -
DeletedFiles(добавлена) -
DeletedFileSignatures(добавлена) -
DeletedFileVersions(добавлена) -
DeletedPdfAnnotations(добавлена) -
FileCategories -
Files -
FileVersions -
FmAttachments -
FmMessages -
FmNotifications(удалена) -
FmNotificationSettingsVirtual(добавлена) -
FmTopicParticipantRoles -
FmTopicParticipantRolesUnsubscribed -
FmTopicParticipants -
FmTopics -
FmUserSettingsVirtual(удалена) -
FmUserStat -
ForegroundColors(удалена) -
FunctionRoles -
FunctionRolesVirtual -
Instances -
KrAddFromTemplateSettingsVirtual -
KrAdditionalApproval -
KrAmendingActionVirtual -
KrApprovalActionVirtual -
KrApprovalProcessManagementSettingsVirtual(добавлена) -
KrApprovalProcessSettingsVirtual(добавлена) -
KrApprovalSettingsVirtual -
KrCardGeneratorVirtual(удалена) -
KrEditSettingsVirtual -
KrPermissionExtendedFileRules -
KrPermissions -
KrProcessStageTypes -
KrRequestComment -
KrSecondaryProcesses -
KrSettingsCycleGroupingTaskHistoryGroupTypes(добавлена) -
KrSigningActionVirtual -
KrSigningStageSettingsVirtual -
KrUniversalTaskActionButtonTaskRolesVirtual(добавлена) -
KrUniversalTaskOptions -
KrUserSettingsVirtual(удалена) -
NestedRoles -
NormalizationSources(добавлена) -
OcrMappingComplexFields(удалена) -
OcrMappingFields(удалена) -
OcrOperations -
OnlyOfficeSettings -
Palettes(добавлена) -
PersonalRoles -
PersonalRoleSatellite -
PersonalRoleUnsubscribedTypesVirtual(переименована изPersonalRoleUnsubscibedTypesVirtual) -
Roles -
Scheme -
ServerInstances -
Sessions -
SignatureSettings -
SmartRoles -
Tags -
TaskAssignedRoles -
TaskCommonInfo -
Tasks -
TileSizes(удалена) -
Tokens(добавлена) -
UserAvatarCache(добавлена) -
UserPalettesVirtual(добавлена) -
UserSettingsVirtual -
Views -
WeAddFileFromTemplateAction -
WebClientRoles(удалена) -
WeNotificationTaskRoles(добавлена) -
WeTaskActionCompletionNotifications(добавлена) -
WeTaskActionNotificationRoles -
WeTaskActionNotifications(добавлена) -
WeTaskActionTaskRoleRoles(добавлена) -
WeTaskActionTaskRoles(добавлена) -
WeTaskControlAction -
WeTaskGroupAction -
WeTaskRoleSelectionModes(добавлена) -
WeTaskRolesToRemove(добавлена) -
WeTimerAction -
WfTaskCardsVirtual -
WidgetOriginEditors(добавлена) -
Widgets(добавлена) -
WidgetTemplates(добавлена) -
WidgetTemplatesAdministrators(добавлена) -
WidgetTemplatesEditors(добавлена) -
WidgetTemplatesKinds(добавлена) -
WidgetTemplatesReaders(добавлена) -
WorkflowEngineTaskActions -
WorkflowEngineTimerSubscriptions -
WorkflowInLinks -
WorkflowLinks -
WorkflowSignalTypes
-
-
Функции:
-
CalendarAddWorkingDaysToDate -
CalendarAddWorkingDaysToDateExact -
CalendarAddWorkQuants -
CalendarGetDateDiff -
CalendarGetDayOfWeek -
CalendarGetFirstQuantStart -
CalendarGetLastQuantEnd -
CalendarGetPlannedByWorkingDays -
CalendarIsWorkTime -
DateTruncUtc -
FormatAmount -
GetAggregateRoleUsers -
GetString -
GetTimeIntervalLiteral -
Localization -
Localize -
TryCastAsBigint(добавлена)
-
-
Миграции:
Platform
-
Библиотеки схемы:
-
AbTest(добавлена) -
Acl -
ApprovalProcess(добавлена) -
Default -
FullTextSearch -
Ocr -
Standard solution -
Workflow
-
-
Типы:
-
AbCar(переименован изCar) -
AbCardGenerator(добавлен) -
AbCarExternalSystemRequest(переименован изCar1CDialog) -
AbCarTableRequest(добавлен) -
AbCarViewParameters(переименован изCarViewParameters) -
AbExampleDialogSatellite(переименован изKrExampleDialogSatellite) -
AbResolution(добавлен) -
AbTask1(переименован изTestTask1) -
AbTask2(переименован изTestTask2) -
AccountUserSettings -
AclGenerationRule -
ActionHistoryRecord -
AdSync -
ApiAccessTokensDialog(добавлен) -
Application -
ApprovalProcessInfo(добавлен) -
ApprovalProcessSettings(добавлен) -
ApprovalProcessTemplate(добавлен) -
ApprovalProcessTemplates(добавлен) -
AuthorCondition -
AutoCompleteDialogs -
AvatarUserSettings(добавлен) -
BusinessProcessTemplate -
Calendar -
CalendarCalcMethod -
CardTasksEditorDialog -
CompletionOption -
ConditionsBase -
ConditionType -
ContextRole -
Contract -
CreateFileFromTemplate -
CreateFileTempLink(добавлен) -
Currency -
Dashboard(добавлен) -
DefaultCalendarType -
Deleted -
DepartmentCondition -
DepartmentRole -
Dialogs -
DocLoad -
DocStateCondition -
DocTypeCondition -
Document -
DocumentCategory -
DynamicRole -
EmptyCondition -
Error -
FieldChangedCondition -
File -
FileCategory -
FileConverterCache -
FilePreviewDialog -
FileSatellite -
FileTemplate -
FormatSettings -
ForumSatellite -
FunctionRole -
GeneralUserSettings -
HelpSection -
HelpSectionDialogs -
ImageModes -
Incoming -
InitiatorCondition -
KrAcquaintanceAction -
KrAcquaintanceStageTypeSettings -
KrAddFileFromTemplateStageTypeSettings -
KrAdditionalApproval -
KrAmendingAction -
KrApprovalAction -
KrApprovalProcessManagementStageTypeSettings(добавлен) -
KrApprovalProcessStageTypeSettings(добавлен) -
KrApprovalStageTypeSettings -
KrApprove -
KrAuthorSettings -
KrCard -
KrChangeStateAction -
KrChangeStateStageTypeSettings -
KrCheckStateWorkflowTileExtension -
KrCreateCardStageTypeSettings -
KrDeregistrationAction -
KrDialogStageTypeSettings -
KrDocState -
KrDocType -
KrEdit -
KrEditInterject -
KrEditStageTypeSettings -
KrForkManagementStageTypeSettings -
KrForkStageTypeSettings -
KrHistoryManagementStageTypeSettings -
KrInfoForInitiator -
KrNotificationStageTypeSettings -
KrPerformersSettings -
KrPermissions -
KrProcessManagementStageTypeSettings -
KrRegistration -
KrRegistrationAction -
KrRegistrationStageTypeSettings -
KrRequestComment -
KrResolutionAction -
KrResolutionStageTypeSettings -
KrRouteInitializationAction -
KrSamplePermissionsExtensionType -
KrSatellite -
KrSecondaryProcess -
KrSecondarySatellite -
KrSettings -
KrShowDialog -
KrSigning -
KrSigningAction -
KrSigningStageTypeSettings -
KrStageCommonMethod -
KrStageGroup -
KrStageTemplate -
KrStateExtension -
KrTaskKindSettings -
KrTaskRegistrationAction -
KrTemplateCard -
KrTypedTaskStageTypeSettings -
KrUniversalTask -
KrUniversalTaskAction -
KrUniversalTaskStageTypeSettings -
KrUserSettings(удалён) -
KrVirtualFile -
LanguageAndFormattingUserSettings -
License -
LocalizationDialogs -
MetadataEditor -
Metarole -
NestedRole -
Notification -
NotificationSubscriptions -
NotificationType -
NotificationUserSettings -
OcrOperation -
OcrRequestDialog -
OcrSettings -
OnlyOfficeSettings -
OpenInModalDialogSettings -
Operation -
Outgoing -
Partner -
PartnerCondition -
PersonalizationUserSettings -
PersonalRole -
PersonalRoleSatellite -
Protocol -
RefGroup -
RefGroupType -
ReportPermissions -
RoleDeputiesManagement -
RoleGenerator -
RouteCondition -
RowAddedCondition -
RowDeletedCondition -
SelectTag -
Sequence -
ServerInstance -
ShowDialog -
SignatureSettings -
SmartRole -
SmartRoleGenerator -
StaticRole -
Tag -
TagCondition -
TaskAssignedRoleEditor -
TaskAssignedRoles -
TaskChangedCondition -
TaskHistoryGroupType -
TaskKind -
TaskRole -
TaskTypeCondition -
Template -
TemplateFile -
TileUserSettings(удалён) -
TimeZones -
TopicDialogs -
TopicTabs -
TwoFactorAuthTotpSettings -
TwoFactorAuthUserSettings -
UserSettingsSystemType -
View -
ViewExtensions -
ViewInformationLabelSettings(добавлен) -
VirtualScheme -
WebApplication -
WfResolution -
WfResolutionChild -
WfResolutionControl -
WfResolutionProject -
WfSatellite -
WfTaskCard -
WorkflowActionEditor -
WorkflowActionInstanceEditor -
WorkflowAddFileFromTemplateAction -
WorkflowAndAction -
WorkflowApprovalProcessAction(добавлен) -
WorkflowApprovalProcessControlAction(добавлен) -
WorkflowCheckRolesForExecutionTileExtension -
WorkflowCommandAction -
WorkflowConditionAction -
WorkflowCreateCardAction -
WorkflowDialogAction -
WorkflowEndAction -
WorkflowEngineSettings -
WorkflowHistoryManagementAction -
WorkflowLinkEditor -
WorkflowNewItemEditor -
WorkflowNodeEditor -
WorkflowNodeInstanceEditor -
WorkflowNotificationAction -
WorkflowOutdatedAction(добавлен) -
WorkflowProcess -
WorkflowProcessEditor -
WorkflowProcessInstanceEditor -
WorkflowScenarioAction -
WorkflowSendSignalAction -
WorkflowStartAction -
WorkflowSubprocessAction -
WorkflowSubprocessControlAction -
WorkflowTaskAction -
WorkflowTaskControlAction -
WorkflowTaskGroupAction -
WorkflowTaskGroupControlAction -
WorkflowTimerAction -
WorkflowTimerControlAction -
Workplace
-
-
Карточки:
-
Acquaintance -
AcquaintanceType -
Active Directory Sync (settings) -
Addendum -
AdditionalApprovalCompletedNotification -
AdditionalApprovalCompletedNotificationType -
AdditionalApprovalNotification -
AdditionalApprovalNotificationType -
Approval process settings (settings)(добавлена) -
Approval -
ApprovalCycle -
ApprovalGroup -
ApprovalHistory -
ApprovalHistoryCondition -
ApprovalSchemeTemplate(добавлена) -
ApprovedNotification -
ApprovedNotificationType -
Assigned to me (Excel) -
Assigned to me -
AuthorCondition -
Business process designer (settings) -
CancelButton -
CardCreatedCondition -
CardDeletedCondition -
CardType -
CommentNotification -
CommentNotificationType -
Continuous document load (settings) -
Contract -
Default access rules -
Default acquaintance access rule -
DefaultCalendar -
DefaultWeek_Type -
DepartmentCondition -
DeregisterButton -
Directive -
DiscussionParticipant(добавлена) -
DocStateCondition -
DocTypeCondition -
Document -
DocumentState -
DocumentType -
EditTemplate -
FieldChangedCondition -
File cache (settings) -
ForumNewMessagesNotification -
ForumUserHasBeenAddedNotification(добавлена) -
ForumUserHasBeenAddedNotificationType(добавлена) -
ForumUserMentionNotification(добавлена) -
ForumUserMentionNotificationType(добавлена) -
HasAccessibleTag -
IAmModerator -
Incoming -
InitiatorCondition -
License (settings) -
ModifyTaskAssignedRolesButton -
NewIterationTemplate -
Official note -
Order -
Other -
Outgoing -
PartnerCondition -
PasswordExpires -
PostgreSql/Acquaintance -
PostgreSql/Aggregate roles -
PostgreSql/All employees -
PostgreSql/Author of document -
PostgreSql/CardType -
PostgreSql/Creator of card -
PostgreSql/DocumentState -
PostgreSql/DocumentType -
PostgreSql/Initiator -
PostgreSql/Registrator of document -
PostgreSql/Supervisor of initiator -
PostgreSql/TaskType -
PrintableApprovalHistory -
Protocol of the meeting (Excel) -
Protocol of the meeting -
ProtocolBranchPure -
ProtocolDecisions -
RebuildButton -
RegisterButton -
Registrators -
RejectButton -
ReturnForAmendingTemplate -
ReturnFromPostponeNotification -
ReturnFromPostponeNotificationType -
Roles/Acquaintance -
Roles/Aggregate roles -
Roles/All employees -
Roles/Author of document -
Roles/Computed performers -
Roles/Creator of card -
Roles/Initiator -
Roles/Registrator of document -
Roles/Registrators -
Roles/Supervisor of initiator -
RouteCondition -
RowAddedCondition -
RowDeletedCondition -
SendProtocolTasksButton -
Server settings (settings) -
Signature settings (settings) -
Standard solution (settings) -
StartProcessButton -
StartProcessByApprovalSchemeButton(добавлена) -
System -
TagCondition -
TaskChangedCondition -
TaskNotification -
TaskNotificationType -
Tasks -
TasksNotification -
TasksNotificationType -
TaskType -
TaskTypeCondition -
Text recognition settings (settings) -
Time zones (settings) -
UpdateKeysNotification -
VirtualFiles/ApprovalHistory -
WfChildResolutionNotification -
WfChildResolutionNotificationType -
WfRevokeNotification -
WfRevokeNotificationType
-
-
Изменены библиотеки локализации.