Перейти к содержанию

Патч 4.0.2 (18.05.2024)

Новые возможности

  1. Реализована аутентификация в системе с использованием внешних провайдеров по протоколам OAuth 2.0 и OpenID Connect. Подробнее см. Руководство по настройке аутентификации через OAuth.
  2. Реализована возможность создания временной ссылки на файл или версию файла из соответствующего контекстного меню. Файл должен быть сохранён на сервере, и для типа карточки должно быть добавлено правило доступа, разрешающее создавать такую ссылку.
  3. Добавлена поддержка для формата файла лицензии .jlic, который содержит информацию по лицензии в JSON-формате. Строка поиска файлов лицензии в конфигурационных файлах app*.json и файлах проектов .csproj теперь указывается как *.?lic, чтобы учесть как бинарные файлы лицензии *.tlic, так и JSON-файлы *.jlic. В будущих версиях платформы поддержка бинарного формата *.tlic будет прекращена.

Добавление и изменение функциональности

  1. Добавлена поддержка множественного выбора строк в master-представлении с передачей значений всех выбранных строк в detail-представление. Актуально для master-detail связей в узлах рабочих мест и для master-detail связей контролов “Представление” в карточках. Подробнее см. в документации.
  2. В web-клиенте для Google Chrome в уведомление об открытой вкладке браузера с приложением добавлены кнопки для перехода на открытую вкладку или открытия приложения в текущей.
  3. В web-клиенте в окне “О программе” теперь выводится текущее описание конфигурации. Его можно установить посредством вызова скрипта Fixes/SetConfigDescription.xx.sql (xx равен pg для PostgreSQL, или ms для MS SQL Server). Подробнее в разделе руководства Примеры использования со стандартными скриптами из папки Fixes.
  4. В web-клиенте добавлено всплывающее окно с подтверждением изменений при попытке закрытия диалога создания обсуждений.
  5. Плагин TextRecognition для обработки операций по распознаванию текста в файле перенесён в веб-сервис web. Теперь операции по OCR берутся в работу сразу после их создания.
  6. В web-клиенте в область предпросмотра файлов в правый верхний угол добавлена кнопка, позволяющая открыть файл в диалоговом окне, развёрнутым на весь экран.
  7. В web-клиенте изменена анимация загрузки.
  8. В руководстве разработчика добавлен пример реализации обработчика для нового OAuth-провайдера. Подробнее см. Добавление нового OAuth-провайдера.
  9. Доработаны скрипты setup.sh, upgrade.sh, export.sh, migrate.sh (только linux-версии) для выполнения в неинтерактивном режиме, что позволяет удобно их использовать в сценариях автоматизации. Вызовите скрипт с аргументом --help, чтобы получить краткую справку по доступным аргументам командной строки. За описанием их использования обратитесь к разделу Автоматизация скриптов установки и обновления.
  10. Вложенные изображения в форумах и контроле “Текст с форматированием” теперь всегда используют ссылку для получения своего контента.
  11. Цвет текста для тега больше не может быть задан пользователем и теперь всегда определяется автоматически на основе выбранного цвета фона.
  12. В web-клиенте изменён внешний вид тулбара для контрола “Текст с форматированием” и для поля ввода сообщения в форумах и обсуждениях.
  13. В web-клиенте добавлена возможность развернуть на весь экран поле ввода сообщения в форумах и обсуждениях.
  14. В web-клиенте для контрола “Обсуждения” в контекстном меню добавлена кнопка “Войти в режим повышенных привилегий”.
  15. В web-клиенте добавлена возможность отображения диалогов валидации в полноэкранном режиме.
  16. В разделе руководства Использование Redis добавлены подразделы Вывод установленных блокировок и Удаление блокировок с указанием доступных в системе средств для управления блокировками вручную.
  17. В руководство разработчика добавлен раздел, описывающий основные концепции создания собственного контроллера для веб-сервиса. Подробнее см. Создание контроллера веб-сервиса на основе API TESSA.
  18. В редактор типа задания добавлена настройка “Форма по умолчанию”, которая позволяет выбрать одну из форм типа задания в качестве формы по умолчанию, или же выбрать в качестве таковой вариант “Пустая форма”. Для варианта завершения типа задания теперь, помимо форм из типа задания, доступен для выбора вариант “Форма по умолчанию”. См. раздел руководства Тип задания.
  19. Добавлен раздел документации Токены доступа к содержимому системы, описывающий токены для доступа к объектам системы без авторизации, в т.ч. по аватарам и внешним ссылкам на файлы.
  20. В карточку правил доступа добавлен флаг “Создание ссылки на скачивание файла/версии”, позволяющий для карточек, включенных в типовое решение управлять возможностями создания временных ссылок на файлы пользователями.
  21. В карточку настроек сервера была добавлена настройка “Максимальный период действия ссылки на файл (дней)”, позволяющая задать максимальное количество дней, в течение которых будет действовать временная ссылка. При создании временной ссылки пользователь может указать меньший период, чем указано в настройке, но не больший.
  22. Добавлены события истории действий, связанные с функциональностью временных ссылок на файлы: “Создание токена для временной ссылки на файл”, “Отзыв токена доступа к контенту”.
  23. В web-клиенте изменено действие при клике на файл. Теперь при одинарном клике открывается предпросмотр, если он доступен.
  24. В web-клиенте добавлена возможность копировать выделенный текст в предпросмотре посредством Р7-Офис / OnlyOffice.
  25. В web-клиенте добавлена возможность выбирать режим курсора мыши и выделять текст в предпросмотре PDF.
  26. В web-клиенте добавлено действие при двойном клике на файл: если доступен Deski, откроется файл на редактирование/чтение; если Deski недоступен, откроется предпросмотр файла, если он доступен. На мобильном устройстве всегда откроется файл в предпросмотре, если он доступен.
  27. В функциональные роли (ФР) добавлена настройка “Отображать в задании по умолчанию”. Для ФР “Автор” она включена по умолчанию. Эта настройка определяет необходимость того, чтобы по умолчанию устанавливать флаг “Отображать в задании” для всех добавляемых записей с этой ФР, если только при добавлении записи с этой ФР флаг “Отображать в задании” не был определён принудительно (например, через расширение).
  28. Для карточек “Календарь” и “Тип календаря: Рабочая неделя” удалено автоматическое заполнение значений для начала и окончания действия исключения при создании новой строки в таблице исключений.
  29. В web-клиенте для таблиц исключений у карточек “Календарь” и “Тип календаря: Рабочая неделя” добавлено автоматическое заполнение даты окончания действия исключения датой начала действия исключения, если дата окончания действия исключения не заполнена. Аналогично для обратной ситуации.
  30. В web-клиенте для таблиц исключений у карточек “Календарь” и “Тип календаря: Рабочая неделя” добавлен запрет возможности выбрать дату окончания действия исключения меньше даты начала действия исключения. И наоборот - выбрать дату начала действия исключения больше даты окончания действия исключения.
  31. В web-клиенте добавлены иконки для режимов курсора мыши в предпросмотре PDF.
  32. В desktop-клиенте в контрол “Представление” добавлена настройка “Расположение тегов”.
  33. При редактировании типов (карточек, файлов, диалогов, заданий) все цвета в настройках контролов по умолчанию теперь не заданы (пустые поля), в этом случае фактический цвет по умолчанию определяет тема. Это относится к цвету заголовка для всех контролов, а также к цвету текста, цвету фона и цвету границы для тех контролов, где есть эти настройки.

