В полях с типом Объект-Документ в карточке объекта.
Отчеты
Теперь стало проще найти нужные значения в фильтрах при просмотре системных и пользовательских отчетов:
На вкладке Параметры пользовательского отчета на форме настроек колонки вы можете установить флаг Показывать в фильтре по этой колонке только релевантные данные:
Если флаг установлен, в фильтре по колонке при просмотре отчета будут отображаться только те значения, которые отображаются в отчете, с учетом настроенной фильтрации в параметрах отчета
По умолчанию флаг снят
Установка флага доступна, если в качестве колонок отчета выбраны следующие поля:
Системные поля объектов/дел:
Тип
Стадия
Название
Кастомные поля объектов/дел и дополнительные атрибуты системных объектов с форматом:
Текст
Текстовое расширяемое
Данные, если в качестве значения выбраны поля:
Кастомные поля с форматом: Текст и Текстовое расширяемое
Системное поле Название
При изменении поля, которое выбрано в качестве колонки, выполниться проверка доступности установки флага Показывать в фильтре по этой колонке только релевантные данные (если для поля недоступна установка флага, флаг будет автоматически сброшен)
В настройках фильтров для системных отчетов доступно установить значение параметра Показывать в фильтре по этой колонке только релевантные данные:
Вы можете указать следующие значения:
true — да (параметр включен)
false — нет (параметр выключен)
Если параметр не указан, по умолчанию будет использоваться значение false
Параметр применяется для всех настроенных фильтров отчета по колонкам для системных и кастомных полей (дополнительных атрибутов) по объектам/делам и системным объектам с типом данных Строковое значение (к этому типу данных относятся все форматы полей, кроме полей с форматом Дата, Дата и Время, Число, Логический и Чек-бокс)
Важно! Установка флага Показывать в фильтре по этой колонке только релевантные данные может влиять на производительность системы в части скорости отображения значений фильтров в отчетах с большим объемом данных.
Мы рекомендуется устанавливать флаг Показывать в фильтре по этой колонке только релевантные данные только для минимально необходимого количества ключевых полей, которые используются для фильтрации, и в которых полный список значений фильтра усложняет работу пользователей.
Календари
Теперь календарями стало еще удобнее пользоваться:
Добавили всплывающие подсказки при наведении курсора мыши на запись календаря:
Для объектов отображаются: полное название объекта и наименование поля, которое выбрано в качестве даты для отображения в календаре
Для событий и задач отображается полное наименование события или задачи
Переименовали название фильтра Дела в Объекты.
Изменили форму создания смарт-календарей:
Добавили возможность выбора в поле Календари системного календаря Объекты
Переименовали поле Дела в Объекты и добавили параметр Тип объекта для фильтрации смарт-календаря (аналогично фильтру Тип объекта в календаре)
Добавили поле Общий доступ, при установке флага в котором вы можете предоставить доступ другим пользователям к смарт-календарю:
Общий доступ можно предоставить только к следующим календарям:
Общий календарь
Объекты
Задачи
Если в поле Календари на форме создания смарт-календаря выбран Мой календарь или иной пользовательский календарь, при попытке сохранения отобразится ошибка: Для предоставления общего доступа смарт-календарь должен содержать только календари: Общий календарь, Объекты или Задачи
По умолчанию флаг снят
Если флаг установлен:
Смарт-календарь будет доступен для всех пользователей, но отключен на панели слева по умолчанию
Объекты, которые недоступны пользователю, будут скрыты при просмотре смарт-календаря
Другие пользователи смогут изменить, удалить или синхронизировать смарт-календарь:
При редактировании смарт-календаря автором или пользователем изменения будут отображаться у всех пользователей
Если пользователь снимет флаг Общий доступ, смарт-календарь станет доступен только автору
Если пользователь удалит смарт-календарь, он будет удален у всех
Участники
Для повышения точности и релевантности данных доработали логику выбора искомого участника из ответа метода GET /organizations при ручном создании карточки участника и фоновой синхронизации участников, полученных из Casebook. Теперь при синхронизации данных участника по ИНН не возвращаются данные организаций, прекративших свою деятельность — если по указанному ИНН в Casebook найдены несколько организаций, в Case.one будут загружены сведения организации, деятельность которой не прекращена.
Улучшения и исправления
Исправили работу фильтра по полю с типом Число — теперь при вводе 0 в полях Минимум или Максимум в фильтре устанавливаются корректные значения от 0 или до 0.
Исключили дублирование задач в календаре, что приводило к высокому потреблению CPU на базе.
Выполнили редизайн карточки объекта, в том числе:
Исправили шрифт на Golos Text в меню-троеточии карточки и блоках
Поправили стили для поля с типом Число
Изменили цвета для активной стадии, недоступных кнопок, фона незаполненных обязательных полей и поля с типом Чек-бокс
Поправили отображение наименования для поля с типом Объект-Документ
Изменили отступы полей в блоке слева и справа на 40 px
Сократили отображение подсказки в полях, где доступен выбор из списка
Изменили отображение окна значений в полях со списками
Поправили отображение времени времени запущенного таймера
Исключили отображение блока в списке колонок отчета, на которые у пользователя нет прав.
Оптимизировали работу стандартных отчетов в конфигурации более 50 млн. объектов.
Объекты
В настройки полей мы добавили новый параметр Видимость, где вы можете выбрать, будет ли поле отображаться или оно будет скрыто — скрытые поля можно использовать, например, для хранения технических сведений или для формирования отчетности:
Выбрать видимость поля вы можете в конструкторе объектов, клиентских форм и системных объектов (доп. атрибутов):
Да (значение по умолчанию) — поле будет отображаться, как и раньше
Нет — при выборе значения:
Поле не будет отображаться:
В карточках объектов и клиентских запросов
На формах сущностей, для которых настроены доп. атрибуты
В файле экспорта карточки объекта в PDF
Поле будет отображаться:
В блоках в конструкторе объектов, клиентских форм и системных объектов (доп. атрибутов)
На вкладке Настройки конструктора объекта в качестве значений поля Дата для отображения в календаре
В списке полей при настройке правила определения дубликатов
В отчетах
В сценариях автоматизации
В фильтрах
Настройка видимости доступна для всех типов полей, кроме полей Кнопка, Разделитель и Сообщение
Если в блоке есть скрытое поле, справа от строки блока в конструкторе, где скрыто поле, отображается контекстное меню (меню-троеточие) со счетчиком скрытых полей:
Вы можете посмотреть все скрытые поля, выбрав в контекстном меню пункт Скрытые поля
В списке скрытых полей отображается их название и формат
При выборе скрытого поля из списка на панели слева откроются настройки поля
Предусмотрены следующие особенности работы со скрытыми полями:
Вы можете скрыть поле, даже если оно обязательно для заполнения — скрытые поля не проверяются на обязательность при сохранении карточек объектов, клиентских запроса и доп. атрибутов
Значение параметра Видимость переносится при переиспользовании или копировании блока со скрытым полем
Скрытые поля:
Доступно выгрузить в шаблон импорта в соответствии с доступными для выгрузки форматами поля
Можно использовать при настройке стадий в качестве дополнительного поля или сводных данных
При выборе значения видимости Да у скрытого поля:
Поле будет снова отображаться в блоке
Поле будет добавлено в конец строки блока
Если достигнуто максимальное количество полей в строке, отобразится ошибка
Ширина поля зависит от ширины поля слева (как и раньше)
Значение параметра Видимость для поля, находящегося в мультистроке, определяет видимость всех экземпляров поля в мультистроке:
Если в блоке есть мультистрока только со скрытыми полями, в карточке объекта или клиентского запроса строка не отображается
Если блок или мультиблок заполнен только скрытыми полями, в карточке объекта или клиентского запроса он отображается пустым
Если мультистрока или мультиблок заполнены скрытыми и видимыми полями, после сохранения карточки объекта или клиентского запроса:
Строка или блок отображаются, если видимые поля не заполнены, а скрытые заполнены
Строка или блок не отображаются, если скрытые и видимые поля не заполнены
Если во всех добавленных копиях мультистроки или мультиблока заполнены только скрытые поля, все эти копии будут отображаться в карточке объекта или клиентского запроса
Теперь на вкладке Настройки типа объекта в блоке Основное вы можете выбрать несколько дат в поле Дата для отображения в календаре:
Каждое поле будет отображаться отдельной строкой
Если в строке ранее было выбрано значение поля для отображения в календаре, оно не будет отображаться в списке значений в новой строке
При добавлении нескольких дат объект будет отображаться в календаре в тех датах, которые указаны настройках (при выборе поля из мультистроки/мультиблока, объект будет отображаться для каждой даты, выбранной в указанном поле), с учетом общих условий отображения объекта в календаре:
В карточке объекта заполнена дата, указанная в качестве значения поля Дата для отображения на календаре
Карточка объекта не находится в архиве
У пользователя есть права на карточку объекта
Инструмент миграции данных
Мы расширили возможности инструмента миграции данных — теперь вы можете импортировать из других систем не только объекты/дела и контакты, но и пользователей, автоматически создавая их карточки из заполненного шаблона:
Шаблон миграции данных пользователей формируется автоматически в формате *.csv — скачайте шаблон на новой вкладке Настройки в конструкторе системных объектов пользователей:
Название шаблона формируется по маске: Шаблон импорта Пользователь.csv
Если включена интеграция с OpenID или Active Directory, блок Шаблон миграции данных недоступен
В шаблоне содержится информация обо всех системных полях, дополнительных атрибутах, группах и ролях, которые настроены для пользователя:
Данные полей выгружаются отдельной строкой и формируются по маске: "Наименование поля> (<Тег>)", где:
<Наименование поля> — зависит от типа поля:
Для системных полей — наименование поля в отчетах
Для полей доп. атрибутов — наименование поля в конструкторе объекта
Для групп — наименование группы
Для ролей — наименование роли
<Тег> — зависит от типа поля:
Для системных полей — системные имена полей в механизме отчетов
Для полей доп. атрибутов — тег поля или идентификатор поля в блоке (если тег не присвоен полю)
Для групп — Groups_Name
Для ролей — Roles_Name
В шаблон миграции данных пользователей не выгружаются данные из карточки пользователя:
Системные поля — предусмотрено заполнение полей значениями по умолчанию по факту импорта:
Часовой пояс
Статус
Тип
Данные из блоков Дела и Делегирование доступа
Сначала отображаются все системные поля слева направо:
С первой строки блока Личная информация, затем поля из блока Рабочая информация
Выгрузка ФИО не зависит от настроек ФИО в разделе Администрирование — Аккаунт (ФИО выгружается всегда)
После системных полей отображаются все настроенные доп. атрибуты, начиная с первой строки блока Дополнительно
В шаблон загружаются данные полей доп. атрибутов с форматом:
Гиперссылка
Дата
Дата и время
Логический
Справочник
Текст
Текстовое расширяемое
Чекбокс
Число
Шаблон номера дела
Объект-Дело
Объект-Объект
Объект-Участник
После настроенных доп. атрибутов, если они заданы, отображаются сначала сведения о группах, затем информация о ролях
Внесите в скачанный файл шаблона данные пользователей, указывая информацию о каждом пользователе с новой строки и соблюдая определенные правила заполнения полей (подробнее см. в разделе Импорт данных нашего Справочного центра).
Загрузите заполненный файл шаблона импорта данных для автоматического создания карточек пользователей в разделе Администрирование — Импорт:
Нажмите кнопку и выберите пункт Импортировать пользователей — пункт не отображается, если включена интеграция с OpenID или Active Directory
Заполните поля формы загрузки файла импорта:
Название — название сессии импорта (максимальное количество символов — 450)
Тип — выбор типа объекта импорта Пользователи из списка
Прикрепите заполненный файл импорта в отдельном поле
После запуска импорта (кнопка Импортировать на форме добавления сессии импорта) выполняются:
Проверки целостности файла импорта, как и при импорте объектов и контактов
Проверка наличия дубликатов карточек пользователей по email:
В файл лога будет записана ошибка при выявлении хотя бы одного дубликата пользователя: Ошибка сохранения email. Идентификатор или email <email> уже используется в системе
Карточка пользователя создана не будет
Импорт данных пользователей из файла:
Сопоставление значений полей данных пользователей в файле импорта с полями в карточке пользователя происходит по той же логике, что и при импорте объектов
При заполнении системных полей предусмотрены следующие особенности:
Пользователь не будет создан, если в файле импорта не заполнены обязательные системные поля, предусмотренные для карточки пользователя, или удалены заголовки и теги этих полей из файла шаблона
Если в файле импорта не заполнено поле Инициалы или удалены заголовок и тег этого поля из файла шаблона, значение в карточке пользователя будет установлено автоматически по первым буквам полей Фамилия и Имя
Для следующих системных полей указываются значения по умолчанию:
Часовой пояс — часовой пояс, который установлен в разделе Администрирование — Аккаунт
Статус — Работает
Тип — Пользователь
При заполнении групп и ролей пользователя предусмотрены следующие особенности:
Если в файле шаблона указано несколько ролей и групп для одного пользователя, они заполняются по правилам заполнения полей из мультистрок
Пользователь не будет создан, если в файле шаблона импорта одна и та же группа или роль указаны дважды
В процессе импорта пользователей дополнительно выполняется проверка на максимальное количество пользователей по подписке — если в процессе импорта было достигнуто максимальное количество пользователей:
В лог будет записана ошибка
Импорт будет прерван
Остальные пользователи (превышающие разрешенное количество по подписке) созданы не будут
Если успешно пройдены все проверки и импорт выполнен:
Статус импорта изменится на Завершен
В разделе Администрирование — Действия в системе будут добавлены записи о создании карточек пользователей от имени системного пользователя Service Workflow
В созданных карточках пользователей будет заполнена информация из файла импорта
Пользователям, созданным в результате импорта, будет отправлено письмо-приглашение для завершения регистрации в Case.one
Доступно скачать файл лога импорта, куда записывается основная информация о состоянии настроек на момент запуска импорта, а также информация о результате создания каждого пользователя
Роли
Мы улучшили ролевую модель доступа:
Изменили логику предоставления прав к документам — теперь вы можете более гибко настроить права на документы в разделе Роли:
В блоке Права к объектам доступа в секции Объекты удалили секцию прав Документы, которая позволяла настроить права доступа к документам всех объектов сразу
Теперь для каждого типа объекта можно установить определенный уровень прав на документы — при раскрытии секции Объекты → Тип объекта (и Тип дела) отображаются следующие секции:
Документы:
При добавлении новой роли права будут отключены по умолчанию
При добавлении нового типа объекта в ролях будут автоматически установлены все права на документы в нем
Стадии
Основной блок
Список настроенных блоков
Расширили список прав, которые могут быть назначены на документы как в секции Объекты → Тип объекта → Документы, так и в основной секции Документы:
Просмотр — при установке флага в секции Документы права на просмотр будут добавлены автоматически
Создание — при добавлении прав на создание права на изменение будут добавлены автоматически
Изменение
Удаление — при добавлении прав на удаление права на создание и изменение будут добавлены автоматически
Теперь установленные права роли в секции Объекты → Тип объекта → Документы учитываются:
При предоставлении доступа пользователю или клиенту к папке с документами и ее содержимому в карточке объекта/дела — права и доступные действия определяются:
Наличием доступа к карточке объекта/дела (Редактирование или Администрирование)
Наличием прав Просмотр, Создание, Изменение, Удаление для роли в секции Тип объекта → Документы
Наличием прав Редактирование при предоставлении общего доступа к папке документов в карточке объекта/дела
При прикреплении документов к событиям и задачам, привязанным к объекту/делу, в т.ч. при изменении объекта/дела в событии или задаче (открепление документа не зависит от прав на секции Документы и Тип объекта → Документы)
При фильтрации ленты событий по типу события Документ
Детализация прав доступа к документам
Права
Секция "Объекты → Тип объекта → Документы"
Секция "Документы"
Просмотр
При наличии прав: — Отображаются: • Вкладка Документы в карточке объекта • В разделе Документы в системной папке Дела папки тех дел, к которым настроен доступ • Панель добавления активности на форме просмотра документа, можно добавить активность при наличии соответствующих прав) — Доступно: • Просматривать отчет по документам объекта/дела • Прикреплять уже загруженные документы к событиям и задачам, которые привязаны к делу/объекту • Просматривать и скачивать документ (посмотреть документы объекта/дела) • Фильтровать документы в карточке объекта/дела
При наличии прав: — Отображаются: • Основной раздел Документы • Системная папка Дела • Панель добавления активности на форме просмотра документа, добавить активность недоступно (при наличии прав на активности) — Доступно: • Просматривать и скачивать документ • Фильтровать список документов и папок • Прикреплять уже загруженные документы к событиям, которые не привязаны к делу/объекту
Создание
При наличии прав доступно: — Создавать документы и папки документов, привязанных к объекту/делу на вкладке Документы карточки объекта и в списке документов в разделе Документы — Выполнять групповые операции по загрузке папок и файлов — Прикреплять новые документы к событиям или задачам, привязанным к объекту/делу
При наличии прав доступно: — Создавать и загружать документы и папки документов в разделе Документы и системной папке Дела — Выполнять групповые операции по загрузке папок и файлов в разделе Документы и системной папке Дела — Прикреплять новые документы к событиям, которые не привязаны к делу/объекту
Изменение
При наличии прав доступно редактировать и перемещать документы и папки документов, привязанных к объекту/делу на вкладке Документы карточки объекта и в списке документов в разделе Документы. При перемещении: — Отображаются только те папки, к которым предоставлен доступ при правах на объект/дело Редактирование или Администрирование — На обе папки должны быть права Изменение и права на объект/дело Редактирование или Администрирование — Папок и файлов из карточки объекта в системную папку Дела должны быть права Изменение и в секции Тип объекта → Документы, и в секции Документы
При наличии прав доступно: — Редактировать и перемещать документы и папки документов, не привязанных к объекту/делу — Добавлять активности на форме просмотра документа (при наличии прав на активности)
Удаление
При наличии прав доступно удалять папки и документы, привязанных к объекту/делу на вкладке Документы карточки объекта и в списке документов в разделе Документы.
При наличии прав доступно удалять папки и документы в системной папке Дела.
Теперь, если у пользователя согласно настройкам роли нет доступа к определенным полям, эти поля не будут отображаться:
В списке объектов или дел, в календаре и на панели фильтрации таблиц (блок или секция с типом Таблица):
В качестве дополнительных фильтров (Еще фильтры)
В настроенных наборах фильтрации — если недоступное поле было сохранено в наборе фильтрации, оно отобразится с пустым списком значений, фильтрация по нему не выполнится
В настройках колонок списка объектов — если недоступные поля были настроены, они отобразятся с пустыми значениями, сортировка по ним недоступна
При создании и изменении отчетов:
При выборе колонок отчета
При настройке фильтрации в базовом и продвинутом режимах
При настройке колонки на отдельной форме
При просмотре отчетов:
Сведения из карточки объекта отображаются в отчете, если у пользователя настроены права для типа объекта на все поля, которые выбраны в качестве колонок отчета, за исключением:
Отчетов, доступ к которым был предоставлен по ссылке
Отчетов, отправляемых по расписанию
Системных отчетов
Отчетов с данными отдельных разделов меню (например: Администрирование, Клиентский запрос и т.д.), на которые у пользователя нет прав
Если у пользователя во всех типах объектов из отчета нет прав хотя бы на одно поле, которое выбрано качестве колонки отчета, отобразится пустой отчет
При формировании документа по шаблону — если тег принадлежит полю, на которое у пользователя нет прав в типе объекта, документ будет сформирован без значения тега этого поля (отобразится пустое место вместо значения)
Если у пользователя есть частичный доступ к полю, т.е. у пользователя нет прав на блок, в котором находится поле, но есть права на просмотр блока в другом типе объекта, где переиспользовано это поле:
Поле будет отображаться в разделе настроенного объекта или Дела, в календаре и на панели фильтрации таблиц (блок или секция с типом Таблица):
В качестве дополнительных фильтров (Еще фильтры)
В настроенных наборах фильтрации — если частично доступное поле поле установлено в наборе фильтров, при фильтрации:
Отобразятся все типы объекта, в которых присутствует блок с полем
Значения поля из блока, на который у пользователя нет прав в типе объекта, отобразится прочерком
В колонках — будет недоступна сортировка по колонкам, если они содержат значения недоступных и частично доступных полей
В списках значений фильтров по полям с типом Справочник и Объект отображаются все возможные значения поля, но фильтрация будет выполняться только по значениям из блоков, на которые у пользователя есть права в типе объекта.
Сценарии автоматизации
Чтобы упростить логику применения настроек операторов и исключить сброс заданных условий в последующих операторах сценария:
В каждый оператор срабатывания в сценариях автоматизации мы добавили кнопку Применить, с помощью которой вы можете зафиксировать заданные условия и параметры оператора до момента сохранения всего сценария:
Кнопка Применить недоступна, если настройки оператора заданы некорректно или не заполнены все обязательные параметры оператора
Если при редактировании оператора вы не нажали кнопку Применить:
Операторы на схеме сценария не будут обновлены в режиме реального времени
Внесенные изменения будут сброшены при переходе к настройке другого оператора
Если закрыть или обновить страницу при редактировании сценария, в котором есть операторы с примененными настройками, при повторном открытии сценария отобразятся последние настройки, которые были сохранены с помощью кнопки
Кнопка сохранения всего сценария :
Неактивна, если вы не применили настройки оператора
Позволяет сохранить все настройки операторов в сценарии
Для визуального разграничения изменили дизайн кнопок Редактировать в операторе Запустить скрипт и Добавить условие в операторах Ожидать и Если.
Изменили логику обновления условий в операторах Если при изменении объекта в предшествующем операторе Ожидать — теперь в операторах Если все условия будут сброшены при применении настроек оператора Ожидать, если нем в поле Объект было изменено значение Участник на любое другое значение (и наоборот).
Добавили отображение количества настроенных условий в операторе Если — на схеме сценария после описания (при его наличии) оператора Если отображается запись Задано условий (N), где N — количество заданных в операторе условий:
Если у операторе Если условия не заданы, запись не отображается
Количество условий обновляется автоматически после добавления и применения условий
На панели настроек оператора Если количество условий не отображается
Интеграции
SSO Keycloack (OpenID) и Active Directory
Теперь при создании пользователя при включенной интеграции с SSO Keycloack (OpenID) или Active Directory пользователю не будет автоматически отправляться письмо-приглашение для завершения регистрации в Case.one.
Улучшения и исправления
Теперь при удалении класса объекта он автоматически удаляется из ролей в списке секций Главного меню.
Поправили отображение чисел в счетах — теперь при использовании тегов для счета (например, Project_Bill_Subtotal) число отображается с нулями после запятой.
Исправили логику проверки участника на дубликаты по полю Сайт — теперь проверка выполняется вне зависимости от указания части http в адресе сайта в правиле определения дубликатов.
Публичный API
Мы добавили новый метод публичного API POST /api/v2/users/{id}/openDialog в группу методов для работы с пользователями (Users), который позволяет вызывать диалоговое окно для одного пользователя:
Входящие параметры метода:
Идентификатор пользователя, обязательный параметр
Идентификатор объекта, в рамках которого будет отображаться диалоговое окно
Заголовок уведомления, обязательный параметр
Текст уведомления — обязательный параметр, возможно указать текст с html-разметкой
Параметры настраиваемой кнопки — параметры идентичны параметрам кнопки метода POST /api/v2/users/{id}/notify
Условия отображения диалогового окна:
True (Да) — значение по умолчанию, только в карточке объекта (диалоговое окно отображается на всех открытых вкладках)
False (Нет) — в любом разделе Case.one
Вызов метода доступен при правах не ниже Просмотр на карточки пользователя и объекта и уровнем доступа Просмотр к карточке объекта.
Если у получателя нет прав на объект, при попытке вызвать метод пользователю, который вызвал метод, отобразится ошибка: Дело не найдено или недостаточно прав.
Технические изменения
Добавили поддержку Tantor Basic Edition 16.8.0:
Тестирование проводилось только на версии 16.8.0 для конфигурации: CPU: 16 core, RAM: 32 GB — работоспособность приложения с другими версиями СУБД не гарантируется (в других конфигурациях может потребоваться подбор иных значений параметров)
Реализовали возможность использовать в системных отчетах релевантные саджесты значений, которые получают значения не напрямую из справочников или всех объектов системы, а используют непосредственно сам шаблон запроса отчета, указанный в системном отчете. Для настроек этого механизма в модель хранения системных отчетов добавили дополнительные поля.
Добавили возможность кэширования ключей JWKS для сокращения количества запросов к SSO Keycloak — в файле настройки конфигурации appsettings.json в параметре JWKSCacheUpdateInterval вы можете указать срок жизни кэша ключей JWKS (значение по умолчанию — 1 час).
В 79 версии Case.one планируется обновление RabbitMQ до версии 4.0 — рекомендуем заблаговременно подготовиться к обновлению:
Обновление на версию 4.0 возможно только с версии 3.13
Если текущая версия RabbitMQ ниже 3.13, необходимо выполнить последовательное обновление версий, например: 3.10 → 3.11 → 3.12 → 3.13 → 4.0 (это не касается single-node в среде разработки, где есть возможность удалить данные и начать с чистой новой версии)
Обновили .NET 8 до версии 8.0.16.
Добавили поддержку более новых версий LibreOffice, поскольку используемые ранее в Case.one версии устарели и больше не поддерживаются вендором — теперь максимально поддерживаемая версия LibreOffice — 25.2.2.
Реализовали миграцию (наполнение полнотекстового индекса), которая проходит пачками по всем событиям в базе данных и обновляет SectionId в ElasticSearch feed индексе:
Миграция будет выполнена по событиям (с разбиением на пачки и созданием задач в очереди migrations) единожды при первом запуске приложения после установки обновлений
Миграция выполняется продолжительное время (может занимать до нескольких часов, в зависимости от количества событий) — до начала старта миграции в ленте событий не будут отображаться существующие события, по мере ее прохождения события будут появляться от более новых к старым.
Улучшения и исправления
Поправили логику заполнения поля с типом Число с помощью метода публичного API PUT api/v2/objects — теперь при попытке заполнения поля числом, в котором больше 18 цифр, поле заполнено не будет, отобразится ошибка о превышении максимального количества символов.
Выполнили рефакторинг механизмов аутентификации и авторизации.
Реализовали механизм синхронизации сценариев автоматизации Case.one с Hangfire при запуске приложения для обеспечения корректной работы сценариев по расписанию после установки инстанса с модулем.
Отладили работу очистки неиспользуемых файлов на Postgres.
Выполнили оптимизацию работы очереди Retry_Bucket (RabbitMQ) — теперь для исключения накопления сообщений в очереди OperationCanceledException обрабатывается аналогично SqlException.
Версия 77.4 (PATCH)
Мы выпустили небольшое обновление к 77 версииCase.one, которое позволяет избежать появления ошибок при работе в системе.
Улучшения и исправления
Исправили ошибку 500 при обращении к методу POST /api/v2/objects — теперь объекты/дела создаются без ошибок.
Разработали прототип с исправлениями для публичного API в целях оптимизации и предупреждения ошибок.
Поправили ошибку Обратитесь к администратору, которая возникала при скачивании отчетов по шаблону в формате XLSX.
Скорректировали логику вывода данных в стандартном отчете Затраченное время — теперь в отчете отображается верная информация как с примененными фильтрами, так и без фильтрации.
Версия 77.3 (PATCH)
Мы выпустили небольшое обновление к 77 версииCase.one, которое позволяет избежать появления ошибок при работе в системе.
Улучшения и исправления
Переименовали поле PackageId в InstalledPackageId в таблице PackageInstallations для правильной загрузки связанных данных через Include.
Удалили представление таблицы [CaseMap_Reports_v_0_1].[RegisterObjects], чтобы исключить появление ошибок при установке обновлений — при наличии системных отчетов, которые ссылаются на таблицы по реестрам (включая CaseMap_Reports_v_0_1.RegisterObjects), адаптируйте отчет и переделайте на объекты (таблицы CaseMap.Projects, CaseMap.ProjectTypes).
Исправили ошибку предпросмотра документов при наличии интеграции с Box.com.
Версия 77.2 (PATCH)
Мы выпустили небольшое обновление к 77 версииCase.one, которое позволяет избежать появления ошибок при работе в системе.
Важно! На текущей версии возможно возникновение следующих проблем:
Не работают умные таблицы, построенные по запросам PowerQuery, подгружающие данные из внешних источников и использующих скрытый лист.
Улучшения и исправления
Поправили работу очистки неиспользуемых файлов на Postgres.
Теперь при удалении пользователя и назначении преемника корректно срабатывают сценарии автоматизации с настроенным оператором Ожидать → Изменение ответственного.
Исправили ошибку сохранения карточки дела при удалении из справочника организационно-правовой формы, которая была выбрана у участника дела.
Поправили изменение наименований вкладок в типе дела при обновлении модуля — теперь наименования вкладок типа объекта, доставленного модулем, корректно изменяются.
Исправили выгрузку отчета по шаблону — теперь новые строки вставляются сверху после первой строки от хедера.
Добавили валидацию для сохранения дела при попытке записи сериализованной модели на дублирование блоков по VisualBlockId и ExternalId и удалили из таблицы CaseMap.ProjectVisualBlocks индекс IX_ProjectVisualBlocks_VisualBlockId_ProjectId_ExternalId_Unique.
Теперь при повторной публикации сообщения в RabbitMQ выполняется замена на используемое приложением пользователя свойство UserId, чтобы избежать возникновения ошибок.
Версия 77.1 (PATCH)
Мы выпустили обновление к 77 версииCase.one, где доработали возможности выгрузки событий безопасности и публикации интеграционных событий.
Важно! На текущей версии возможно возникновение следующих проблем:
Не расширяются диапазоны умных таблиц и других формул при формировании отчета по шаблону — исправлено в патче 77.2.
Не работают умные таблицы, построенные по запросам PowerQuery, подгружающие данные из внешних источников и использующих скрытый лист.
OpenTelemetry
Теперь доступно выгружать события ИБ (информационной безопасности) не только в syslog, но и в OpenTelemetry Collector для дальнейшей обработки:
Включите интеграцию с OpenTelemetry.
Активируйте новый параметр конфигурации EnableCyberSecurityEventsSender в файле настроек конфигурации appsettings.json в секции Custom:
Также в качестве событий ИБ выгружаются все авторизованные вызовы API приложения (событие с типом api_invoked_by_user), тело события в этом случае содержит информацию о вызываемом методе API и объекте, связанном с данным вызовом.
Публикация интеграционных событий
Для настройки публикации интеграционных событий в файле конфигурации appsettings.json добавили новую секцию PublicEvents:
В параметре IsEnabled можно включить или выключить настройку (отключена по умолчанию):
{
"PublicEvents": {
"IsEnabled": "false" // Enable publishing public events to RabbitMq. Disabled by default.
}
}
Сообщения публикуются:
В основном Exchange приложения, имя которого формируется по шаблону: main.{instance_name}, где instance_name — первое доменное имя сайта
С Routing Key, который формируется по шаблону: public.events.{entity_type}.{notification_type}, где:
entity_type — тип сущности (project, document и т.д.)
notification_type — тип события (created, updated, deleted)
Формат интеграционных сообщений:
{
"Context": {
"UserId": "6ac0d9c0-cf98-45fe-b9d3-90e2c0a5bc88", // Идентификатор пользователя, действия которого спровоцировали событие
"RaisedOn": "2025-03-17T06:56:37.9569433Z" // Дата и время события
},
"Event": {
// Список изменений сущности
"Changes": [
{
// Предыдущее значение поля
"OldValue": {
"Value": "Before value"
},
// Новое значение поле
"NewValue": {
"Value": "After"
},
// Информация об измененном поле
"Field": {
"Id": "58b8ab03-2bdc-e411-9674-902b343a9588", // идентификатор поля
"Tag": "Project_Name", // Тэг поля или системное имя поля
"Type": 0 // Тип поля: 0 - системное, 1 - кастомное
},
// Информация об линии поля. Для системных полей null
"Line": null,
// Информация об блоке поля. Для системных полей null
"Block": null
},
{
// Предыдущее значение поля
"OldValue": {
"Value": "Before text field"
},
// Новое значение поля
"NewValue": {
"Value": "After text field"
},
// Информация об измененном поле
"Field": {
"Id": "23c19b3e-e1c0-42cd-0f44-08dd6511e8e4", // идентификатор поля
"Tag": "tag_text_field", // Тэг поля или системное имя поля
"Type": 1 // Тип поля: 0 - системное, 1 - кастомное
},
// Информация об линии поля.
"Line": {
"Id": "6952f11b-0a0e-17d3-9d1e-b2a30058a110", // Идентификатор линии
"OldOrder": 0, // Предыдущий порядковый номер линии. Может быть отличен от 0 для мультилиний
"NewOrder": 0, // Новый порядковый номер линии. Может быть отличен от 0 для мультилиний
"LineId": "3016c4cb-409f-424a-0f43-08dd6511e8e4" // Идентификатор линии в типе сущности
},
// Информация об блоке поля. Для системных полей null
"Block": {
"Id": "a1c2d96a-5059-9dc9-8c49-b2a30058a110", // Идентификатор блока
"OldOrder": 0, // Предыдущий порядковый номер блока. Может быть отличен от 0 для мультиблоков
"NewOrder": 0, // Новый порядковый номер блока. Может быть отличен от 0 для мультиблоков
"BlockId": "50ffb9d7-7ada-437e-0f41-08dd6511e8e4" // Идентификатор блока в типе сущности
}
}
],
"EntityId": "3a64d036-0046-99eb-12bf-b2a300589f77", // Идентификатор сушности
"EntityType": "Project", тип сущности, может принимать значения: Project, Task, Document
"Operation": "Update" // операция над сущностью: Create, Update, Delete
}
}
Улучшения и исправления
Исправили ошибку синхронизации карточек дел с Casebook при переходе на API Casebook версии 3.0, которые ранее были синхронизированы с КАД.
Исключили дублирование вкладок Настройки и Мой арбитр карточек объектов в БД при переносе типа объекта с помощью модулей — теперь при повторном использовании типа дела в новом модуле дубли вкладок не создаются в БД.
Восстановили данные в шаблонах документов в Case.one после повторного подключения интеграции с Doc.one — теперь настройки доступности шаблонов для типов дел сохраняются при повторном подключении интеграции.
Версия 77, апрель 2025
Важно! На текущей версии возможно возникновение следующих проблем:
Не расширяются диапазоны умных таблиц и других формул при формировании отчета по шаблону — исправлено в патче 77.2.
Не работают умные таблицы, построенные по запросам PowerQuery, подгружающие данные из внешних источников и использующих скрытый лист.
Отчеты
Теперь вы можете изменять размер любых диаграмм при просмотре отчета — просто зажмите иконку в правом нижнем углу диаграммы и отрегулируйте ее размер:
Изменение размера диаграммы недоступно в стандартных отчетах
При изменении размера диаграммы пропорционально увеличивается или уменьшается сама диаграмма и все ее данные
Если размер диаграммы больше отображаемой области на экране, появится горизонтальная прокрутка
Изменения размера диаграммы сохраняются в отчете индивидуально для каждого пользователя
При получении доступа к отчету по ссылке пользователи могут изменить размер диаграммы, но при обновлении страницы или повторном открытии отчета изменения размера будут сброшены
При просмотре столбчатых диаграмм (с накоплением и без) вы можете сразу увидеть их числовые значения — в настройки диаграммы на вкладке Параметры мы добавили параметр Отображать значения в столбцах:
Если флаг установлен, при просмотре диаграммы в столбцах сразу будут отображаться числа
Если флаг снят (значение по умолчанию), значения столбцов диаграммы отображаются только при наведении курсора на столбец
Вместо автора отображается прочерк для папки Стандартные отчеты и, если автор отчета/папки отчета был удален
На панели фильтрации доступен фильтр Автор, где можно выбрать из списка одного или нескольких пользователей (в списке отображаются все пользователи, кроме удаленных)
На вкладке Общий доступ карточки отчета сведения о делегированных правах отображаются так же, как и записи о выдаче прав конкретному пользователю
Объекты и Дела
При просмотре раздела Дела или разделов с объектами вы можете настроить ширину колонок в списке дел/объектов, передвигая границу в наименовании колонки:
Минимальная ширина колонки — 80 px, максимальная ширина не установлена
Изменение ширины колонки возможно при любом количестве колонок, но применяется только для текущего пользователя
Сбросить настройки можно с помощью кнопки в настройках колонки (при наведении курсора на кнопку отображается подсказка: Восстановить настройки колонок по умолчанию)
При наведении курсора на наименование колонки меню для перемещения колонки не отображается — выделяется фон у всей ширины колонки
Теперь значение в поле с типом Встраиваемый код обновляется автоматически в момент сохранения изменений значения поля, если оно используется в качестве источника с помощью конструкции @System_Tag.
Поскольку База знаний и Реестры теперь являются объектами:
В Главном меню:
Удален раздел Реестры
Если на определенный класс реестра есть права доступа, он отображается отдельным разделом (как объекты)
Раздел База знаний теперь отображается, как настроенный класс объектов
При переходе в раздел класса реестра в списке реестров отображаются:
Колонка Название
Для перенесенных реестров — список колонок согласно настройкам формы реестра на вкладке Таблица в блоке Колонки
Для новых реестров отображаются колонки, предусмотренные по умолчанию для объектов: Дата создания, Название, Номер, Ответственный, Тип
В карточке перенесенного реестра системные поля блока Основное будут заполнены вне зависимости от настроек их видимости:
Внутри папки Реестры созданы папки с документами для каждого реестра (по аналогии с делами и объектами).
Фильтрация
Чтобы упростить переназначение ответственных, например, по задачам, теперь вы можете выбрать заблокированных пользователей и клиентов во всех фильтрах по пользователю или ответственному — в списке значений фильтров рядом с ФИО таких пользователей и клиентов отображается статус (заблокирован).
Настроенные разделы (секции)
Если администратором настроен раздел с типом Таблица, вы можете просматривать сведения об объектах и делах в отдельном разделе, работа с которым аналогична работе с таблицами в карточках объектов и дел.
Активности
Мы добавили проверки активностей (таймлогов), чтобы исключить возможность их дублирования и привязки к другой сущности:
При создании события по таймлогу выполняется проверка наличия связанного события:
Если связанного события не найдено, активность будет добавлена
Если связанное событие существует, отобразится ошибка: Такая активность уже существует
Настроили периодическую проверку всех активностей, которые не привязаны к объектам:
Интервал проверки и срок хранения записей можно указать в файле настроек конфигурации
Значения по умолчанию: интервал — ежедневно, срок хранения — 6 месяцев
В результате проверки будут удалены таймлоги, которые залогированы раньше заданного срока (значение LogDate)
Улучшения и исправления
В карточке объекта исправили отображение роли участника на вкладке Роли, если в поле с типом Объект-Участник было сброшено значение — теперь отображается только одна запись об изменении роли.
(CRM) Поправили ошибку расчета бюджета сделки до сохранения карточки, которая возникала при заполнении поля Количество лицензий в карточке сделки.
Теперь при заполнении поля с типом Объект-Пользователь в результате срабатывания сценария автоматизации, если в настройках поля был указан уровень доступа, он будет корректно присвоен пользователю.
Исправили ошибку при заполнении ИНН в карточке организации — теперь ошибка с текстом Обратитесь к администратору при вводе некорректного или неполного ИНН не отображается.
Поправили отображение сведений по документам, полученным из Casebook при синхронизации дела — теперь на вкладке История формы документа, полученного в результате синхронизации, при наведении на иконку монитора в строке Casebook создал документ отображаются сведения об ответчике.
Теперь при попытке поставить на отслеживание в профиле организацию, мониторинг которой уже выполняется, отобразится уведомление.
Исправили автоматическое округление чисел, дробная часть которых близка к нулю — теперь округление выполняется корректно и зависит от настроек количества знаков после запятой.
Поправили ошибку обновления поля с датой следующего заседания при синхронизации с завершенным делом.
Исправили ошибку, которая возникала при попытке открыть форму клиентского запроса, полученную по ссылке (для незарегистрированных пользователей).
Поправили ошибку загрузки изображений в профиле для конфигурации Windows — теперь при загрузке изображения в формате *.bmp или *.gif ошибка не отображается.
Объекты
В разделе Объекты при создании класса объекта на вкладке Настройки вы можете настроить способ управления доступом к объектам с помощью флага Запретить свободный доступ к объектам:
Если флаг установлен (значение по умолчанию), типы объектов этого класса будут доступны для автошаринга при настройке групп пользователей
Если флаг снят, все объекты этого класса будут доступны всем пользователям, и их можно использовать, например, в качестве реестров или справочников с доп. атрибутами:
Возможные действия с объектами этого класса будут зависеть только от роли пользователя и настроенных в ней прав
При настройке групп пользователей типы объектов этого класса будут недоступны для автошаринга
Если в типе объекта для поля с типом Объект-Пользователь было указан уровень прав в настройке Предоставить права доступа, права не будут учитываться (как при значении Не выбрано в настройке)
В контекстном меню папок, проектов и папок документов пункт Общий доступ не будет отображаться
На вкладке Настройки карточки объекта будут скрыты блоки Пользователи и Клиенты
Будет отключена проверка доступности сущностей в следующих разделах Case.one:
Объекты (Дела)
События
Задачи
Документы
Контакты
Отчеты
Биллинг → Счета
Календарь
Заметки
Сценарии автоматизации
После создания класса объекта изменение флага Запретить свободный доступ к объектам недоступно
Мы перенесли формы реестров в объекты — теперь отдельный раздел Администрирование — Реестры не отображается:
Каждая настроенная форма реестра перенесена в отдельный класс объекта со следующими параметрами:
Название объекта — название формы реестра
Название раздела — название формы реестра
Иконка — дело
Запретить свободный доступ к объектам — флаг снят
В каждом классе объекта для реестра создан отдельный тип объекта, куда перенесены все настройки формы реестра, кроме сведений из вкладки Таблица:
На вкладке Основное типа объекта:
Предусмотрена лишь одна стадия
Порядок блоков и их настройки аналогичны порядку и настройкам блоков из перенесенной формы реестра со вкладки Объект
Поле, которое было выбрано на форме реестра Ключевым полем, будет обязательным для заполнения
На вкладке Папки типа объекта папки созданы не будут, если для реестра они не были предусмотрены
На вкладке Настройки типа объекта:
Название — отображается название формы реестра
Трудоемкость — установлено значение 1
Аббревиатура — первая буква названия типа объекта (по умолчанию)
Дата для отображения в календаре — поле не заполнено
Описание — описание из формы реестра
Флаги Запретить создавать дубликаты и Запретить выделять в новое дело сняты
В блоке Системные поля все флаги сняты
В блоке Вкладки включено отображение только для вкладки Основное
Блоки Правила определения дубликатов и Шаблоны документов не заполнены
В блоке Шаблон миграции данных можно скачать шаблон импорта
Мы перенесли Базу знаний в отдельный класс объектов База знаний, который недоступен для изменения и удаления (аналогично классу Дела):
Для класса База знаний предусмотрены следующие настройки:
Название объекта — База знаний
Название раздела — База знаний
Иконка — дело
Запретить свободный доступ к объектам — флаг снят
В списке типов объекта добавлен тип База знаний, куда перенесены сведения из карточки решения:
На вкладке Основное типа объекта:
Предусмотрена лишь одна стадия
Добавлен блок Решение в Базе знаний со всеми полями из прежней карточки решения (изменение параметров блока и полей недоступно):
Номер решения — поле с типом Текст, обязательно для заполнения
Тип решения — поле с типом Справочник → Типы решений, обязательно для заполнения
Дата служебной записки — поле с типом Дата
Номер служебной записки — поле с типом Текст
Заказчик — поле с типом Справочник → Филиал
Предмет анализа — поле с типом Справочник → Предмет анализа, обязательно для заполнения
Тематика — поле с типом Справочник → Тематика, обязательно для заполнения
Описание — поле с типом Текстовое расширяемое, обязательно для заполнения
Категория спора — поле с типом Справочник → Категория судебного спора, обязательно для заполнения
Файл документа — поле с типом Объект-Документ
Связанные с решением дела — поле с типом Объект-Дело, является мультистрокой
Ссылки на дела из КАД — поле с типом Гиперссылка, является мультистрокой
При переносе сведений из карточки решения в объекты, если в карточке решения в связанных делах были указаны объекты не из класса Дела, под каждый связанный объект будет создан отдельный блок Связанные объекты <Название раздела>, в поле которого будет указан связанный объект
На вкладке Папки типа объекта папки созданы не будут
На вкладке Настройки типа объекта:
В блоке Основное поля недоступны для редактирования:
Название — База знаний
Трудоемкость — установлено значение 1
Аббревиатура — БЗ
Дата для отображения в календаре — поле не заполнено
Описание — поле не заполнено
Флаги Запретить создавать дубликаты и Запретить выделять в новое дело сняты
В блоке Системные поля все флаги сняты
В блоке Вкладки включено отображение только для вкладки Основное
Блоки Правила определения дубликатов и Шаблоны документов не заполнены
В блоке Шаблон миграции данных можно скачать шаблон импорта
Инструмент миграции данных
Теперь вы можете принудительно завершать запущенные сессии импорта:
Вручную — если у импорта статус В процессе %, в контекстном меню сессии импорта вы можете выбрать пункт Остановить:
Остановка импорта будет выполнена после подтверждения
Создание новых объектов или участников (в зависимости от типа импорта) будет прекращено
Объекты или участники, которые уже были созданы в результате импорта, удалены не будут
Отображается уведомление о прекращении выполнения импорта
Статус импорта будет изменен на Остановлен
Если на момент подтверждения остановки импорта сессия импорта уже завершена, отобразится ошибка: "Остановка импорта невозможна. Импорт уже завершен".
Автоматически — в настройках конфигурации мы добавили новый параметр, где можно указать время, по истечении которого сессия импорта будет автоматически завершена:
Время указывается в формате hh:mm:ss и отсчитывается с момента запуска импорта
По умолчанию значение не установлено — автоматическое завершение импорта не выполняется
При автоматическом завершении сессии импорта:
Статус импорта будет изменен на Остановлен
Уведомление в Case.one не отображается
Если в результате автоматического завершения сессии импорта произошла ошибка, информация об ошибке будет записана в общем логе приложения
Если сессия импорта была завершена принудительно (вручную или автоматически), в лог импорта будет записана причина ошибки из основного лога системы и результат завершения: Импорт данных завершен со статусом Stopped. Всего обработано строк: n, где n — количество записей, которые импорт успешно обработал.
Шаблоны документов
Вы можете прописать в шаблоне документа тег, указывающий на поле из мультистроки с использованием индекса, чтобы при формировании документа по шаблону подставлялись все значения из мультистроки (например, для отображения сведений по нескольким участникам, сведения из которых расположены в мультистроке):
При использовании индекса в тегах во время формирования документа по шаблону будут выполнены поиск поля из мультистроки, соответствующей указанному индексу, и подстановка данных из этого поля в шаблон:
Индекс мультистроки должен быть больше 0 и представлен в виде целого числа — пример: <#field tag_for_multiline[2]#>
Индексация мультистрок начинается с 1 и соответствует порядку в блоке
Порядок мультистрок считается сверху вниз — первая мультистрока будет иметь индекс [1], вторая — [2] и т.д.
Теги мультистрок с индексом доступно использовать в таблице
Если индекс мультистроки не указан в шаблоне, в документе будут добавлены сведения из первой мультистроки, как и прежде.
При загрузке шаблона с тегами полей из мультиблоков и мультистрок выполняются проверки индексов тегов:
Если индекс присвоен тегу системного поля, отображается ошибка: Тег является системным и не может содержать порядковый номер {error tag name}
Если указанный для мультистроки или мультиблока индекс равен 0, отображается ошибка: Порядковый номер должен быть больше 0 {error tag name}
Если индекс указан для тега не из мультистроки или мультиблока, отображается ошибка: "{field name}" не находится в мультистроке или мультиблоке, поэтому тег не может содержать порядковый номер {error tag name}
Группы
Управлять группами пользователей стало еще удобнее — мы перенесли раздел Группы на новый дизайн для поддержки консистентности стиля Case.one:
Вид раздела Группы аналогичен разделу Пользователи при просмотре или настройке пользователя или клиента.
При переходе в раздел Группы откроется первая группа пользователей в списке.
На панели слева отображается список все групп, а в области справа вы можете настроить параметры группы пользователей.
Удалить группу вы можете как из списка групп, так и при просмотре конкретной группы с помощью кнопки .
При настройке параметров автоматического доступа к папкам, проектам и объектам теперь не нужно устанавливать флаги у атрибутов, по которым предоставляется доступ — просто выберите одно или несколько значений из списка у нужного атрибута.
В остальном логика управления группами пользователей осталась прежней.
Пользователи
Для возможности автоматической передачи прав доступа к отчету и папкам отчетов заблокированного пользователя в карточки пользователей мы добавили блок Делегирование доступа:
В блоке вы можете назначить преемника на отчеты при блокировке пользователя:
Пользователь — в поле вы можете выбрать одного пользователя из списка, при этом пользователь, в карточке которого вы настраиваете передачу прав, в списке не отображается
Объекты — выбор значения из списка объектов, к которому будут переданы права (в этом релизе в поле отображается только значение Отчеты)
Блок Делегирование доступа доступен для редактирования при включенной интеграции с SSO Keycloack или Active Directory.
Если в блоке настроено делегирование прав:
Выбранному пользователю будет предоставлен доступ ко всем отчетам и папкам отчетов, согласно имеющимся правам у исходного пользователя
При изменении уровня прав у исходного пользователя, делегированные права у выбранного пользователя будут автоматически пересчитаны
При удалении исходного пользователя делегированные права будут сброшены
Если у выбранного пользователя уже есть права на отчет или папку отчета, на вкладке Общий доступ карточки отчета отображается максимальный уровень прав:
Уровень прав можно изменить, если делегированные права меньше или равны ранее выданным правам
Уровень прав недоступен для изменения, если делегированные права выше, чем ранее выданные
Роли
Поскольку База знаний и Реестры теперь являются объектами, мы изменили структуру в блоке Права к объектам доступа при настройке ролей:
В секции Главное меню:
Раздел Реестры не отображается
Права доступа назначаются на каждый реестр, как и на класс объекта
Раздел База знаний отображается, как и раньше
Отдельная секция Реестр со списком все реестров удалена.
В секции Объекты:
Для каждой формы реестра (типа объекта реестра) добавлен отдельный класс (как для классов объекта), права на который зависят от уровня прав, который был настроен для формы реестра
В каждом типе реестра определить права можно, как и для других типов объекта
Добавлен отдельная секция с классом объекта База знаний с возможностью настройки прав на каждый тип объекта (как для классов объекта)
Интеграции
SSO Keycloack (OpenID)
Добавили дополнительные проверки при авторизации пользователя и описание ошибок на отдельной странице, если дополнительные проверки не пройдены:
Теперь во время авторизации пользователя через SSO Keycloack в Case.one дополнительно выполняются проверки:
Ограничений по количеству пользователей в системесогласно тарифному плану
Наличия запрета авторизации на инстансе Case.one пользователям с определенными ролями
Если проверки не пройдены, сессия пользователя будет прервана, отобразится страница с ошибкой:
При достижении лимита по количеству пользователей согласно текущему тарифу — На вашем аккаунте достигнуто ограничение по количеству пользователей. Улучшите вашу подписку для увеличения количества пользователей в сервисе. Для возврата на форму авторизации обновите страницу
При наличии запрета на авторизацию для роли, которой обладает пользователь, попытавшийся авторизоваться — Доступ запрещен, пожалуйста, обратитесь к администратору. Для возврата на форму авторизации обновите страницу
Теперь значение поля Отчество в карточке пользователя синхронизируется с SSO Keycloack:
Если интеграция включена, отчество недоступно для редактирования в Case.one
При изменении значения поля Отчество в SSO Keycloack значение будет автоматически обновлено в Case.one при следующем обмене данными
Если поле Отчество не заполнено в SSO Keycloack, значение поля в Case.one будет сброшено при следующем обмене данными
В конфигурационном файле возможно указать соответствия поля Отчество
Доработали механизм назначения ролей пользователям на основании сведений, полученных через SSO Keycloak:
Теперь при создании нового пользователя или при получении сведений о пользователе, если роль не найдена или не указана, в Case.one будет автоматически создана новая роль:
Название роли в Case.one будет получено из SSO Keycloack
В роли будут назначены права Просмотр на раздел Личный кабинет → Профиль (на остальные разделы права не будут присвоены)
Если интеграция включена, в Case.one недоступно создавать, удалять роль или изменять ее название
При назначении или изменении роли через SSO Keycloack в разделе Действия в системе в Case.one будут добавлен следующие события от имени системы (Workflow Service):
Редактирование данных пользователя
Создание роли
Изменение прав созданной роли на Просмотр в разделе Личный кабинет → Профиль
Двухфакторная аутентификация
Мы изменили сервис для подключения двухфакторной аутентификации — теперь подключение осуществляется с отечественными провайдерами:
Двухфакторная аутентификация выполняется с помощью отправки СМС-кода на номер телефона пользователя, который указан в профиле, после ввода пароля.
В разделе Администрирование — Приложения секция Двухфакторная аутентификация в блоке Другое скрыта по умолчанию, поскольку подключение двухфакторной аутентификации выполняется индивидуально при необходимости.
База знаний
Поскольку мы перенесли список решений и подборок из Базы знаний в объекты, в разделе Администрирование — Приложения из блока Другие удалена База знаний.
Секции
В разделе Администрирование — Секции вы можете добавить раздел с типом Таблица:
Форма добавления таблицы идентична формам добавления Дашборда или Внешней страницы.
В конструкторе секций на панели Настройки подраздела отображаются следующие настройки таблицы (аналогичны настройкам таблиц в конструкторе объектов):
Тип — Таблица, изменение типа недоступно
Название — ввод наименования (значение по умолчанию — Таблица)
Исходный объект — выбор исходного класса объекта из списка, информация из которого будет отображаться в таблице (можно выбрать только одно значение)
Фильтры — настройка фильтрации значений, попадающих в таблицу
Колонки — выбор колонок таблицы из полей типов того класса объекта, который был выбран в качестве исходного
Панель фильтрации — установка флага для возможности фильтрации значений по колонкам таблицы
На вкладке Настройки конструктора секций вы также можете добавить вкладки с типом Таблица.
Справочники
В формулы расчета мы добавили константу NULL, которая может быть использована в качестве результата формулы (в результате будет отображаться пустое поле):
Константа NULL доступна в формулах с логическим выражением IF в качестве одного из результатов выполнения логического выражения (истина/ложь).
В других выражениях и условиях использование NULL недоступно.
Если в качестве одного из результатов работы логического выражения IF указана константа NULL, при выполнении заданных условий в результате работы логического выражения поле останется пустым. Примеры:
Если в качестве результатов логического выражения IF не задана константа NULL, расчет формулы производится, как и раньше: пустое значение считается 0, если для него не задано условие с функцией IS_NULL.
Улучшения и исправления
Прекратили поддержку Internet Explorer (IE) 11 в целях оптимизации работы системы и повышения ее безопасности.
Исправили ошибку при создании карточки дела, если в конструкторе типов дел в поле с типом Справочник указано значение по умолчанию, которое было удалено из справочника.
Теперь при формировании шаблона счета, если в нем был использован системный тег Project_Bill_Rate_Item, в счете значение тега будет корректно заполнено — /час для русскоязычных инстансов.
Теперь значение в поле с типом Данные обновляется при смене типа блока с мультиблока на обычный, в котором расположено поле-источник.
Поправили ошибку, которая возникала в разделе Действия в системе при выборе в фильтре Тип действия значения Редактирование данных пользователя.
Исправили ошибку Не определены права, которая возникала в конструкторе объектов при попытке добавить фильтры на форме для поля Объект-Дело и в блоке Таблица при выборе колонок и попытке добавить фильтры.
Исключили отображение сессии импорта в разделе Администрирование — Импорт, если файл импорта объектов был некорректно заполнен (например, не соответствовало количество столбцов от строки к строке) — теперь такие сессии не отображаются в списке.
Поправили отображение прежнего значения поля в разделе Администрирование — Действия в системе при выборе в фильтре Тип действия значений Редактирование элемента справочника, Редактирование сущности.
Добавили проверку заполнения обязательных полей таблицы и отображение ошибки при попытке сохранить тип дела с таблицей, у которой не заполнено обязательное поле Исходный объект.
Поправили порядок отображения мест использования поля с типом Справочник при попытке удаления такого поля.
Наименование инстансов
Теперь возможно официально изменить наименование инстанса, когда это необходимо (например, для On-premise версии):
В файл настроек конфигурации мы добавили параметр ApplicationName, который позволяет управлять отображением наименования в следующих разделах:
Страницы авторизации, регистрации, восстановления или задания пароля:
Наименование инстанса в левом верхнем углу
Наименование инстанса над полями для ввода логина и пароля
Наименование инстанса на странице с ошибкой о неудачной попытке входа в Case.one при авторизации через OpenId
Заголовок Главного меню
Электронные письма, уведомления и приглашения:
Наименование инстанса (изображение изменяется на текст)
Название ссылки на инстанс
Подпись
Шаблоны счетов (наименование инстанса в левом вернем углу)
При использовании параметра ApplicationName предусмотрены следующие особенности:
Если в наименовании инстанса присутствует точка, часть наименования до точки и сама точка выделены белым цветом, а часть после точки — серым
В параметре ApplicationName отсутствует ограничение на длину наименования — если наименование длиннее отображаемой области, оно будет обрезано троеточием, поскольку число отображаемых символов наименования зависит от ширины колонки Главного меню слева и области между иконками перехода в Главное меню и Колокольчиком
Чтобы от значения параметра ApplicationName полностью зависело наименование инстанса, мы исключили упоминание наименования инстанса в следующих местах системы:
Краткое описание интеграций в разделе Администрирование — Приложения: Gmail, Outlook 365, Quickbooks, OneDrive
Описание ошибок:
При импорте писем (api /Email/Import), если текст письма пустой
При запуске приложения
При работе с модулями, если версия инстанса, где был собран модуль, не соответствует версии инстанса
Тема письма о завершении создания инстанса SaaS
Страница обновления системы
В файле настроек конфигурации, как и раньше, возможно указать наименование, от кого отправляется почта — укажите значение в параметре FromName в строке подключения к SMTP.
API
Для увеличения устойчивости системы к атакам, направленным на компрометацию bearer-токенов доступа, мы внесли изменения в механизм их подписи — увеличили размер ключа и доработали валидацию издателя:
Изменения затрагивают только аутентификацию в публичном и приватном API с помощью bearer-токена при отключенной интеграции с OpenId.
Новый ключ подписи будет сгенерирован автоматически, поэтому в большинстве случаев дополнительных действий по настройке не требуется:
Ключ для подписи представляет собой произвольную строку длиной 64 или 128 символов в шестнадцатиричном формате
Автоматически сгенерированный ключ по умолчанию сохраняется в папку keys (определяется настройкой KeysDirectory) в файле TokenIssuerSigningKey
Если в скриптах или интеграциях использовались долгоживущие токены доступа или токены с неограниченным временем жизни, обязательно сгенерируйте новые с помощью api/v1/auth/token или api/v2/auth/token, поскольку после обновления на 77 версию станут недействительными токены доступа, которые были сгенерированы с помощью одного из следующих методов:
api/v1/auth/token
api/v1/auth/wintoken
api/v2/auth/token
api/v2/auth/wintoken
Технические изменения
Выполнили переход с .NET 6 на .NET 8, поскольку в ноябре 2024 года прекращена поддержка .NET 6 (см. Support Policy).
Отказались от использования Nil.JS — настоятельно рекомендуем перейти на интерпретатор ClearScript (на время переходного периода работоспособность Nil.JS скриптов останется, но возможны проблемы с их производительностью).
Добавили поддержку PostgreSQL 17:
PostgreSQL 17, минорная версия 17.0 — 17.4
Postgres Pro 17 Standard или Enterprise, минорная версия 17.0 — 17.4
Добавили интеграцию с OpenTelemetry.
Начиная с 79 версии Case.one будет прекращена поддержка PostgreSQL 13 и других СУБД, созданных на базе PostgreSQL 13, в связи с прекращением поддержки данного ПО вендором — рекомендуем заблаговременно подготовиться к переходу на более позднюю совместимую версию ПО.
Прекращена поддержка устаревших версий ПО в связи прекращением поддержки данного ПО вендором (стабильная работа Case.one с устаревшими версиями ПО не гарантируется):
Сервер приложения:
Конфигурация Windows:
Операционная система — Windows Server 2012 R2
Командная оболочка — PowerShell, версия 7.2
Конфигурация Linux:
Операционная система — Ubuntu, LTS версия 18.04 и Debian, LTS версия 10
Reverse-proxy — nginx, версии 1.22.1, 1.24.0
Командная оболочка — PowerShell, версия 7.2
Конфигурация docker:
docker (Docker Engine), версии 20.10, 23.0, 24.0
docker-compose, версии 1.24 — 1.29
Сервер СУБД:
Конфигурация Windows:
Microsoft SQL Server 2016 SP2
Microsoft SQL Server 2014
Улучшения и исправления
Убрали документирование MVC контроллеров и методов из Swagger:
Get/getlink/{linkToken}
Get/intakeforms/{linkCode}
Get/openid/login
Get/openid/signin
Get/privacypolicy
Get/sand_box
Get/termsofservice
В файле настроек конфигурации appsettings.json исправили значение пути по умолчанию до LibreOffice.
Для комфортной работы в системе мы провели оптимизацию следующих разделов и функций:
Конструкторы объектов, клиентских форм и дополнительных атрибутов
Раздел Администрирование — Клиентские формы
Синхронизация с Casebook (удалили старый модуль CaseMap.Modules.CasebookEndpoint)
Конструктор сценариев автоматизации
Получение списка задач (удалили events_popup_action_items плейсхолдера и старый модуль CaseMap.Modules.Tasks)
Списка пользователей в части назначения преемника
Звонки (удалили старый модуль CaseMap.Modules.Calls)
Реализовали Lazy Loading для профиля пользователя, чтобы облегчить основной бандл приложения, т.к. он используется достаточно редко
Доработали функциональность модулей, чтобы использовать их стало еще удобнее.
Версия 76.6 (PATCH)
Мы выпустили небольшое обновление к 76 версииCase.one, которое позволяет избежать появления ошибок при работе в системе.
Улучшения и исправления
Добавили поддержку RabbitMQ версии 3.8 для 76версии Case.one.
Добавили валидацию для сохранения дела при попытке записи сериализованной модели на дублирование блоков по VisualBlockId и ExternalId и удалили из таблицы CaseMap.ProjectVisualBlocks индекс IX_ProjectVisualBlocks_VisualBlockId_ProjectId_ExternalId_Unique.
Теперь при повторной публикации сообщения в RabbitMQ выполняется замена на используемое приложением пользователя свойство UserId, чтобы избежать возникновения ошибок.
Исправили ошибку при синхронизации EAV-модели.
Поправили рост очереди default и сопутствующие ошибки.
Версия 76.5 (PATCH)
Мы выпустили небольшое обновление к 76 версииCase.one, которое позволяет избежать появления ошибок при работе в системе.
Улучшения и исправления
Теперь в конфигурации Linux при наличии интеграции с SSO Keycloak скрипты, обращающиеся к API,выполняются корректно.
Исправили ошибку The following field values are invalid, которая возникала при заполнении поля с типом Данные и попытке сохранить карточку объекта — теперь сведения в поле корректно подтягиваются из источника, сохранение карточки объекта выполняется без ошибки.
Версия 76.4 (PATCH)
Мы выпустили обновление к 76 версии — теперь письма, отправленные из CRM, автоматически сохраняются в папке Отправленные в Яндекс Почте.
Важные сведения по обновлению Case.one:
Если вы используете интеграцию с SSOKeycloak, не рекомендуем обновление Case.one на версии 76.0-76.4, поскольку из-за ошибки работы SSO Keycloakможет быть нарушена работа публичного API и/или скриптов, использующих API — ошибка будет исправлена в версии 76.5. Если интеграция с SSOKeycloak отключена, не рекомендуем ее включать на версиях ниже 76.5.
Версия 76.3 (PATCH)
Мы выпустили важное обновление к 76 версии — устранили значительный рост очереди migrations, который возникал при обновлении Case.one до версии 76.2.
Важные сведения по обновлению Case.one:
Рекомендуем обновить Case.one сразу до версии 76.3, пропустив установку патча 76.2, чтобы избежать значительного роста очереди migrations.
Если вы используете интеграцию с SSOKeycloak, не рекомендуем обновление Case.one на версии 76.0-76.4, поскольку из-за ошибки работы SSO Keycloakможет быть нарушена работа публичного API и/или скриптов, использующих API — ошибка будет исправлена в версии 76.5. Если интеграция с SSOKeycloak отключена, не рекомендуем ее включать на версиях ниже 76.5.
Версия 76.2 (PATCH)
Мы выпустили важное обновление к 76 версии в части изменения логики объедения объектов и дел, содержащих мультиблоки и мультистроки.
Важные сведения по обновлению Case.one:
При установке обновления Case.one до версии 76.2 возможен значительный рост очереди migrations — чтобы избежать возникновения проблем, мы рекомендуем пропустить установку патча 76.2 и дождаться обновления до версии 76.3.
Если вы используете интеграцию с SSOKeycloak, не рекомендуем обновление Case.one на версии 76.0-76.4, поскольку из-за ошибки работы SSO Keycloakможет быть нарушена работа публичного API и/или скриптов, использующих API — ошибка будет исправлена в версии 76.5. Если интеграция с SSOKeycloak отключена, не рекомендуем ее включать на версиях ниже 76.5.
Объединение объектов и дел
Мы изменили логику объединения данных из мультиблоков и мультистрок, содержащих сведения об инстанции, которые были получены в результате синхронизации с Casebook — теперь при объединении дел для мультиблоков, которые созданы на основании одного и того же родительского блока, и мультистрок выполняется проверка параметра значение параметра ExternalID (идентификатор инстанции в Casebook):
Если параметр не заполнен, объединение дел выполняется как и раньше
Объединение дел выполняется как и раньше, когда параметр ExternalID совпадает, но два разных блока получают информацию по одной и той же инстанции:
Если параметр совпадает у двух мультиблоков, но эти блоки созданы на основании разных родительских блоков
Если параметр совпадает у двух мультистрок, которые находятся в мультиблоках
Если параметр заполнен, он будет сравниваться для двух одинаковых мультиблоков/мультистрок:
Если параметр отличается, оба блока/мультистроки будут скопированы в результате объединения дел
Если параметр совпадает, объединение значений полей в мультиблоке/мультистроке будет выполнено следующим образом:
Дело_1 (выбрано в поле "Результат")
Дело_2 (выбрано для объединения)
Результат объединения
Поле заполнено
Поле не заполнено
Поле заполнено значением из дела, которое выбрано в поле Результат
Поле не заполнено
Поле заполнено
Поле заполнено значением из дела, которое выбрано для объединения
Поле заполнено
Поле заполнено
Поле заполнено значением из дела, которое выбрано в поле Результат
Изменения не затрагивают процесс объединения дел, которые не были синхронизированы с Casebook.
Улучшения и исправления
Доработали возможность просмотра соглашения о персональных данных при наличии интеграции с сервисом Box.com.
Исправили ошибку синхронизации с Casebook дел, в которых более 100 000 сущностей (документов, участников, событий).
Поправили ошибку установки модуля в форс-режиме, при установке типа объекта с блоком Ссылки, который используется в другом модуле.
Версия 76.1 (PATCH)
Мы выпустили небольшое обновление к 76 версииCase.one, которое позволяет избежать появления ошибок при работе в системе.
Важные сведения по обновлению Case.one:
Если вы используете MS SQL 2014, мы не рекомендуем обновление Case.one до версии 76.0 из-за возможных проблем с миграцией — желательно устанавливать версию 76.1 или выше.
Если вы используете интеграцию с SSOKeycloak, не рекомендуем обновление Case.one на версии 76.0-76.4, поскольку из-за ошибки работы SSO Keycloakможет быть нарушена работа публичного API и/или скриптов, использующих API — ошибка будет исправлена в версии 76.5. Если интеграция с SSOKeycloak отключена, не рекомендуем ее включать на версиях ниже 76.5.
Улучшения и исправления
Исправили ошибку автоматического удаления файла для получения согласия на обработку ПДн — теперь, если в блоке Авторизация с получением согласия на обработку персональных данных включены настройки и прикреплен файл, при изменении любых других настроек в разделе Администрирование — Аккаунт файл не будет удален.
Поправили ошибку при просмотре отчета по ссылке — теперь при просмотре отчета по ссылке автоматический переход на страницу авторизации не выполняется, данные отчета отображаются корректно.
Версия 75.3 (PATCH)
Мы выпустили важное обновление к 75 версии Case.one, чтобы сделать работу с Case.one еще комфортнее.
Улучшения и исправления
Исправили ошибку синхронизации с КАД, которая возникала, если ранее не была подключена интеграция с API Casebook v 2.0 — теперь синхронизация выполняется без ошибок вне зависимости от версии API Casebook.