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

Патч 3.6.0.8 (13.05.2022)

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

  1. В форумах (обсуждениях) добавлены ограничения на максимальный размер прикладываемого файла (карточка “Настройки сервера”, поле “Максимальный размер файла, приложенного к сообщению”) и на максимальное количество файлов, приложенных к сообщению (поле “Максимальное количество файлов, приложенных к сообщению”).
  2. В форумах (обсуждениях) добавлено ограничение на максимальное количество вложений (вставленных изображений) в сообщении (поле “Максимальное количество вложений в сообщении”).
  3. Улучшен вывод деталей сообщения об ошибке при проверке доступа по карточкам “Правило доступа”.
  4. Добавлена базовая обработка циклических зависимостей при сохранении изменений таблиц схемы данных.
  5. В названии сертификата ЭП теперь выводится информация об организации (при наличии).
  6. В web-клиенте в окне “О программе” добавлена возможность переподключения к Deski в случае, если сервис недоступен.
  7. В правило доступа добавлены флаги “Чтение обсуждений” и “Чтение и отправка сообщений”, которые позволяют назначить доступ на чтение всех топиков в карточке с опциональным разрешением на отправку сообщений во все топики, независимо от вхождения в участники топика.
  8. При отсутствии содержимого у компонента рабочего места (удаленный поисковый запрос, ограничение по правам и т.д.) на экран теперь выводится надпись “Содержимое узла недоступно для просмотра”.
  9. В форумах (обсуждениях) добавлено ограничение на максимальное количество символов в сообщении: в карточке “Настройки сервера” поле “Максимальный размер сообщения, символы”. По умолчанию указано 1000 символов.
  10. В web-клиенте для элементов управления “Текст с форматированием” и “Обсуждения” добавлена возможность открыть предпросмотр вложенных файлов в диалоговом окне.
  11. В desktop-клиенте в форумах (обсуждениях) сообщение о попытке отправить пустое сообщение теперь отображается во всплывающем уведомлении.
  12. В web-клиенте для форумов (обсуждений) диалог выбора файла, вызываемый при добавлении изображения в сообщение, теперь отображает только файлы допустимых форматов изображений. Это актуально для контролов “Текст с форматированием” и “Обсуждения”.
  13. В конструкторе бизнес-процессов в действии “Подписание” добавлена возможность привязки для параметра “Разрешить дополнительное согласование”.

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

  1. Команда InvalidateCache теперь позволяет сбрасывать кэш метаинформации рабочих мест, имя кэша указывается как Workplaces.

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

  1. .NET 5.0.17
  2. CAdESLib 1.2.2
  3. Kerberos.NET 4.5.162
  4. linq2db 3.7.0
  5. MailKit 3.2.0
  6. Microsoft.NET.Test.Sdk 17.2.0
  7. NLog 4.7.15
  8. Npgsql 5.0.13
  9. Quartz 3.4.0
  10. StackExchange.Redis 2.5.61
  11. Swashbuckle.AspNetCore 6.3.1