Консольная утилита tadmin

  1. Для команд PrintLocks и PrintLocksClient теперь возможно не перечислять группы блокировок, в результате чего будут выведены все блокировки с указанием названий групп. Подробнее см. в разделе Консольная административная утилита tadmin.
  2. В файле app.json консольной утилиты теперь указан Management endpoint, который равен по умолчанию значению "maintenance", что соответствует значению по умолчанию в app.json сервиса webbi. Это позволяет не указывать параметр -wm:management для команд, использующих механизмы управления компонентами, таких как команды DeleteLocksClient, PrintLocksClient и др.
  3. Переименован скрипт TypeFontsFix на TypeSettingsFix. Также теперь он выполняет исправление других настроек блоков и контролов.

Новые версии библиотек

  1. .NET 6.0.30
  2. BarcodeLib 3.1.1
  3. CsvHelper 32.0.3
  4. HtmlAgilityPack 1.11.61
  5. HtmlSanitizer 8.0.865
  6. iTextSharp.LGPLv2.Core 3.4.20
  7. linq2db 5.4.1
  8. MailKit 4.6.0
  9. Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.2
  10. Microsoft.NET.Test.Sdk 17.9.0
  11. NLog 5.3.2
  12. NLog.Web.AspNetCore 5.3.11
  13. Npgsql 7.0.7
  14. OpenTelemetry 1.8.1
  15. OpenTelemetry.Exporter.OpenTelemetryProtocol 1.8.1
  16. OpenTelemetry.Extensions.Hosting 1.8.1
  17. OpenTelemetry.Instrumentation.AspNetCore 1.8.1
  18. Otp.NET 1.4.0
  19. QRCoder 1.5.1
  20. Quartz 3.9.0
  21. SixLabors.ImageSharp.Drawing 2.1.3
  22. SkiaSharp 2.88.8
  23. Swashbuckle.AspNetCore 6.6.1
  24. Swashbuckle.AspNetCore.Newtonsoft 6.6.1
  25. System.IdentityModel.Tokens.Jwt 7.5.1

