Описание релизов/0.45.0
Содержание
Критичные изменения
Формы
Для прикладных приложений:
Удалено публичное API "IFormsDataService.getUpdatedBsModel" - вместо него, следует использовать getChangeControlValue(..) и generateBsModelFromOnlyChangeElements(..) в одном потоке.
Выставление значения в поле формы
При установке значения в поле через выражение нельзя использовать данное поле в качестве операнда выражения. Будет осуществляться проверка на цикл и такая форма не откроется.
1 {
2 "expression": "if(isNullOrEmpty([1]),Today(), [1])",
3 "returnFirstParameterValue": false,
4 "operands": [
5 {
6 "uiSourceId": 21,
7 "discriminator": "EntryExpressionUiSourceParameter",
8 "id": 1,
9 "allowMultipleValues": false
10 }
11 ],
12 "id": 2011,
13 "name": "Установить текущую дату",
14 "code": null
15 }
В случае выставления значения в поле при открытии, необходимо настраивать через действие дискриминатор 'CalculateControlValueAction'. При установке значения по умолчанию в поле, источник которого атрибут справочника, необходимо задать значения атрибуту в источнике.
Новая функциональность
Формы
Возможность настроить проверку на шаг и состояние подпроцесса
Реализована возможность в выражениях в формах вычислять состояния и шаги подпроцесса. Для вычисления в выражениях необходимо использовать дискриминатор "EntryExpressionWorkflowContainsStatesBooleanParameter", а при настройке у источника согласования "WorkflowStepValidateRules".
- Реализована возможность в выражениях в формах настроить проверку текущего состояния подпроцесса. Далее данное выражение возможно использовать для проверок в рамках согласования, правил видимости/редактируемости и прочего.
Для вычисления в выражениях необходимо использовать операнд "EntryExpressionWorkflowContainsStatesBooleanParameter".
Пример указания состояния подпроцесса в операндах выражения:
1 "operands": [
2 {
3 "workflowSourceId": 1,
4 "workflowStateIds": [
5 2
6 ],
7 "subProcess": {
8 "workflowId": 201681,
9 "parameters": [
10 {
11 "id": 1,
12 "expressionId": null,
13 "value": 1
14 }
15 ]
16 },
17 "discriminator": "EntryExpressionWorkflowContainsStatesBooleanParameter",
18 "id": 1,
19 "allowMultipleValues": false
20 }
- Возможность настроить проверку подпроцесса у источника. При необходимости осуществить проверку при выполнении определенного шага необходимо в настроить у источника согласования "ValidateRules", где задается шаг и проверка, которую необходимо провести (например: должны быть заполнены какие-то поля при выполнении шага).
Согласование
Отправка уведомлений из согласований на разных языках
Реализована отправка уведомлений из согласования на языке пользователя.
Уведомление отправляются пользователю на том языке, который определен в атрибутах данного пользователя.
Для настройки возможности отправки локализованных уведомлений согласования необходимо локализовать текста уведомлений в настройках согласования.
В поле "language" необходимо прописать необходимый язык, а в поле "value" - текст уведомления на заданном языке.
Пример настройки локализации:
1 "localizedTitle": {
2 "defaultValue": "Default title",
3 "items": [
4 {
5 "language": "ru",
6 "value": "Ru title"
7 },
8 {
9 "language": "en",
10 "value": "En title"
11 }
12 ]
13 },
14 "localizedBody": {
15 "defaultValue": "Default body",
16 "items": [
17 {
18 "language": "ru",
19 "value": "Ru body"
20 },
21 {
22 "language": "en",
23 "value": "En body"
24 }
25 ]
26 },
[тут будет ссылка на пример]
Навигатор
Работа с деревом объектов навигатора через клавиатуру
Для центрального дерева в навигаторе:
- При нажатии на кнопки вверх/вниз в режиме просмотра "Список" меняется выделение на вышележащий/нижележащий элемент
- При нажатии на кнопки вверх/вниз/вправо/влево в режиме просмотра "Плитка" меняется выделение на соответствующий элемент
- При нажатии на Enter на папке происходит открытие данной папки и выделение первого элемента в ней
- При нажатии на Backspace производится переход на уровень выше и выделение встает на папку, из которой был совершен переход.
Пользовательский навигатор
Отображение доступных языков
Если в конфигурационном файле для пользовательского навигатора определены один или два языка, то их отображение не изменится, то есть языки будут расположены перечислением в одной строке.
Если же языков 3 и более, они отображаются раскрывающимся списком.
Возможность открыть метаобъект
Если в форме c помощью действия OpenMetaObjectAction на кнопки настроено открытие метаобъектов, таких как форма или отчет, то открыть этот метаобъект можно через пользовательский навигатор.
Файловое хранилище
Возможность хранения файлов репозитория в одном бакете S3
Сервис файлохранилища(FileStorage) теперь поддерживает возможность сохранять файлы разных приложений в одном бакете, но в разных папках. Для этого в конфигурационный файл добавлен признак, который по умолчанию выключен:
- UseOneBucket - Признак, что для хранения файлов по всем приложениям используется один бакет.
- BucketName - Наименование бакета, которое используется для хранения файлов по всем приложениям. Данный бакет будет использоваться только при включении признака UseOneBucket.
Данная возможность была реализована для переноса данных на Яндекс.Cloud. В Яндексе имя бакета(корзины) должно быть уникальным, соответственно возникала проблема, так как наименования бакетов совпадают с наименованием приложения.