Документооборот
1. TEAM-21489 В блок Ознакомление добавлена возможность настроить дополнительные переходы бизнес-процесса для обработки возникающих ошибок и архивирования листа ознакомления. Настройки выполняются на вкладке Переходы.
2. TEAM-22372 В HTML-шаблон водяного знака теперь можно добавить поле для отображения названия провайдера. Для этого используется конструкция {$signInfo.data.provider_name}.
3. TEAM-23889 При генерации файла по шаблону добавлена возможность обращаться к атрибутам поля типа Произвольное приложение. Для этого используются код поля из исходного приложения и код вложенной переменной, разделённые точкой: {$contract.__name}.
4. TEAM-24140 При генерации документа по шаблону из файла формата .xlsx теперь можно использовать стандартную для программы Excel функцию HYPERLINK. С её помощью можно преобразовать заданное значение в гиперссылку. В качестве аргументов можно использовать переменные из контекста приложения, а также задать значения вручную.
Пример:
=HYPERLINK("{$link}";"Нажмите, чтобы просмотреть отчет")
5. TEAM-24205 В блоке Согласование теперь можно настроить автоматическое согласование документа. Пользователь выносит резолюцию в карточке настроенной задачи. После этого процесс доходит до блока Согласование, и автоматически создаётся лист согласования. Опция позволяет не выполнять отдельную задачу согласования документа.
6. TEAM-23359 В настройки модуля Диадок добавлен статус Подписан. Отказано в аннулировании. С ним можно сопоставить статус из приложения типа Документ, элементы которого отправляются в Диадок на обработку.
Бизнес-процессы
1. TEAM-12540 Добавлена возможность выбрать режим отладки бизнес-процесса: проверить выполнение всей схемы или включить отладку с определённого шага. Если на карте процесса выбран блок, отладка начнётся с него. Если на схеме не выделен ни один элемент, запустится отладка всего процесса.
В дизайнере процессов добавлена вкладка Настройки отладки, на ней можно настроить форму отладки. При настроенной форме отладки заполнять стартовую форму процесса не нужно.
2. TEAM-18876 Появилась возможность назначить задачу сразу на несколько пользователей. При выборе исполнителя можно выбрать несколько пользователей, группу или элемент оргструктуры. Задача назначается для параллельного исполнения.
В разделе Исходящие инициатор может открыть карточку задачи и посмотреть таблицу, в которой отображаются все исполнители и текущие статусы задачи. Таблица появляется при выборе двух и более исполнителей.
В уже созданной задаче количество исполнителей изменить нельзя.
3. TEAM-20791 В настройки блоков Создание элемента и Изменение элемента добавлена вкладка Переходы. На ней можно настроить дополнительные переходы из задачи, например, чтобы отменить создание элемента и направить ход процесса по другой ветке.
Приложения
1. TEAM-4406 При заполнении поля типа Приложение добавили возможность отметить сразу несколько элементов. Выбрать можно конкретные элементы, страницу элементов или все созданные записи.
2. TEAM-20531 Доработана логика обновления прав доступа и управления правами доступа в заблокированном решении:
- в заблокированном решении можно редактировать настройки доступа приложений и доступ к страницам;
- для структур прав доступа добавлено ведение истории;
- при обновлении структур (решений/разделов и т. д.) добавлен отдельный шаг обновления настроек прав доступа. В нём отображаются все настройки прав с конфликтами, т. е. права были изменены на целевой площадке, а в файле, который используется для обновления, история версий расходится. Пользователь может выбрать, какие настройки обновить, а какие оставить.
Важно: поскольку в существующих разделах/решениях/конфигурациях отсутствует история версий, при обновлении могут возникать ложные конфликты. Такие конфликты можно игнорировать и продолжать обновление. Чтобы конфликт больше не возникал, решение необходимо экспортировать с версии 2024.1. История версий будет добавлена в структуру прав доступа при экспорте.
3. TEAM-21007 Улучшен пользовательский опыт назначения сотрудников на роль. Скорректирован внешний вид окна выбора пользователя, группы пользователей, элемента оргструктуры.
4. TEAM-21399 В приложении типа Событие скорректировано время при переносе события в календаре. Теперь шаг составляет 15 минут.
5. TEAM-23402 В типе данных Таблица добавлена настройка минимальной высоты строки. Теперь можно задать значение минимальной высоты строк таблицы в пикселях. Минимальное значение 35 пикселей.
Исправлено выравнивание содержимого ячейки по высоте.
Администрирование
1. TEAM-23598 Добавлена возможность скрыть кнопки перехода в справку из интерфейса ELMA365. Для этого на странице Администрирование > Тема оформления необходимо отключить опцию Показывать элементы перехода в справку. Отключение отображения может быть полезно для компаний, которые работают в закрытом контуре.
2. TEAM-23680 В разделе Администрирование > Инструменты разработчика > Отчет о производительности реализовано сохранение в общем списке отчётов, сформированных вручную. Теперь в таблице отмечен способ генерации отчёта. Каждый отчёт из списка можно загрузить на компьютер в любое время.
EQL-поиск
1. TEAM-22454 В окне поиска по параметрам в блоке EQL-поиск реализовано автоматическое заполнение значений для составления запросов EQL. Теперь строчки пронумерованы, доступные параметры и функции можно выбрать из показываемого списка.
2. TEAM-24229 Реализована возможность искать в запросе EQL текущего пользователя. Указывать можно функции вида CurrentUser() in [users], а также [users] in CurrentUser().
Отчет
TEAM-22574 В компоненте Отчет доработана логика работы с удалёнными колонками:
- при использовании сценариев, поиск по удалённой колонке недоступен;
- удалённые колонки не учитываются при экспорте отчёта в файл;
- если виджет Таблица строится по данным из отчёта, удалённая колонка не будет отображаться;
- если виджет График строится по данным из отчёта, при удалении колонок его нужно перенастроить;
- колонку можно восстанавливать. Для этого создаётся колонка с аналогичным кодом и типом.
Мобильное приложение
TEAM-12703 В мобильном приложении добавлен доступ к главной странице. Для перехода необходимо вызвать расширенное меню и выбрать пункт Главная.
Виджеты
1. TEAM-13950 В дизайнере интерфейсов добавлена фильтрация по всем свойствам, созданным в контексте виджетов. Чтобы найти нужное свойство, необходимо перейти на вкладку Виджеты > Свойства и воспользоваться строкой поиска.
2. TEAM-21376 В дизайнере интерфейсов теперь отображается полное наименование свойства, если на боковой панели навести на него курсор.
3. TEAM-18104 Реализована настройка комментирования в ленте. В виджет Лента объекта добавлена опция Запретить пользователям отправлять сообщения. При включённой опции, отправлять новые сообщения в ленту нельзя. Разрешается только оставлять комментарии к уже существующим сообщениям.
4. TEAM-22125 Доработан виджет Навигатор:
- добавлена возможность работать со страницами портала в виджете Навигатор с помощью методов TypeScript;
- создаваемый по шаблону портал теперь использует навигацию на базе виджета Навигатор.
5. TEAM-23830 Добавлены зоны расширения для системных виджетов отображения информации и работы с пользователями. Зоны расширения можно использовать при создании виджетов в модулях. Виджет с такой зоной расширения будет отображаться: при нажатии на имя пользователя, в карточке пользователя в приложении Сотрудники, в настройках профиля пользователя.
Модули
TEAM-22696 Теперь бесплатные модули, которые не являются частью решения, можно редактировать после импорта в компанию. Такие модули отмечаются в общем списке значком Бесплатный модуль.
CRM
1. TEAM-23805 Добавлена возможность настраивать список активностей CRM, которые отображаются в виджете История активностей. Теперь можно скрывать преднастроенные активности, а также создавать пользовательские действия. Пользовательские активности выполняются в ходе бизнес-процесса. Это настраивается в дизайнере процессов с помощью блока Создать запись активности.
2. TEAM-23833 Добавлена возможность изменять статус лидов и сделок при выполнении массовых действий с элементами. Для новых лидов и сделок теперь можно установить любой статус и назначить ответственного, если он не проставлен в карточке элемента. Также при редактировании статуса элемента выбрать можно статусы, настроенные в любой воронке.
3. TEAM-22918 В дизайнере процессов при постановке задач CRM на пользователей без лицензии CRM, добавлено оповещение о том, что у исполнителя не будет доступа к задаче.
4. TEAM-23463 Для пользователей с лицензией CRM реализована возможность в ходе бизнес-процесса отправлять оповещения на email с личного адреса, настроенного в разделе Почта. Это можно настроить в дизайнере процессов с помощью блока Отправка личного еmail. Пользователь, чей email указывается в блоке, в настройках своего профиля должен разрешить использование почты в процессах.
5. TEAM-23022 В модулях Аудит изменений платформы и Аудит изменений CRM добавлена возможность настраивать логируемые события: Создание, Изменение, Удаление, Восстановление. Доработаны формы просмотра событий. Исправлены ошибки, связанные с обновлением модулей.
Линии
1. TEAM-20307 Добавлена возможность указать тему письма при создании сессии по каналу Inbox. Также улучшено отображение темы письма.
2. TEAM-23638 Реализована возможность настраивать максимальное количество попыток переподключения для канала Inbox. Для этого в конфигурацию сервиса mailer добавлен параметр ELMA365_MAILER_IMAP_MAX_RECONNECT_ATTEMPTS. По умолчанию параметр равен пяти.
3. TEAM-20561 В настройках блока Ответное сообщение в линию добавлена возможность выбрать тип сессии, в которую нужно направить ответ:
- созданная раньше других;
- созданная позже других;
- с последним входящим сообщением;
- все связанные сессии.
Проекты
1. TEAM-17159 В режиме редактирования календарного плана в контекстном меню задачи добавлена кнопка Выполнить. При нажатии кнопки выполняется задача, и устанавливается стопроцентный уровень прогресса.
2. TEAM-19695 В плане проекта в режиме редактирования диаграммы Ганта реализовано сохранение значений в ячейках таблицы без нажатия клавиши Enter.
3. TEAM-22210 Реализована визуализация уровня загрузки по результатам ресурсного планирования. Панель загрузки доступна в режиме полноэкранного просмотра диаграммы Ганта.
Доступны следующие возможности:
- в режиме редактирования календарного плана на элементы плана могут быть добавлены ресурсы в таблицу Плановые загрузки;
- при сохранении изменений в задачах и публикации календарного плана добавятся соответствующие загрузки в приложение Проекты/Загрузки;
- результаты ресурсного планирования можно просматривать с карточки проекта при полноэкранном отображении диаграммы Ганта.
API, SDK
1. TEAM-20625 Добавлен метод getWithWatermarks, позволяющий наложить водяной знак на файл формата .xls, .xlsx, .doc, .docx, .pdf.
Код:
// Создаем список водяных знаков
const watermarks: Watermark[] = [{
template: "<div style='border:2px solid coral; max-width: 62px;'>В работу</div>",
position: WatermarkPosition.Center,
pages: WatermarkPages.All,
scale: 0.5,
opacity: 0.75
}];
// Получаем идентификатор файла, на который хотим наложить водяной знак
const fileId = Context.data.file.id;
// Накладываем водяной знак
const tmpFile = await System.watermark.applyToFile(fileId, watermarks);
@param fileId — идентификатор файла, на который будет наложен водяной знак;
@param watermarks — массив водяных знаков, накладываемых на файл.
}
Код:
export interface Watermark {
// Водяной знак в формате html
template: string;
// Позиция знака
position: WatermarkPosition;
// Страницы для отображения
pages: WatermarkPages;
// Масштабирование итогового знака. 0..1
// 1 = 100%
scale: number;
// Непрозрачность водяного знака. 0..1
// 1 = непрозрачный
opacity: number;
}
//Позиция водяного знака
//В зависимости от позиции расчитывается отступ на странице с учетом размера водяного знака и размера страницы
export enum WatermarkPosition{
Center,
TopLeft,
TopRight,
BottomLeft,
BottomRight
}
//Страницы, которые на которые наложить водяной знак
export enum WatermarkPages
{
All,
First,
Last
}
@returns — экземпляр [[FileItemRef]], указывающий на временный файл с водяными знаками.
2. TEAM-21282 Добавлен метод System.converter.toPDF() для конвертации файлов в формат .pdf. Метод не изменяет файл-источник, идентификатор которого передаётся в параметре fileId. Конвертация в .pdf применима для файлов .xls, .xlsx, .doc, .docx.
Пример использования:
Код:
// Получаем идентификатор файла, который хотим конвертировать в pdf
const fileId = Context.data.fileToConvert.id;
//конвертируем файл в pdf
const tmpFile = await System.converter.toPdf(fileId);
@param fileId — идентификатор файла который необходимо конвертировать в .pdf;
@returns — экземпляр [[FileItemRef]] указывающий на временный файл в формате .pdf.
3. TEAM-12067 Теперь в скриптах в качестве строго типизированных методов модуля можно использовать действия в бизнес-процессах типа Скрипт с синхронной моделью выполнения. Это удобно использовать при разработке интеграций для изолирования логики в модулях.
4. TEAM-20246 Реализована поддержка EQL-поиска в сценариях. Теперь его можно использовать в условии поиска where по приложению:
Код:
const cu = await System.users.getCurrentUser();
// Можно использовать в корневом условии
Namespace.app.zayavki
.search()
.where("[__name] like 'test' or [__createdBy] = @p0",{"p0": cu})
.all();
// Это равносильно вот такому фильтру
Namespace.app.zayavki
.search()
.where((f,g) => g.or(f.__createdBy.eq(cu), f.__name.like('test')))
.all();
// Так же можно использовать EQL во внутреннем фильтре и комбинировать выражения
Namespace.app.zayavki
.search()
.where((f,g) => g.or(f.__createdBy.eq(cu), g.where("[__name] like 'test'")))
.all();
Важно: Запрос EQL — это строка в скрипте, она не проверяется на корректность при публикации. Поэтому любые ошибки могут привести к некорректной работе сценария. Стоит тщательно тестировать такие сценарии и использовать в запросах обработку ошибок.
Код:
try {
return await Namespace.app.zayavki
.search()
.where("[not_exist_field] like 'test' or [__createdBy] = @p0", {"p0": cu})
.all();
} catch (err) {
// Если ошибка, вернем пустой массив
return [];
}
5. TEAM-23916 К типам данных TDate, TDatetime, TTime добавлены методы сравнения afterOrEqual, beforeOrEqual.
6. TEAM-20398 Добавили методы для работы с напоминаниями:
- System.reminders.create() — создание напоминания по задаче;
- System.reminders.delete() — удаление напоминания;
- System.reminders.search() — поиск напоминаний.
7. TEAM-22985 В настройках модуля добавлена возможность обращаться к другим разделам и модулям с помощью глобальной константы Imports. Реализовано в методах API, в действиях в бизнес-процессах, в обработчике событий.
8. TEAM-23879 Добавлены методы сохранения настроек рабочего календаря в System.productionSchedule.
Пример:
Код:
// Изменим настройки рабочего календаря
const settings = await System.productionSchedule.getGeneralSettings();
settings.weekends = {
monday: false,
tuesday: false,
wednesday: false,
thursday: false,
friday: false,
saturday: true, // суббота - выходной
sunday: true, // воскресенье - выходной
}
await System.productionSchedule.saveGeneralSettings(settings);
// Удалим исключительный день из рабочего календаря
await System.productionSchedule.deleteSpecialDays([new TDate(2023, 12, 31)]);
// Создадим новый исключительный день в рабочем календаре
await System.productionSchedule.saveSpecialDays([{
date: new DateTime(2023, 12, 31),
holiday: true,
}]);