Изменения API

  1. В руководство разработчика добавлен пример реализации контроллера с REST-методами для работы с типом контента multipart/form-data. Подробнее см. REST-методы для работы с multipart.
  2. Для объекта TopicNotificationService добавлено два виртуальных метода GetRecipientsAsync и SendNotificationCoreAsync, позволяющие переопределять логику работы в наследниках.
  3. Изменено API по созданию и использованию объектов IWebProxy. Добавлена возможность определения обработчиков IWebProxyXyzHandler, влияющих на подготовку запроса к отправке и обработку ответа на запрос. Пространства имён для соответствующих типов изменены с Tessa.Platform.Runtime на Tessa.Platform.Web. Изменены флаги WebRequestFlags и сигнатура метода WebProxy.SendAsync<T>. Обратитесь к разделу руководства Запросы к веб-сервисам посредством прокси-объектов WebProxy.
  4. Добавлен класс ConcurrentObjectPool<T>, предоставляющий пул объектов по аналогии с ObjectPool<T>, но являющийся потокобезопасным.
  5. Для таблицы TableGridViewModel в desktop-клиенте и TableGridViewModelBase в web-клиенте добавлен метод SetGrouping, позволяющий задать группировку по колонке с возможностью дополнительно указать, из какой колонки будет браться имя группы.
  6. В web-клиенте все объектные модели, связанные с предпросмотром документа, теперь доступны по пути tessa/ui/preview.
  7. В web-клиенте добавлен новый тип расширения FilePreviewExtension, с помощью которого можно переопределить поведение предпросмотра по умолчанию.
  8. В web-клиенте у типа PreviewManager метод previewToolFactory заменён на событие onPreviewerResolve.
  9. В веб-клиенте в типе CardEditorModel сеттер свойства cardModel заменён на асинхронный метод setCardModel.
  10. Для методов RemoveRolesAsync и RemoveParticipantsAsync интерфейса IForumProvider добавлен параметр serviceMessageMode = ForumServiceMessageMode.Enabled, позволяющий управлять поведением сервисного сообщения об удалении участников из топика.
  11. В web-клиенте модели, относящиеся к workflow и krProcess, перенесены из неймспейса tessa/workflow в @tessa/platform/workflow.
  12. В web-клиенте тип KrTypesCache отмечен как deprecated. Рекомендуется запрашивать тип IKrTypesCache из DI.
  13. В web-клиенте тип KrStageTypeUIHandler перенесён из неймспейса tessa/workflow/krProcess в tessa/ui/workflow/krProcess.
  14. В web-клиенте удалён компонент LoadingOverlayWithPortal. Вместо него можно использовать компонент LoadingOverlay, который теперь отображается с порталом по умолчанию. Для отображения без портала необходимо передать значение свойства noPortal, равное true.
  15. В web-клиенте тип BusinessCalendarService перенесен в @tessa/platform и доступен по запросу IBusinessCalendarService$ из DI.
  16. Улучшено получение зависимостей через конструктор контроллера, используя .NET DI (IServiceProvider) для режима активации ControllerActivationMode.Unity (класс контроллера без атрибута [TessaController] или с атрибутом, не изменяющим режим активации на другой). Если параметр является опциональным (IService? service = null), то регистрация зависимости может отсутствовать, в этом случае будет подставлено значение параметра null. Также допустимо использовать атрибут [FromKeyedServices(key)], чтобы определить ключ, по которому зависимость должна быть зарегистрирована (как AddKeyedScoped или AddKeyedSingleton), но в пределах класса допустимо использовать лишь один ключ (или его отсутствие) для каждого типа параметра, получаемого из .NET DI. Для более сложных сценариев можно получить в конструкторе IServiceProvider и запросить из него сервисы вручную, или же надо отказаться от режима активации ControllerActivationMode.Unity, указав атрибут [TessaController(ActivationMode = ControllerActivationMode.AspNetCore)].
  17. Для контроллеров добавлены методы-расширения ControllerExtensions.Forbidden и ControllerExtensions.ForbiddenException, с помощью которых можно сформировать исчерпывающую информацию об ошибке с HTTP-кодом 403 Forbidden. Подробнее можно прочитать в разделе Создание контроллера веб-сервиса на основе API TESSA.
  18. Доработан процесс обновления информации об авторе в задании и соответствующей ему записи в истории заданий. Теперь если автор задания не был указан вручную, в таблице Tasks помимо информации об авторе, выбранном из списка связанных с заданием ролей, будет записан идентификатор строки из TaskAssignedRoles, по которой был выбран автор. При удалении из TaskAssignedRoles записи с указанным идентификатором - будет автоматически перерассчитан новый автор и записан в задание и связанную с ним запись в истории заданий.
  19. В CardTask.Flags теперь можно указать флаг CardTaskFlags.RecalculateAuthor, который принудительно запустит процесс пересчёта автора, указываемого в задании и соответствующей ему записи в истории заданий, на основе информации из TaskAssignedRoles.
  20. Добавлен раздел документации Создание проектного менеджера прав на создание токена доступа к файлам по внешней ссылке, рассматривающий реализацию поддержки создания внешних временных ссылок.
  21. Добавлен интерфейс ITempFileLinkProvider для создания токенов доступа и временных ссылок на файлы и получения их содержимого.
  22. Добавлен интерфейс IFileContentPermissionManager, позволяющий установить права доступа на создание временной ссылки для карточек, чьи типы не входят в типовое решение.
  23. Свойство CardTaskAssignedRole.ShowInTaskDetails теперь Nullable<bool>. Если ShowInTaskDetails is null, то значение для записи, добавляемой в список связанных с заданием ролей, будет определено из значения CardMetadataFunctionRole.ShowInTaskDetails соответствующей функциональной роли.
  24. В web-клиенте добавлена возможность создавать правила для нормализации настроек контролов. Задать правила можно с помощью методов Normalization.instance.remove, Normalization.instance.replace, Normalization.instance.ignore, Normalization.instance.custom.
  25. Добавлен интерфейс IViewRequestValidator, позволяющий валидировать запросы к представлениям.
  26. В API тестов в объект ScopeContext добавлен метод GetNamedLock, позволяющий получить объект AsyncLock, с помощью которого можно синхронизировать выполнение логики при обработке параллельно выполняющихся тестов внутри одной области выполнения.
  27. Регистрация консольных команд в методе CommandContext.AddCommand() теперь выполняется без перечисления типов аргументов.
  28. Добавлены интерфейс IDocLoadBarcodeManager и класс DocLoadBarcodeManager для объекта, выполняющего поиск штрих-кодов в модуле потокового сканирования. Вы можете переопределить регистрацию в Unity, чтобы повлиять на алгоритм распознавания.
  29. Для расширений типов CardTypeExtensionType теперь можно передать в конструкторе опциональную функцию enumerateVisitorObjectsFuncAsync, которая возвращает дополнительные объекты для их обхода посредством ICardTypeVisitor (см. метод CardType.VisitAsync). Так, для расширения типа “Таблица в представлении” функция возвращает контрол CardTypeTableControl, содержащий пользовательский интерфейс, настраиваемый по кнопке “Колонки и форма”.
  30. Изменён интерфейс IObjectTransactionLockingStrategy. Добавлен метод ReleaseObjectAsync, который освобождает блокировку объекта. В метод ObtainReaderLockAsync добавлен параметр releaseOnlyIfEscalated, определяющий, что блокировку необходимо освободить только если тип блокировки является эскалированной блокировкой или блокировкой на запись.
  31. Изменён интерфейс ITransactionScopeContext. Добавлено свойство IsValuable, определяющее, является ли контекст области выполнения транзакции значимым.
  32. Изменён интерфейс IObjectTransactionLockingStrategy. Из метода ExecuteInWriterLockAsync удалён неиспользуемый параметр releaseLock.
  33. В классе CardGetFileContentRequest булевое свойство SuggestFileName заменено на свойство-перечисление SuggestFileNameMode. Используйте метод ShouldSuggestFileName для установки актуального значения свойства SuggestFileNameMode.
  34. В класс CardGetFileContentRequest добавлено булевое свойство SuggestFileNameForVersion. Укажите его в запросе на получение контента файла, чтобы дать рекомендацию серверу по формированию предпочитаемого имени файла.
  35. В ссылках на файлы /links/file и /links/html добавлен булевый параметр suggestFileNameForVersion со значением по умолчанию, равным false. Данный параметр используется, чтобы рекомендовать серверу формировать предпочитаемое имя запрашиваемого файла, как имя версии этого файла.