Изменения API

  1. В API тестов добавлена возможность выполнения действия “Таймер” с помощью метода WeProcessInstanceLifecycleCompanion.ProcessTimerOperations.
  2. В API тестов в PermissionsConfigurator добавлены методы AddFlags, RemoveFlags, ReplaceFlags, AddType, RemoveType, AddState, RemoveState, AddRole, RemoveRole, позволяющие оптимизировать выполнение соответствующих операций над карточкой правила доступа.
  3. В API тестов добавлены методы KrStageGroupBuilderExtensions.SetConditionForCard и KrStageTemplateBuilderExtensions.SetConditionForCard, позволяющие задать условное выражение, ограничивающее применение группы или шаблона этапов указанной карточкой.
  4. В API тестов в класс TestRoleHelper добавлены методы TryAddUserIfEmptyAsync и AddUserAsync, упрощающие добавление пользователя в указанную роль.
  5. В API тестов добавлен метод CardLifecycleCompanionExtensions.GetTaskWithRoleOrThrow, возвращающий первое задание, имеющее указанный тип и назначенное на роль с заданным идентификатором.
  6. В API тестов добавлено поле KrStageGroupDescriptor.DefaultStageGroup, содержащее дескриптор группы этапов по умолчанию (“Согласование”). Его можно использовать вместо значения возвращаемого методом KrStageGroupDescriptor.GetDefaultStageGroupAsync, если в группе этапов по умолчанию не изменялся порядок или название.
  7. Добавлен метод Tessa.Platform.AssemblyHelper.SaveEmbeddedResourcesToFileAsync, позволяющий сохранить содержимое встроенного ресурса в указанном файле.
  8. В класс KrConstants добавлены константы DefaultApprovalStageGroupName и DefaultApprovalStageGroupOrder, содержащие информацию о группе этапов по умолчанию (“Согласование”).
  9. В API тестов удалён метод TestHelper.DeleteOldFiles. Для удаления временных внешних ресурсов используйте механизм сборки мусора.
  10. В API тестов добавлена возможность использования областей выполнения. Подробнее в руководстве разработчика в разделе “Автоматические тесты NUnit”, в п. “Области выполнения”.
  11. В API тестов добавлен механизм для отслеживания временных внешних ресурсов. Подробнее в руководстве разработчика в разделе “Автоматические тесты NUnit”, в п. “Сборка мусора”.
  12. В API тестов изменён запрос выполняемый методом CardLifecycleCompanion<T>.Load. Теперь свойство CardGetRequest.GetTaskMode вместо значения CardGetTaskMode.All равно CardGetTaskMode.Default. Подробнее про изменение запроса см. в руководстве разработчика в разделе “Автоматические тесты NUnit”, в п. “Управление жизненным циклом карточки”.
  13. В API серверных тестов изменён используемый ICardLifecycleCompanionRequestExtender. Теперь запросы по умолчанию выполняются с указанием CardServiceType.Default вместо CardServiceType.Client. В общем случае рекомендуется использовать клиентские тесты. Подробнее про изменение запроса см. в руководстве разработчика в разделе “Автоматические тесты NUnit”, в п. “Управление жизненным циклом карточки”.
  14. В web-клиенте для объекта validationResultItem добавлено поле key. Позволяет получить ключ сообщения, возникшего при валидации.
  15. В web-клиенте для элемента управления “Текст с форматированием” добавлена возможность скрывать кнопку разворачивания на весь экран. Управлять видимостью кнопки можно через свойство RichTextBoxViewModel.canExpand.
  16. В API клиентских тестов добавлена возможность простой работы от имени разных пользователей. Подробнее в руководстве разработчика в разделе “Автоматические тесты NUnit”, в п. “Управление сессиями в клиентских тестах”.
  17. В методах IForumProvider.AddParticipantsAsync и AddRolesAsync параметр skipServiceMessage заменён на параметр serviceMessageMode для отключения служебных сообщений о появлении новых участников обсуждения. Параметр игнорируется при запросе с клиента.
  18. В проекты с клиентскими тестами добавлены файлы конфигурации appsettings.json. Они содержат параметры тестового сервера, используемого в клиентских тестах.
  19. В API тестов изменено расположение классов Tessa.Test.Default.Server.ServerTestBase и Tessa.Test.Default.Server.Kr.KrServerTestBase на Tessa.Test.Default.Shared.ServerTestBase и Tessa.Test.Default.Shared.Kr.KrServerTestBase соответственно. Это позволяет создавать серверные тесты в проектах с клиентскими тестами для использования клиентских зависимостей.
  20. В web-клиенте объект DeskiManager был перенесён из типовых расширений default в платформу, неймспейс tessa\deski. В этом объекте теперь доступна вся информация о Deski из компонента MetadataStorage.
  21. В web-клиенте добавлено свойство PreviewManager.previewInDialog, позволяющее включить/выключить предпросмотр файлов в диалоговом окне.
  22. В web-клиенте добавлена возможность закрывать представления, открытые в диалоге, посредством объекта UIContext.
  23. Добавлены свойства IScrollingControlViewModel.MaxImageWidth и MaxPreviewImageWidth, позволяющие управлять максимальной шириной рендеринга страниц документа для области предпросмотра с прокруткой страниц. Также добавлен метод ScrollingControlViewModel.CalculateRecommendedMaxImageWidthAsync для определения рекомендуемой ширины страниц (вызывается автоматически).
  24. Добавлена реализация ICardMetadataBuilder - CardMetadataAllTablesBuilder, выполняющая построение метаинформации для всех таблиц независимо от их использования в типах карточек.
  25. В API тестов в методе CardLifecycleCompanionExtensions.CompleteTask добавлена возможность автоматического определения состояния завершаемого задания. Для этого необходимо для параметра deleteTask указать значение null.
  26. Добавлен серверный кэш WorkplacesCache для метаинформации рабочих мест. Серверная реализация ITessaWorkplaceService теперь использует данный кэш в методах для получения метаданных рабочих мест.

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

  1. В web-клиенте исправлена ошибка, приводящая к отсутствию индикации статуса “Архивировано” для архивированных топиков форумов (обсуждений).
  2. В web-клиенте исправлена ошибка в примерах расширений в файле carUIExtension.ts для карточки “Автомобиль”, из-за которой было возможно приложить .exe файл, тогда как в расширении должен быть запрет на это действие.
  3. Оптимизировано открытие карточки, добавленной в типовое решение, в случае, если в ней отсутствуют виртуальные файлы.
  4. В desktop-клиенте для контрола “Представление” исправлен вывод ошибки при указании некорректного алиаса параметра CardID.
  5. Исправлен сброс кэша виртуальных файлов при изменении карточек шаблонов файлов.
  6. При сохранении карточек виртуальных файлов сброс кэша теперь происходит вне открытой транзакции.
  7. В web-клиенте в форумах (обсуждениях) исправлена ошибка, не позволяющая изменить отображаемое имя внешней ссылки в сообщении.
  8. Исправлены ошибки, связанные с использованием локального кэша метаинформации в консольном приложении tadmin. Теперь в консольных приложениях локальный кэш не используется.
  9. Исправлено зависание сервера приложений при изменении конфигурации системы. Проблема воспроизводилась при перезапуске сервера приложений в случае, если для рабочего процесса был выдан тот же идентификатор, какой он был до перезапуска, и не был настроен сброс кэшей посредством Redis. Это актуально для Docker контейнеров, где для рабочего процесса всегда указывается идентификатор равным 1.
  10. В форумах (обсуждениях) исправлена ошибка, из-за которой в режиме “Единственное обсуждение” не загружался топик.
  11. В destop-клиенте в форумах (обсуждениях) исправлена ошибка при попытке ответить на пустое сообщение с приложенными файлами.
  12. В конструкторе бизнес-процессов исправлены потенциальные NRE, вызванные возвратом значения null методами: IWorkflowEngineCardsScope.GetCardAsync, IWorkflowEngineCardsScope.GetFileContainerAsync, IWorkflowEngineCardsScope.GetCardForSendTasksAsync, IWorkflowEngineContext.GetTaskAsync, IWorkflowEngineContext.SendTaskAsync.
  13. Установка системы из Docker теперь выполняется для текущего релиза 3.6.0, а не для последнего опубликованного в Docker Hub. Это предотвращает ошибки после того, как будет опубликована новая версия платформы.
  14. Исправлены возможные утечки памяти в TessaClient при использовании сканирования и предпросмотра.
  15. В форумах (обсуждениях) исправлено удаление дубликатов строк в таблице FmUserStat, из-за которых дублировались сообщения в почтовых уведомлениях.
  16. Исправлена ошибка, которая в редких ситуациях могла приводить к возникновению дедлоков при одновременном завершении нескольких заданий.
  17. В API тестов исправлена ошибка, из-за которой при возникновения ошибки во время обработки списка отложенных действий в PendingActionsProvider, объект оставался запечатанным и содержащим запланированные действия.
  18. В API тестов исправлено удаление временных внешних ресурсов (база данных, файловое хранилище и т.д.), если они не были удалены при завершении предыдущего запуска тестов.
  19. В API тестов в методе PendingActionsProviderExtensions.RegisterPendingActionsProducer исправлена ошибка, приводившая к частичной потере результатов валидации.
  20. В API тестов исправлена ошибка удаления карточек при параллельном выполнении на уровне тестов.
  21. В desktop-клиенте исправлена ошибка, из-за которой при добавлении нового параметра в поисковый запрос во время нахождения в узле данного запроса имелась возможность удалить последний добавленный параметр из наложеннего фильтра, а также нельзя было сбросить фильтр после применения запроса вне данного узла.
  22. В TessaAdmin исправлено формирование текста запроса при отладке представлений. Ошибка появилась в предыдущем патче.
  23. В web-клиенте для элемента управления “Текст с форматированием” исправлена ошибка, из-за которой в некоторых ситуациях было невозможно вставить ссылку в текст с первого раза.
  24. В web-клиенте в форумах (обсуждениях) исправлена ошибка, из-за которой не осуществлялся перенос строк в длинных сообщениях.
  25. В web-клиенте исправлена ошибка, приводящая к изменению значений контролов “Дата и Время” при потере фокуса.
  26. В web-клиенте значения колонок “Дата и Время” в представлениях теперь отображаются с учетом параметра TreatValueAsUtc.
  27. Исправлена ошибка, из-за которой при сохранении карточки с клиента проверка флагов запроса на сохранение DoesNotAffectVersion и ForbidStoringHistory не выполнялась.
  28. В TessaAdmin в редакторе типов карточек исправлена локализация всплывающей подсказки для незаполненных обязательных полей.
  29. В web-клиенте в форумах (обсуждениях) исправлена ошибка, приводившая к некорректной работе элемента управления “Обсуждение” в режиме “Единственное обсуждение”, расположенного на вкладке, отличной от стандартной. Ошибка появилась в предыдущем патче.
  30. В приложениях TessaClient и TessaAdmin исправлена загрузка сборок, указанных в настройке ProbingPath в файле app.json.
  31. В приложении TessaClient исправлена утечка памяти при перетаскивании файла drag&drop.
  32. В desktop-клиенте в модели представления контрола “Нумератор” исправлено свойство Number, теперь оно корректно возвращает целое число Int64.
  33. В приложении TessaClient исправлена иконка курсора при обновлении и сохранении карточки.
  34. Исправлена доступность поля ввода номера страницы в панели пейджинга представления при изменении свойства IPagingSource.OptionalPagingStatus.
  35. В форумах (обсуждениях) исправлена ошибка, приводившая к некорректному открытию топика из представлений “Мои обсуждения” и “Последние обсуждения”, расположенного на вкладке, отличной от стандартной.
  36. В desktop-клиенте исправлена работоспособность контрола “Текст с форматированием” в форме редактирования строки таблицы.
  37. В web-клиенте исправлена ошибка ввода спецсимволов в поле поиска элементов управления “Таблица”, “Представление”.
  38. В web-клиенте исправлена ошибка, позволяющая пользователю, не обладающему правами администратора, видеть папку “Общие запросы” при сохранении поисковых запросов в представлениях.
  39. В API тестов исправлена выдача предупреждения “Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware. Failed to determine the https port for redirect.”.
  40. Исправлена сортировка значений в представлении VatTypes (“Типы НДС”) для PostgreSQL.
  41. При чтении JSON в системе увеличена максимально допустимая глубина вложенности до 128, что исправило, например, чтение типов карточек с вложенными контролами “Контейнер” и “Вкладки”, и чтение рабочих мест с большой вложенностью узлов.
  42. Оптимизировано выполнение расширения KrCardGetExtension для карточек, не входящих в типовое решение.
  43. В маршрутах исправлены потенциальные NRE и другие ошибки, вызванные возвратом значения null методами: IKrScope.CreateSecondaryKrSatelliteAsync, IKrScope.GetKrSatelliteAsync, IKrScope.GetMainCardAsync, IKrScope.GetMainCardFileContainerAsync, IKrScope.GetSecondaryKrSatelliteAsync и IMainCardAccessStrategy.GetFileContainerAsync.
  44. Исправлена ошибка, возникающая при нажатии на кнопку “Отложить” в задании, когда в нём есть файловый контрол.
  45. В конструкторе бизнес-процессов в действиях “Задание” и “Группа заданий” исправлена ошибка, из-за которой не учитывался параметр “Сохранять файлы после завершения диалога”.
  46. В редакторе бизнес-процессов в действиях “Задание” и “Группа заданий” исправлена ошибка NRE при инициализации задания диалога при открытии карточки. Ошибка воспроизводилась, если задание диалога не было взято в работу.
  47. В маршрутах в этапе “Диалог” и в редакторе бизнес-процессов в действиях “Диалог”, “Задание” и “Группа заданий” исправлена ошибка при отображении скрытого задания диалога.
  48. В desktop-клиенте исправлена ошибка, возникавшая при попытке обновить элемент управления “Представление” с пустым содержимым.
  49. Учтена ситуация при формировании подписи, когда метка времени может быть выдана на время в недалеком будущем, что могло приводить к формированию невалидных подписей уровня XLT1.
  50. При проверке подписей учитывается информация, содержащаяся во вложенных атрибутах, что могло влиять на проверку подписей уровня XLT1.
  51. В desktop-клиенте исправлено некорректное формирование документа в элементе управления “Текст с форматированием”, при изменении размера шрифта.
  52. Оптимизировано получение типа документа для карточки.
  53. В методе KrComponentsHelper.CheckKrComponentsAsync исправлена ошибка, из-за которой не обрабатывался флаг KrComponents.UseForum.
  54. Оптимизировано выполнение расширений KrCheckGroupBoundariesStoreExtension и KrCheckStageRowModifiedStoreExtension для карточек, у которых не включены маршруты документов.
  55. В web-клиенте исправлена ошибка в контроле “Дата”, из-за которой при нажатии кнопки выбора даты пропадало все содержимое страницы в мобильной версии.
  56. Исправлена проблема одновременной инициализации объекта шаблона бизнес-процесса из нескольких потоков. Из-за неё в потоках, осуществивших инициализацию объекта первыми, могла возникнуть ошибка отсутствия узла бизнес-процесса, хотя фактически узел в процессе существовал.
  57. Оптимизирована загрузка метаинформации представлений и рабочих мест.
  58. В web-клиенте исправлена некорректная работа при объединении документов в Word для списка версий в файловом контроле.
  59. Оптимизирован SQL-скрипт, генерируемый с помощью команды tadmin SchemeScript.
  60. Повторные вызовы команды tadmin SchemeScript без изменения конфигурации не приводят к изменению генерируемого SQL-скрипта.
  61. Исправлено функционирование мьютексов в Linux при отмене ожидания по cancellationToken. Мьютексы могут использоваться при сбросе глобального кэша в web-сервисе и Chronos, а также при запуске дочерних процессов Chronos.
  62. Исправлена ошибка в TessaAppManager, не позволяющая ввести логин и пароль при добавлении первого сервера.
  63. Исправлено отображение записи из истории действий по импорту карточки в режиме SmartMerge при наличии в ней отложенных заданий.
  64. В форумах (обсуждениях) desktop-клиента исправлена ошибка, из-за которой некоторые сообщения, отправленные в основном из web-клиента, не отображались из-за невозможности определить стиль, что пользователю выводилось как ошибка загрузки, а в логах записывалось исключение NullReferenceException.
  65. В маршрутах в этапе “Настраиваемое задание” исправлена ошибка, из-за которой задание не содержало вариантов завершения, указанных в настройках. Ошибка воспроизводилась, если в типе задания KrUniversalTask был выставлен флаг “Автоматически брать в работу” или в объекте задания был указан флаг CardTaskFlags.AutoStart.
  66. В конструкторе бизнес-процессов в действии “Настраиваемое задание” исправлена ошибка, из-за которой задание не содержало вариантов завершения, указанных в настройках. Ошибка воспроизводилась, если в типе задания KrUniversalTask был выставлен флаг “Автоматически брать в работу” или в объекте задания был указан флаг CardTaskFlags.AutoStart.
  67. Для мобильных браузеров отключено определение ранее открытой вкладки из-за некорректного поведения во встроенных браузерах.
  68. Оптимизировано потребление памяти для просмотра файлов PDF/TIFF.
  69. В представлении “Мои задания” (MyTasks) в сабсете “По роли” исправлена ошибка счетчика, возникавшая после переименования роли.
  70. В форумах (обсуждениях) исправлено отображение сообщений, отправленных удалёнными или несуществующими сотрудниками, и исправлено формирование логотипа по имени сотрудника, указанному в сообщениях.
  71. В TessaAdmin исправлена ошибка инвалидации кэша для типов карточек после изменения схемы.
  72. В TessaAdmin исправлена ошибка, при которой в маппинге полей карточки не было видно таблиц и их колонок, если таблица не является секцией какого-либо типа карточек.
  73. Исправлено возможное выполнение методов расширений TileExtension.InitializingGlobal дважды при запуске TessaClient. Теперь соответствующий метод гарантированно выполняется ровно один раз.
  74. В desktop-клиенте в форумах (обсуждениях) исправлена отрисовка панели инструментов при нехватке места. Кнопка “Отправить” отображается всегда, а остальная часть тулбара прокручивается колесом мыши.
  75. В web-клиенте исправлена ошибка, из-за которой в файловом контроле при группировке файлов по циклам согласования могло отображаться некорректное число файлов.
  76. В TessaClient исправлено выбрасывание исключения ObjectDisposedException при обращении к методу IFileContent.EnterLockAsync. В частности, ошибка воспроизводилась в виде диалога с сообщением The semaphore has been disposed в случае, если при загрузке файла для предпросмотра, карточка была обновлена.
  77. В web-клиенте исправлен баг, из-за которого скрытые этапы маршрута не выделялись серым цветом.
  78. В web-клиенте исправлена ошибка доступа к Deski при сохранении отредактированной копии файла.
  79. В web-клиенте исправлена ошибка, приводящая к зависанию панели тайлов при использовании тайла “Создать файл по шаблону”.
  80. В маршрутах в этапах “Согласование” и “Подписание” исправлена ошибка, из-за которой учитывалось значение комментария, заданного на форме варианта завершения “Запросить комментарий”, при завершении задания с вариантом завершения “Запросить дополнительное согласование”.
  81. В редакторе бизнес-процессов в действиях “Согласование” и “Подписание” исправлена ошибка, из-за которой учитывалось значение комментария, заданного на форме варианта завершения “Запросить комментарий”, при завершении задания с вариантом завершения “Запросить дополнительное согласование”.
  82. В API тестов исправлено потенциальное NRE при выполнении метода WeProcessInstanceLifecycleCompanion.SendSignal, если переданный в конструкторе объект CardLifecycleCompanion не содержал карточки.
  83. В API тестов в методе KrAssert.HasNoTask исправлена ошибка, из-за которой не работала проверка на отсутствие указанного типа задания в карточке.
  84. Оптимизирован запуск TessaClient и web-клиента в части инициализации рабочих мест.
  85. В web-клиенте на мобильных устройствах исправлена обработка ошибки во время открытия карточки, когда другие рабочие места переставали быть доступны для пользователя.

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

  1. Перед обновлением схемы данных выполните запрос “Удаление дубликатов в FmUserStat” из файла Fixes\Migration-3.6-pre.XX.sql, где вместо XX указано ms для MS SQL Server, pg для PostgreSQL.
  2. В API тестов изменён способ доступа к спискам действий. Замените прямое обращение к списку на доступ к нему через вызов метода TestBase.GetTestActions. Например, доступ к списку действий BeforeInitializeAsync теперь можно получить следующим образом: GetTestActions(ActionStage.BeforeInitialize).
  3. Статический класс ApplicationFolders преобразован в зависимость. Получите её из Unity-контейнера по интерфейсу IApplicationFolders.
  4. В API тестов изменено расположение классов Tessa.Test.Default.Server.ServerTestBase и Tessa.Test.Default.Server.Kr.KrServerTestBase на Tessa.Test.Default.Shared.ServerTestBase и Tessa.Test.Default.Shared.Kr.KrServerTestBase соответственно. Обновите проектный код c тестами, содержащими ссылки на эти классы.

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

  1. Представления:

    • MyTasks

    • VatTypes

  2. Таблицы:

    • FmAttachments

    • KrPermissions

    • ServerInstances

    • SignatureSettings

  3. Типы:

    • KrSigningAction

    • ServerInstance

    • SignatureSettings

  4. Карточки:

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

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

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

Back to top