...

Релиз 2024.9

Тема в разделе "Релизы ELMA365 SaaS", создана пользователем ELMA365, 10 окт 2024 в 19:39.

  1. ELMA365

    ELMA365 Moderator

    Ниже представлен список изменений, с которыми вы можете ознакомится уже сейчас, активировав демоверсию ELMA365.
    После 14.10.2024 все изменения станут доступны нашим клиентам в их активных компаниях. Обратите внимание, список может быть расширен после релиза.


    Пожалуйста, обращайте особое внимание на любые обновления, помеченные тегом #BreakingChangeAlert, так как они могут потребовать дополнительных действий с вашей стороны для адаптации или корректировки вашей текущей конфигурации.

    API и SDK

    1. TEAM-18222 Реализован новый параметр поиска __item для поиска экземпляров процессов и задач, связанных с элементом приложения. Этот параметр позволяет быстро получать все запущенные или ожидающие рабочие процессы и задачи, связанные с конкретным элементом приложения, без необходимости ручного отслеживания ID процессов. #BreakingChangeAlert

    Пример:
    Код:
    
    // поиск экземпляров
    const instances await System.processes._searchInstances()
        .
    where(=> i.__item.eq(Context.data.app)).all();

    // поиск задач
    const tasks await System.processes._searchTasks()
        .
    where(=> i.__item.eq(Context.data.app)).all();
    2. TEAM-29961 Теперь в методах API появилась возможность возвращать несколько cookies в одном ответе.

    Код:
    
    let resp = new HttpResponse(200);
    resp resp.cookie("userId"userId).cookie("userLang""ru");
    return 
    resp;
    3. TEAM-30189 В справке Web API добавлено описание возможности использовать EQL (Elma Query Language) для фильтрации данных. В статье по фильтрации https://api.elma365.com/ru/public-api/guides/Filter/ также приведен пример использования EQL для выполнения выборки данных в Web API.


    4. TEAM-29212 В PublicAPI добавлена новая операция фильтрации like_format, позволяющая осуществлять поиск по частичному совпадению строк с использованием шаблонов. В отличие от операции like, like_format использует управляющие символы % и _ для задания правил поиска:

    • % — обозначает любое количество любых символов.
    • _ — обозначает один любой символ.

    Условие поиска регистронезависимо, что позволяет выполнять фильтрацию без учета регистра символов.
    Пример поиска по вхождению слова в название:
    Код:
    
    {
        
    "filter": {
            
    "like_format": [
                {
    "field""__name,
                {"
    const": "%город%"}
            ]
        }
    }
    Пример поиска регистрационного номера по шаблону заполнения:
    Код:
    
    {
        
    "filter": {
            
    "like_format": [
                {
    "field""regNumber,
                {"
    const": "М86_А_ 777"}
            ]
        }
    }
    5. TEAM-15832 В TS SDK добавлен метод getReserved() для получения зарезервированного номера документа.

    Приложение типа Отчёт

    1. TEAM-27926 Добавлена возможность копирования отчета через меню настроек. При копировании сохраняется структура отчета, включая источники данных, добавленные колонки (за исключением удаленных) и привязанные шаблоны документов. Эта функция позволяет быстро создавать похожие отчеты с минимальными изменениями. #BreakingChangeAlert

    2. TEAM-29244 Добавлены функции удаления и восстановления отчета. #BreakingChangeAlert

    3. TEAM-30231 В контексте виджетов и форм реализовано отображение подтипа для отчетов, аналогично тому, как отображаются подтипы приложений. Это упрощает работу с отчетами и улучшает восприятие структуры контекста.

    Переносимые сервисы

    1. TEAM-29170 Реализована возможность проброса портов для переносимых сервисов внутри Kubernetes, что позволяет организовать связь между сервисами. Теперь в настройках переносимых сервисов можно задать до 10 портов для проброса. Эта функция закрыта под фича-флагом allowBabysitterOptionalPorts и по умолчанию выключена.

    2. TEAM-29447 Добавлена возможность использования секретов в переносимых сервисах, которые задаются через шаблоны из настроек модуля. Теперь вместо передачи секретов в открытом виде, можно использовать переменные из настроек, что повышает безопасность.

    Мобильное приложение

    TEAM-18156 На странице Администрирование >Настройки компании добавлена настройка Отключить блоки с предложением установить приложение. При активации этой опции пользователи не будут видеть блоки с предложением скачать мобильное или десктопное приложение ELMA365, включая баннеры в профиле и при входе в систему. Это решение актуально для компаний, которые не планируют использовать мобильное приложение по соображениям безопасности или имеют собственную сборку приложения.

    Виджеты

    1. TEAM-25759 В конструкторе виджетов на вкладке Настройки > Системные функции добавлена функция Уничтожение. Она вызывается при уничтожении виджета и бывает полезна, когда необходимо освободить ресурсы, созданные в процессе работы виджета. Например, очистка взведённых интервалов и таймаутов:
    Код:
    
    declare const window: {
        
    setInterval: (fn: () => voidintervalnumber) => number;
        
    clearInterval: (clearIntervalnumber) => void;
    };

    async function onInit(): Promise<void> {
        
    Context.data.counter 0;
        
    intervalID window.setInterval(() => {
            
    Context.data.counter!++;
        }, 
    1000);
    }

    async function destroy(): Promise<void> {
        
    window.clearInterval(intervalID);
    }
    В данном случае в функцию Уничтожение надо привязать destroy.

    Отчет о производительности виджетов

    В разделе Администрирование > Инструменты разработчика > Отчет о производительности добавлена вкладка Виджеты. Там отображается сводная статистика по использованию виджетов в системе. Она может быть полезна, чтобы понять наиболее проблемные точки в конфигурации (например, если виджет часто отображается, но скорость отображения невелика). После выявления таких виджетов, можно перейти в конструктор и оптимизировать их.

    Чтобы включить сбор статистики по виджетам, надо перейти в Администрирование > Инструменты разработчика и заполнить настройку С кого собирать информацию о производительности виджетов — можно указать пользователей, группы, элементы оргструктуры.
    В отчете отображаются следующие колонки:
    • Сервис — значение всегда widget;
    • Точка входа — раздел и код виджета;
    • Количество — сколько раз был отображен виджет за период сбора статистики;
    • Время рендеринга (среднее, минимальное, максимальное) — время от начала отображения (включая время выполнения OnInit) и до окончания рендера шаблона виджета;
    • Время выполнения OnInit (среднее, минимальное, максимальное) — время выполнения функции инициализации виджета. Часто именно данный показатель влияет на общее время рендеринга, и является местом, которое можно оптимизировать;
    • Время подготовки схемы скриптов (среднее, минимальное, максимальное) — поле является системным, т.е. на него нельзя повлиять, но результаты могут потребоваться для анализа производительности со стороны разработчиков системы ELMA365;
    • Количество элементов для схемы скриптов (среднее) — поле является системным.

    EQL


    1. TEAM-29214 В языке запросов EQL добавлена новая операция LIKEF (сокращение от LIKE FORMAT), позволяющая выполнять более гибкий поиск значений свойств с использованием шаблонов.
    Отличия от операции LIKE:
    • LIKE ищет частичное вхождение подстроки в любом месте значения свойства. Например, запрос [__name] like 'app' найдет элементы с именами app1, some_app, app_some.
    • LIKEF позволяет задавать точные правила поиска с использованием специальных символов % и _, обеспечивая более контролируемый поиск.
    Правила использования LIKEF:
    • Полное совпадение: Если в шаблоне не указаны специальные символы % или _, будет выполнен поиск по полному совпадению (аналогично операции EQ).
    • Символ %: Обозначает любое количество символов (в том числе ноль). Может использоваться неограниченное число раз в любом месте шаблона.
      • Пример: [__name] likef 'app%' найдет элементы, имена которых начинаются с app, например app, app1, appsome. Не будут найдены 1app, someapp.
    • Символ _: Обозначает один любой символ. Может использоваться неограниченное число раз.
      • Пример: [__name] likef 'app_' найдет элементы с именами app1, app2, но не app, app11, 1app.
    • Комбинация символов: Символы % и _ можно комбинировать для создания сложных шаблонов.
      • Пример: [__name] likef '_app%some%45_' позволит найти специфичные варианты имен.
    • Экранирование специальных символов: Чтобы искать символы % или _ как часть значения, их необходимо экранировать с помощью обратной косой черты \.
      • Пример: [__name] likef '%app\%' найдет элементы, имена которых заканчиваются на app%.
    • Эквивалентность с LIKE: Запрос [__name] likef '%app%' эквивалентен [__name] like 'app'.
    Операция LIKEF применима для следующих типов данных:
    • строка, текст;
    • ссылка;
    • категория;
    • Email;
    • телефон;
    • ФИО;
    • аккаунт.

    2. TEAM-29801 Добавлен виджет EQL-поиск. Он позволяет отобразить в виджете компонент ввода выражения EQL для последующего использования этого выражения в функции фильтрации элементов приложений.

    3. TEAM-29887 В EQL добавлена возможность искать по полям типа Произвольное приложение. Например:
    [workLogObject] IN (FROM [_clients._leads] SELECT [__id] WHERE [__name]='Моя компания')
    Где workLogObject — поле типа Произвольное приложение.

    Документооборот

    1. TEAM-4865 В стандартном разделе Номенклатура улучшены названия для полей поиска:

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

    2. TEAM-19294 Добавлена кнопка +Файл при отправке на согласование или ознакомление файла и пакета. Теперь пользователи могут прикреплять файлы как для согласования, так и для ознакомления. Прикрепленные файлы сохраняются в системной папке system/docflow/files, с корректными правами доступа.

    3. TEAM-21532 Теперь при изменении шаблона документа в блоке Генерация по шаблону поля, сопоставленные на вкладке Значения полей, сохраняются. Также при включенной опции Конвертировать в PDF платформа автоматически добавляет префикс .docx для имени файла, что упрощает генерацию документов.

    4. TEAM-29702 В настройках переходов в блоках бизнес-процессов появилась новая опция для Подписать. Теперь пользователь может подписать элемент приложения прямо на форме выполнения задачи, нажав на кнопку перехода. При этом нет необходимости добавлять отдельный блок для подписания. Кроме того, комментарий, оставленный при подписании, сохраняется в переменной контекста бизнес-процесса.

    5. TEAM-30179 Исправлена работа прав доступа для иерархических справочников. Теперь, при включении опции У всех пользователей есть доступ к Приложению и ко всем его элементам, автоматически выдается полный доступ ко всем папкам справочника. Ранее права выдавались вручную, и пользователи могли видеть только папку Все записи.

    Проекты

    TEAM-29751 Реализован учет и отображение фактических дат запуска и выполнения проектных задач с типом Процесс. Фактические даты проставляются по факту запуска и завершения бизнес-процессов. Отображаются на форме просмотра задачи-процесса и влияют на отображение календарного плана в режиме Факт.

    Лента, каналы, чаты

    1. TEAM-3600 В Ленте, ленте объекта, виджете Лента объекта, каналах, приватных и групповых чатах реализована возможность загрузки множества файлов.

    2. TEAM-26440 Теперь можно добавлять чаты в Избранное через контекстное меню чата. Добавленные чаты отображаются на вкладке Избранное для быстрого доступа. Сообщения каналов и ленты, ранее добавленные в избранное, перемещены в раздел Избранное > Сообщения.

    3. TEAM-28094 Теперь пользователи могут добавлять объекты ленты в Избранное с помощью контекстного меню объекта. Добавленные объекты отображаются на вкладке Избранное ниже избранных чатов, что обеспечивает быстрый доступ к важным элементам.

    4. TEAM-28244 Теперь пользователи могут настроить список объектов ленты, исключив из него элементы определенных приложений или процессов, с которыми они не работают.
    Предположим, пользователь получает сообщения в ленте приложения Заявки на оплату, но не работаете с элементами этого приложения напрямую и не хочет видеть их у себя в списке объектов. Тогда:

    1. Пользователь находит элемент приложения Заявки на оплату в списке объектов ленты.
    2. Нажимает правой кнопкой мыши на этот элемент.
    3. Выбирает опцию Больше не показывать приложение в списке.
    4. Все элементы из приложения Заявки на оплату будут скрыты из списка объектов ленты.
    5. Сообщения из лент этих элементов по-прежнему будут доступны в разделе #Лента.

    Импорт и экспорт структур

    TEAM-15864 Реализована возможность импорта данных из файлов Excel/CSV для полей типа Таблица в приложениях. Теперь экспортированные данные можно корректно импортировать обратно в систему. Это упрощает перенос больших объемов информации и исключает ошибки при вводе данных.
    При экспорте данных с включенной системной информацией сохраняется формат, который поддерживает обратный импорт. При отключенной системной информации отображается количество элементов в формате "Элементов: число".
  2. ELMA365

    ELMA365 Moderator

    Исправлены ошибки

    1. TEAM-26639 Для блоков Действие бизнес-процесса и Запуск процесса реализована настройка Выполнять от имени, аналогично блоку Задача. #BreakingChangeAlert

    2. TEAM-29726 На экспортированной схеме бизнес-процесса названия переходов из задач и шлюзов теперь отображаются корректно.

    3. TEAM-28785 Для оптимизации выборки профилей портальных пользователей у поля __user из таблицы _system_catalogs:_user_profiles установлен признак поиска.

    4. TEAM-29772 Исправлена работа поиска по событиям.

    5. TEAM-30246 Была обнаружена и исправлена ошибка, при которой воркер отправлял подтверждение получения сообщений из RabbitMQ сразу после их получения, не дожидаясь завершения выполнения соответствующего скрипта. Это могло приводить к тому, что скрипт не выполнялся или выполнялся некорректно.

    6. TEAM-30895 Была обнаружена и исправлена ошибка, при которой пользователь не мог просмотреть элемент приложения, даже если был добавлен в группу, настроенную для доступа через вложенное свойство.

    7. TEAM-30993 Была выявлена и исправлена ошибка, при которой в сценариях невозможно было получить доступ к объекту Namespace, что приводило к сбою выполнения. Также отсутствовала возможность добавить Namespace в доступных элементах в настройках виджета.

    8. TEAM-3821 Обнаружена и исправлена ошибка, при которой удаленный файл продолжал отображаться в результатах поиска в разделе Файлы.

    9. TEAM-15124 Была обнаружена и исправлена ошибка, при которой в стандартном приложении появлялись лишние настройки Подпись файла, даже если сам файл не предусмотрен.

    10. TEAM-28459 Обнаружена и исправлена ошибка, при которой источники контракта отсоединялись и помечались красным. Проблема возникала при привязке источников, особенно если ранее привязанные приложения были удалены. В некоторых случаях источники, которые должны быть привязаны, оставались в состоянии Creating и не сохарнаялись.

    11. TEAM-28925 Ошибка, связанная с некорректной работой функции PasteImage() с настраиваемыми размерами, была обнаружена и исправлена. Ранее изображение не вставлялось в документ при указании размеров, а корректно работала только функция без параметров. Теперь изображение вставляется с заданными размерами, как указано в шаблоне.

    12. TEAM-29431 Была обнаружена и исправлена ошибка, связанная с некорректной работой метода validFrom. Ранее этот метод возвращал дату подписания вместо даты выпуска сертификата. Теперь метод корректно возвращает дату выпуска сертификата, как ожидалось.

    13. TEAM-29438 Была обнаружена и исправлена ошибка, из-за которой в шаблонизаторе вместо названия кастомного провайдера электронной подписи выводился путь к коллекции. Теперь шаблонизатор корректно отображает название или код кастомного провайдера при выводе информации в шаблоне.

    14. TEAM-29879 Была обнаружена и исправлена ошибка, из-за которой не работала генерация плана проекта по шаблону. Теперь генерация плана проекта корректно работает для новых компаний и вновь созданных типов проекта. Для старых клиентов, у которых эта проблема сохраняется, нужно проверить настройку связи с полем Проект в кнопке Сохранить на форме создания проекта.
    [​IMG]


    15. TEAM-29919 Была найдена и исправлена ошибка, из-за которой участникам проекта выдавались все права на папки и файлы проекта, за исключением права Назначение прав. Теперь участникам проекта (кроме куратора и руководителя) назначаются только права на просмотр, загрузку, создание и редактирование, в соответствии с документацией.

    16. TEAM-30203 Была обнаружена и исправлена ошибка, при которой методы getDraft() и createDraft() в объекте проекта не работали для добавленных типов проектов. При попытке их использования скрипт падал с ошибкой "is not a function". Теперь эти методы работают корректно при работе с типами проектов.

    17. TEAM-30283 Была выявлена и исправлена ошибка, при которой система допускала создание проектов без плана через скрипты, что приводило к сбоям в дальнейшей работе скриптов.

    18. TEAM-30322 Была обнаружена и исправлена ошибка, из-за которой задачи подписания в бизнес-процессах не закрывались после выполнения при использовании модуля Контур. В результате бизнес-процесс не продолжался, несмотря на успешное подтверждение подписания. Проблема возникала массово у разных пользователей и исправлялась только после нескольких попыток. Подписание через КриптоПро работало корректно.

    19. TEAM-30414 Была обнаружена и исправлена ошибка, при которой источники контракта с несопоставленными полями вели себя нелогично. Ранее система позволяла сохранить такие источники, но это приводило к некорректному отображению элементов. Теперь элементы не будут добавляться в контракт, пока все поля источников не будут правильно настроены.

    20. TEAM-12689 Была обнаружена и исправлена ошибка в отображении структуры компании, при которой один и тот же пользователь, назначенный на несколько должностей, отображался только под одной из них.

    21. TEAM-24113 Была обнаружена и исправлена ошибка, при которой при обновлении решения не обновлялось поле Название элемента в настройках приложения.

    22. TEAM-25286 Была выявлена и исправлена ошибка, при которой при обновлении раздела не менялся порядок содержимого левого меню.

    23. TEAM-26478 Была найдена и исправлена ошибка, из-за которой при обновлении решения настройки отображения полей в табличном представлении элементов не применялись.

    24. TEAM-28616 Была обнаружена и исправлена ошибка, из-за которой при настройке прав доступа в приложении невозможно было выбрать группы пользователей из другого приложения в том же разделе. Теперь при настройке прав в окне выбора загружается полное дерево групп, включая группы на уровне разделов и приложений.

    25. TEAM-29429 Была обнаружена и исправлена ошибка, из-за которой в мобильном приложении отображались разделы, связанные с решениями, на которые не активированы лицензии.

    26. TEAM-29474 Была выявлена и исправлена ошибка, из-за которой авторизация через QR-код в мобильном приложении не всегда срабатывала корректно. При сканировании QR-кода пользователи могли сталкиваться с ситуацией, когда после отображения формы авторизации с логином и паролем их перенаправляло обратно на страницу выбора способов авторизации, либо приложение выкидывало.

    27. TEAM-29669 Была найдена и исправлена ошибка, из-за которой в файле метаданных для SAML генерировался лишний пустой тег NameIDFormat, что приводило к ошибкам при работе с сервером AD FS. Теперь при создании файла метаданных лишний тег удалён, и процесс интеграции с SAML работает корректно.

    28. TEAM-30321 Была обнаружена и исправлена ошибка, из-за которой настройки роли или группы не сохранялись, если ранее назначенный пользователь был удалён.
  3. zaitsev_i

    zaitsev_i Активный участник

    Уточните о каком именно действии идет речь, или о всех действиях (Сценарий, Изменение элемента, Запуск процесса и др.)?