Исправления и оптимизации

  1. Исправлен вывод команды tadmin Check с параметром -h при получении состояния Unhealthy.
  2. Исправлены конструкторы классов исключений ConfigurationSealedException и ConfigurationStrictSecurityException, принимающие вложенное исключение.
  3. В web-клиенте исправлено отображение неактуального фонового изображения при повторном открытии закрытой вкладки и дублировании вкладки.
  4. В web-клиенте исправлено поведение обнаружения открытой вкладки браузера с приложением: при перезагрузке страницы обнаружениие не производится.
  5. Исправлена инициализация зависимостей по умолчанию TessaPlatform.Dependencies и TessaPlatform.ServerDependencies при невозможности выполнить парсинг файла app.json. Для приложений chronos, web, tadmin инициализируются зависимости из Tessa.Linux для ОС Linux. Для приложений chronos, web инициализируются зависимости из Tessa.Server. Это позволяет для некорректно сформированного файла app.json (например, при опечатке в нём) открыть страницу /check веб-сервиса, и увидеть причину ошибки вместо падения при инициализации контейнера Unity.
  6. В web-клиенте исправлена локализация заголовка у диалогов, открываемых до получения настроек локализации с сервера.
  7. В web-клиенте исправлена ошибка, приводившая к дублированию описания в диалоге ошибок.
  8. Исправлена ошибка, из-за которой не обновлялся флаг IsActive для заместителей контекстных ролей при использовании старой системы замещений.
  9. В web-клиенте исправлен стиль области между полосами вертикальной и горизонтальной прокрутки.
  10. Исправлена ошибка, из-за которой в иерархических представлениях при установленном флаге AutoSelectFirstRow не всегда выбиралась корректная строка.
  11. В контроле “Представление” с включённым расширением “Список файлов в представлении” исправлено отображение колонки “Категория” в ситуации, когда группировка менялась с “По категории” на любую другую.
  12. В контроле “Список файлов” и в контроле “Представление” с включённым расширением “Список файлов в представлении” исправлена группировка “По копии” в ситуации, когда у двух основных файлов с копиями было одинаковое имя.
  13. В web-клиенте в контроле “Представление” с включённым расширением “Список файлов в представлении” отключён автоматический выбор первой строки, который приводил к предпросмотру первого файла при применении любой группировки или фильтрации.
  14. В web-клиенте исправлена прокрутка колесом мыши внутри элементов, открываемых из панели многостраничного тулбара.
  15. В web-клиенте исправлена ошибка, приводящая к возможности просмотра структуры карточек при активированной конфигурации безопасности Configuration.StrictSecurity.
  16. Исправлена ошибка, из-за которой могла некорректно отображаться отметка в маршруте о наличии дополнительных согласующих.
  17. В web-клиенте исправлена ошибка возникавшая при сохранении карточки, если до этого был открыт активный этап маршрута для просмотра.
  18. В web-клиенте исправлен drag-and-drop из контрола “Представление” с расширением “Список файлов в представлении” в файловую папку.
  19. Исправлена ошибка, из-за которой при запросе участников топика через метод ITopicParticipantsProvider.GetTopicParticipantsAsync, мог возвращаться некорректный признак подписанности или отписанности участника топика.
  20. В web-клиенте исправлена ошибка отображения ссылочных контролов, содержащих лоадер: ранее при появлении лоадера в ссылочном контроле периодически появлялись вертикальные и горизонтальные полосы прокрутки.
  21. В web-клиенте исправлена ошибка, приводящая к выполнению запроса на получение обсуждений при обновлении карточек типового решения, в которых обсуждения отсутствуют.
  22. В web-клиенте исправлена ошибка, приводящая к некорректному отображению значения ссылочного контрола с активной настройкой ручного ввода.
  23. В форумах исправлена локализация ролей при их добавлении в топик.
  24. Доработана обработка ошибок в веб-сервисах, использующих ErrorHandlingMiddleware (web, jinni, monitor). При штатной отмене соединения с клиентом (например, пользователь закрыл браузер в процессе обработки) исключения OperationCanceledException или IOException более не выводятся в консоль сервиса (которая видна по systemctl status, journalctl или при запуске сервиса из терминала). Также при возврате ошибки устанавливаются HTTP-заголовки ответа на запрос, запрещающие его кэширование.
  25. В web-клиенте исправлен импорт файлов с аннотациями pdf: можно загружать файл с аннотациями других пользователей, которые были сделаны в редакторе аннотаций TESSA, а аннотации, добавленные во внешних редакторах, импортируются от имени текущего пользователя.
  26. В web-клиенте в форумах и контроле “Текст с форматирование” исправлено добавление множества картинок одновременно.
  27. Исправлена ошибка, из-за которой не учитывалась сортировка таблицы с данными представления при обработке плейсхолдеров для имён файлов шаблонов.
  28. В шаблонах файлов Word исправлена ошибка, возникавшая при наличии плейсхолдеров в колонтитуле документа.
  29. В web-клиенте исправлена ошибка, приводящая к некорректному отображению высоты многострочных контролов.
  30. В web-клиенте исправлена ошибка отображения тега в столбце представления, возникавшая при недостатке места в ячейке для тегов, имя которых состоит из нескольких слов.
  31. В форумах исправлена ошибка, из-за которой отсутствовало сервисное сообщение об удалении ролей из топика.
  32. В web-клиенте исправлена ошибка, связанная с появлением лишней горизонтальной полосы прокрутки в табличных контролах при уменьшении ширины экрана.
  33. В web-клиенте исправлена ошибка, связанная с появлением лишней полосы прокрутки в обсуждениях при изменении размера редактора сообщений.
  34. В web-клиенте исправлена ошибка при использовании SAML-авторизации, возникавшая в том случае, когда система при просроченных cookies SAML-авторизации отправляла запрос на логаут без всех необходимых данных к провайдеру аутентификации.
  35. В web-клиенте исправлена ошибка, из-за которой при открытии диалога выбора из представления мог ломаться рендер карточек.
  36. В мобильном web-клиенте исправлена ошибка, приводящая к появлению горизонтальной полосы прокрутки в представлениях, содержащих большое количество тегов.
  37. В web-клиенте исправлена ошибка отображения параметров фильтрации, содержащих контрол “Дата и время” с выбранным условием “между”: ранее между вышеупомянутыми контролами параметра фильтрации отсутствовал отступ.
  38. В web-клиенте исправлена ошибка отображения тегов в карточках: ранее при использовании большого количества тегов, они сжимались до нечитаемого состояния.
  39. В плагине генерации умных ролей исправлена ошибка, из-за которой система производила лишние расчёты генераторов умных ролей.
  40. В web-клиенте исправлена ошибка отображения компонента слайдера для вывода точности распознавания текста: добавлены скругления для слайдера и его ползунка.
  41. В web-клиенте исправлена ошибка, возникавшая при открытии приложения, когда в файле настроек сервера app.json в секции SAML параметр LogoutBinding не был указан или имел некорректное значение.
  42. В web-клиенте исправлена ошибка, из-за которой колонки представления с типом Decimal не всегда форматировались.
  43. В web-версии исправлен расчёт отображения кнопок вторичных процессов.
  44. В web-клиенте исправлена ошибка представлений с отключённой горизонтальной прокруткой: ранее при изменении ширины представления периодически появлялась полоса горизонтальной прокрутки.
  45. Исправлена ошибка, возникавшая при выборе более одного документа в узле “Мои документы” рабочего места “Пользователь”.
  46. В web-клиенте исправлена ошибка, из-за которой свойство corners не обрабатывалось при конвертации темы в переменные.
  47. Исправлена ошибка, из-за которой после делегирования задания на согласование, задания на дополнительное согласование отзывались.
  48. Исправлено повторное подключение сервиса web к сервису monitor в случае, если monitor был перезапущен без перезапуска web.
  49. В web-клиенте исправлено использование строк локализации названий рабочих мест для информации о текущем пользователе.
  50. Исправлена ошибка при сбросе кэша прав доступа, которая позволяла другому процессу загрузить устаревший номер версии кэша.
  51. В web-клиенте исправлена ошибка отображения тегов в скрытом списке: ранее между тегами отсутствовали отступы, а сами теги отображались без скруглений.
  52. В web-клиенте исправлена ошибка, появляющаяся при применении к представлению параметра фильтрации типа Decimal с пустым значением.
  53. В шаблонах файлов Word исправлена ошибка, из-за которой в сгенерированном файле могли остаться необработанные строки с плейсхолдерами внутри таблиц, если таблицы содержали в себе условные блоки.
  54. В web-клиенте исправлена ошибка в диалоге выбора значений строки, отображаемого в диалоге выбора из представления, которая приводила к закрытию всех диалогов сразу.
  55. В web-клиенте исправлена ошибка в табличных контролах, приводившая к некорректному измерению ширины оверлея.
  56. В web-клиенте исправлена ошибка в табличных контролах, приводившая к изменению фактического размера колонки при переходе в скрытое состояние.
  57. В web-клиенте исправлена ошибка в табличных контролах, приводившая к тому, что в IGridMetrics ширина скрытых колонок всегда была равна нулю.
  58. В web-клиенте исправлен ряд ошибок в табличных контролах, приводивших к некорректному поведению колонок, перекрытых оверлеем.
  59. В web-клиенте исправлено некорректное отображение размера текста в pdf аннотациях.
  60. В конструкторе процессов исправлена, из-за которой действие “Типовая задача” не завершалось при завершении его заданий, если для типа карточки, для которой запускался процесс, не были включены маршруты.
  61. В web-клиенте исправлена ошибка, из-за которой при добавлении файла в карточку, для которого доступна только одна категория и размер которого был больше, чем разрешено расширенными настройками правил доступа, система выводила множество сообщений об ошибках вместо одного.
  62. Исправлено удаление связанных карточек в тестах вызовом методов ITestCardManager.DeleteCardAfterTest() при освобождении скоупа. Теперь удаление выполняется в порядке, обратном порядку создания карточек.
  63. Исправлена ошибка, из-за которой при экспорте карточки с перезаписью поверх уже существующей могли быть удалены файлы-исключения из подпапки, относящейся к данной карточке.
  64. В команде tadmin ExportCards исправлена ошибка, из-за которой игнорировался ключ -localize.
  65. В команде tadmin ExportCards исправлена ошибка, из-за которой при экспорте карточек в библиотеку записи о карточках могли дублироваться.
  66. Исправлен msi-инсталлятор Deski на ОС Windows, если на момент установки или удаления предыдущая версия приложения была запущена. Теперь приложение автоматически завершается в процессе установки.
  67. В API тестов в классе CardLifecycleCompanion исправлена ошибка метода CreateOrLoadSingleton, из-за которой метод мог вернуть некорректную версию карточки-синглтона. Теперь, если карточка уже существует, метод всегда загружает актуальную карточку из БД, а не возвращает закэшированную версию карточки.
  68. В конструкторе бизнес-процессов в действии “Типовая задача” исправлена обработка сигнала завершения заданий.
  69. В web-клиенте в диалоге аннотаций pdf исправлена локализация заголовков фильтров по автору и по типу аннотации.
  70. В маршрутах в этапе “Типовая задача” исправлена ошибка, из-за которой этап завершался при отзыве подзадачи при активной родительской задаче.
  71. В конструкторе бизнес-процессов в действии “Типовая задача” исправлена ошибка, из-за которой этап завершался при отзыве подзадачи при активной родительской задаче.
  72. Исправлен стиль компонента ViewInformationLabel, влиявший на некорректное отображение текста сообщений об ошибках в контролах карточки.
  73. Исправлена проверка значений начала и окончания действия исключения, а также начала и окончания действия именованного диапазона, при сохранении экземпляров карточек типа “Календарь” и “Тип календаря: Рабочая неделя”. Теперь не допускается возможность одинаковых значений для начала и окончания указанного диапазона.
  74. Исправлено заполнение поля CompletedByRole в TaskHistory. Поле заполняется именем сотрудника из поля CompletedByName, если не удалось определить CompletedByRole на основании связанных с заданием ролей.
  75. Исправлена работа расширения типа “Переместить колонку с тегами влево”.
  76. Исправлена скрипт tadmin Script TypeSettingsFix (ранее TypeFontsFix), который не учитывал некоторые настройки контролов, из-за чего для них мог оставаться указан шрифт Segoe UI вместо шрифта Default (null в сериализованном типе .jtype).
  77. Исправлено использование объектов ICardTypeVisitor для обхода вложенных объектов в форме у расширения типа “Таблица в представлении”.
  78. Исправлено формирование архива с дампом схемы при возникновении ошибки сохранения схемы.
  79. В web-клиенте исправлена ошибка, из-за которой сохранение порядка колонок в диалоге настроек представления происходило неверно.
  80. В web-клиенте исправлена ошибка, из-за которой не сохранялось расположение тегов в контроле “Представление” в карточке при его изменении через диалог настроек.
  81. В web-клиенте исправлено получение индекса колонки при двойном клике на ячейку контролов “Таблица” и “Представление”.
  82. Исправлена ошибка, из-за которой блокировки на чтение карточек освобождались не после завершения действия этих блокировок, а только после завершения всей транзакции.
  83. В контроле “Представление” более нельзя скрыть колонку с тегами через пункт контекстного меню “Скрыть столбец”, сделать это можно только через настройку “Расположение тегов”.
  84. Исправлен вывод заголовков контролов карточки в тёмной теме, а также для других тем, переопределяющих цвет заголовка относительно стандартного в холодной теме.
  85. В web-клиенте исправлена ошибка отображения границ ссылочных контролов диалогового окна “Настройки уведомлений по карточке”: ранее цвет фона диалогового окна совпадал с фоном содержащихся в нем контролов.
  86. В web-клиенте исправлена ошибка контрола “Представление”, приводящая к отображению кнопки “Сохранить” в контекстном меню настроек видимости и порядка колонок в случае, если настройка “Разрешить сохранение настроек” неактивна.
  87. В web-клиенте в аннотациях pdf исправлены ошибки с перетаскиванием аннотаций и картинок.
  88. В web-клиенте в аннотациях pdf исправлено позиционирование аннотации текста при вставке.
  89. В web-клиенте исправлено сохранение позиции курсора в текстовом контроле при вставке.
  90. В web-клиенте исправлена индикация выпадающего списка у кнопок тулбара карточки.
  91. Исправлено формирование имени при получении контента файла или его версии.

Обновление на новую сборку

  1. Все типы .jtype в сборке изменены, в них увеличена версия JSON-формата и исправлены настройки контролов и блоков. Типы, содержащие только такие изменения, не были перечислены как изменённые. Для сравнения изменённых типов с актуальными в проектном репозитории предварительно вызовите команду tadmin ConvertConfiguration, а затем команду tadmin Script TypeSettingsFix -pp:source=PATH, где PATH - путь к папке с конфигурацией в репозитории. При обновлении решения все типы из проектного репозитория должны быть исправлены вызовом этих команд перед импортом.
  2. Перед обновлением схемы данных выполните запрос из файла Fixes/Migration-4.0-pre.XX.sql после комментария “Tokens need to be deleted”, где вместо XX указано ms для MS SQL Server, pg для PostgreSQL. Актуально, если обновление производится с предыдущих релизов 4.0.x. При обновлении с релизов 3.6.0.x и ранее его выполнение не требуется.
  3. После обновления схемы данных выполните запрос из файла Fixes/Migration-4.0.XX.sql после комментария “Fill AuthorTaskAssignedRoleRowID in Tasks (4.0.2)”, где вместо ХХ указано ms для MS SQL Server или pg для PostgreSQL. Актуально, если обновление производится с предыдущих релизов 4.0.x. При обновлении с релизов 3.6.0.x и ранее он выполняется автоматически в скриптах Upgrade.bat/upgrade.sh.
  4. При установке в Docker изменены передаваемые аргументы командной строки для скрипта setup.sh в файлах install.bat. Обратитесь к разделу Проверка работы контейнеров и завершение установки tessa.
  5. Обновлена документация по поддерживаемым версиям дистрибутивов ОС Linux. Добавлена поддержка дистрибутива Ubuntu 24.04. Прекращена поддержка Ubuntu 23.04, 23.10. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux.
  6. Удалён плагин TextRecognition для обработки операций по распознаванию текста в файле, а также соответствующий ему файл конфигурации TextRecognition.xml и настройки плагина в app.json.
  7. В конфигурационных файлах app*.json и файлах проектов .csproj замените строку подключения файлов лицензии *.tlic на *.?lic для поддержки нового формата файла .jlic.

Изменения API при обновлении

  1. Для проектов с тестами Tessa.Test.Client/Server/Shared/Windows и проектов модулей Tessa.Module.Sample.Client/Server/Shared по умолчанию теперь включена поддержка nullability в C# (тег <Nullable> в файлах проекта .csproj).
  2. Переименован метод ObjectPool<T>.Get() на Rent().
  3. Изменено 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.
  4. Изменён раздел документации Временные ссылки на контент системы, описывающий, как работать с контроллерами контента для реализации аватаров у карточек контрагентов.
  5. При отправке запроса к представлению ITessaViewRequest значение свойства ViewAlias теперь должно совпадать с алиасом вызываемого представления. Убедитесь, что при получении данных из представления в серверных расширениях и в перехватчиках представлений внутри запроса передаются корректные значения для свойств ViewAlias и View.
  6. Изменён интерфейс IGetDataRequest. Свойство SelectedMasterRowData переименовано в SelectedMasterRowsData, а тип изменён на IList<IDictionary<string, object?>>?.
  7. Изменён интерфейс IParametersMappingContext. Свойство SelectedRowData переименовано в SelectedRowsData, а тип изменён на IList<IDictionary<string, object?>>.
  8. Регистрация консольных команд в методе CommandContext.AddCommand() теперь выполняется без перечисления типов аргументов. Измените регистрацию команд в проектном решении соответствующим образом.
  9. Для объектов ICardTypeVisitor методы VisitBlockAsync, VisitControlAsync, VisitTabFormAsync и VisitTableFormAsync в качестве дополнительных контекстных параметров могут получать null (например, параметры block и form в методе VisitControlAsync), если они были возвращены расширением типа, таким как “Таблица в представлении”. Если в проектном решении определены реализации интерфейса (в т.ч. наследники класса CardTypeVisitor), то убедитесь, что они учитывают возможные значения null в этих методах.
  10. В классе CardGetFileContentRequest булевое свойство SuggestFileName заменено на свойство-перечисление SuggestFileNameMode.

Изменения конфигурации при обновлении

  1. Рабочие места:

    • Administrator
  2. Представления:

    • AvailableDeputyUsers

    • BusinessProcessTemplates

    • ContentAccessTokens (добавлено)

    • FileLoadingTokensForCard (добавлено)

    • KrFilteredStageTypes

    • LinkedDocuments

    • MyTags

    • RefGroups

    • ReportPermissionsMyTasks

    • SignatureFileCategories

    • Tags

    • TaskAssignedRoleUsers

  3. Таблицы:

    • ActionTypes

    • FmMessages

    • FmTopicParticipantRoles

    • FmTopicParticipantRolesUnsubscribed

    • FmTopicParticipants

    • FmTopics

    • FmUserStat

    • FunctionRoles

    • FunctionRolesVirtual

    • KrPermissionExtendedFileRules

    • KrPermissions

    • ServerInstances

    • Tags

    • Tasks

    • Tokens

  4. Типы:

    • Calendar

    • Car

    • CreateFileTempLink (добавлен)

    • DefaultCalendarType

    • FunctionRole

    • KrPermissions

    • OcrRequestDialog

    • OcrSettings

    • RefGroup

    • RefGroupType

    • ServerInstance

    • Tag

    • ViewInformationLabelSettings (добавлен)

  5. Карточки:

    • ApprovalHistory

    • Default access rules(необязательное изменение)

    • Default acquaintance access rules(необязательное изменение)

    • Server settings (settings) (необязательное изменение)

  6. Изменены библиотеки локализации.

Back to top