1.29

1.29

1.29.0-ms1 от 18.09.26

1.29.0-ms1
Добавлено:
  1. Реализовать отображение blob-изображений в ячейках табличного представления 285952T

    Реализована возможность отображения в табличном представлении изображений, получаемых из файлового хранилища сервера. Более подробная информация содержится в спецификации изображений из файлового хранилища сервера.

  2. Добавить метод MsgDialog.text() получения текста сообщения диалога 322934T

    В библиотеку gs-automation добавлен метод MsgDialog.text(), возвращающий текст сообщения диалога с инкапсулированным ожиданием видимости.

  3. Добавить группировку SQL-запросов в консоли браузера 312518T

    SQL-запросы в консоли браузера группируются пачками по выборкам и категориям с именем SQL-блока, а упавшие запросы выводятся красной строкой с текстом ошибки СУБД.

  4. Добавить группировку операций в консоли браузера 312518T

    Операции в консоли браузера выводятся сворачиваемыми группами с бейджем OPER, длительностью выполнения и текстом ошибки при сбое.

  5. Переработать выбор уровней в карточке «Настройки логирования» 312518T

    В карточке «Настройки логирования» у каждого тумблера отображается и выбирается свой уровень логирования из набора уровней канала, а состояние каналов восстанавливается при повторном открытии карточки.

  6. Открыть внешнему агенту чтение выборок по протоколу MCP

    Добавлен встроенный MCP-сервер только на чтение: эндпоинт /app/sys/rest/es/mcp (Streamable HTTP, JSON-RPC 2.0) даёт внешнему агенту десять инструментов — поиск выборок, их метаданные, операции, атрибуты и поля фильтра, открытие выборки с правами пользователя и постраничное чтение строк. Перечень доступных выборок задаётся серверной секцией конфигурации <mcp>, число сессий на пользователя и открытых выборок на сессию ограничено; поддерживаются решения на PostgreSQL.

  7. Реализовать метод CoreApplication#getMdiForms 323236T

    Добавлен метод ru.bitec.gtk.core.gl.CoreApplication.getMdiForms().

  8. Добавить операции над веткой дерева в интерфейс древовидного списка 319236T

    В контекстное меню древовидного списка добавлены пункты «Развернуть всю

ветку» и «Свернуть всю ветку», действующие на поддерево текущего узла. В отличие от пунктов

«Развернуть/Свернуть все дерево», они доступны и на частично загружаемом, и на рекурсивном

(курсорном) дереве: потомки каждого узла ветки дозагружаются запросами к базе данных. Перед

раскрытием ветки на таком дереве выводится запрос подтверждения. Ранее горячая клавиша

«Развернуть ветку текущего узла» (HK_TREE_OPEN_CURRENT_SUBNODE) на таких деревьях раскрывала

только один уровень вложенности — теперь раскрывается вся ветка. Добавлена горячая клавиша

«Свернуть ветку текущего узла» (HK_TREE_CLOSE_CURRENT_SUBNODE) с сочетанием по умолчанию

Ctrl+Alt+-. Более подробная информация содержится в описании операций

разворачивания ветки и

сворачивания ветки, а также в

справке по горячим клавишам.

  1. Добавить перенос описания операции в размножаемые операции 321978T

    У операций, созданных клонирующим запросом, во всплывающей

    подсказке теперь отображается описание: из поля sDescription запроса,

    а если оно не задано — описание клонирующей операции.

    Правка перенесена из 1.28.0-rc3

  2. Добавить вывод описания операции во всплывающей подсказке кнопки тулбара 321978T

    Во всплывающей подсказке кнопки тулбара теперь

    отображается описание операции (description из @Oper), если оно задано;

    иначе, как раньше, показывается название операции.

    Правка перенесена из 1.28.0-rc3

  3. Добавить нормализацию ввода в автофильтре и inline-редактировании грида

    Добавлена нормализация пробельных символов пользовательского ввода в строковых

полях. Свойство редактора trimValue (edit,

memo,

buttonsEdit,

editButton,

hyperLink)

включает нормализацию в карточке и строке списка, свойство фильтра

trimAttrValues задаёт умолчание для атрибутов

фильтра, настройка приложения

trimFilterInput — умолчание

для полей фильтров и автофильтра грида (по умолчанию включена). Значение обрезается по краям,

ставшее пустым приводится к NULL, пустое обязательное поле штатно подсвечивается; в автофильтре

грида ввод из одних пробелов условие не подставляет.

Исправлено:
  1. Исправить попадание значений показателей в чужие колонки при экспорте грида в Excel 325728T

    Исправлено попадание значений показателей в чужие колонки при экспорте грида в Excel.

    Ошибка проявлялась, когда колонки грида разложены по нескольким рядам внутри группы колонок, — например

    в универсальном отчёте, построенном по нескольким видам учёта.

    Правка перенесена из 1.27.3

  2. Исправить игнорирование прикладной выборки при выборе версии печатной формы на БД Oracle 326804T

    На БД Oracle версия печатной формы выбирается прикладной выборкой SEL_RPT_ReportVersion

    (представление VersionAtDate). Раньше метод БД, выбирающий версию, вызывал сам сервер приложений, а он

    знал и передавал только два аргумента — имя отчёта и дату, — поэтому аргументы, добавленные в решении,

    в выборе версии не участвовали. Теперь метод БД вызывает прикладная выборка, поэтому расширить состав

    аргументов или изменить правила выбора версии можно силами решения, без доработки сервера приложений.

    Правка перенесена из 1.28.0-rc4

  3. Исправить проверку доступа к прикладным пакетам из SDW 318602T

    Убрана проверка прав на прикладные пакеты из модуля SDW.

  4. Очистить java.util.ResourceBundle от ссылок на прикладные загрузчики 319302T

    Устранены причины, мешавшие выгрузке из памяти прикладных загрузчиков классов после перезагрузки кода образа решения.

  5. Добавить копирование *.md5 файлов при копировании образа решения 317450T

    Добавлено копирование *.md5 файлов при копировании образа решения в рабочий каталог. Содержимое файла solution.md из корневого каталога образа решения возвращается в результатах методов ru.bitec.gtk.core.gl.cluster.CoreClusterNodeManager.getClusterNodesAsJsonString() и ru.bitec.gtk.core.gl.cluster.CoreClusterNodeManager.getClusterNodeAsJsonString(String).

  6. Синхронизировать список выделенных записей карточного фрейма с текущей записью 324548T

    В карточном фрейме selectedRecordsCount() и selectedValue() теперь всегда соответствуют текущей записи (1 при наличии записи, 0 на пустой выборке), независимо от свойства isMultiSelect и порядка обновления/скролла.

    Правка перенесена из 1.28.0-rc4

  7. Восстановить поведение метода CoreApplicationImpl#eventBus. Проблема ——— При вызове CoreApplication#eventBus в создание экземпляра CoreEventBus всегда передавалась главная выборка приложения, из-за чего при попытке вызова метода handleEvents на события afterScroll и beforeScroll метод не видел event.representation 324184T

    Восстановлено поведение вызова application.eventbus.post(“Topic”,”Event”). Начиная с версии AS 1.26.0-ms18 метод отсылал BusEvent, источником которого становилась главная выборка приложения. Восстановлена исходная логика, в которой источником BusEvent является выборка, в коде которой получен объект application.

  8. Устранить пропадание значений tagLookup после обновления выборки 323608T

    Исправлено пропадание выбранных значений tagLookup после обновления выборки со свёрнутой панелью фильтров.

    Правка перенесена из 1.28.0-rc3

  9. Убрать канал «Скрипт» из карточки логирования в PostgreSql решениях 312518T

    В PostgreSql решениях карточка «Настройки логирования» больше не показывает канал «Скрипт», не дающий вывода.

  10. Исправить позиционирование scrollbar в grid после обновления (F5)

    Исправлено положение вертикальной полосы прокрутки в гриде после обновления страницы (F5).

    Правка перенесена из 1.28.0-rc3

  11. Исправить перемешивание строк в древовидном grid 304517T

    Исправлено перемешивание и дублирование строк в древовидном гриде после сворачивания, разворачивания и прокрутки.

    Правка перенесена из 1.28.0-rc3

  12. Починить закрытие занятых REST-сессий и захват закрывающихся

    Исправлено закрытие REST-сессий, занятых выполнением запроса: команда закрытия сессии администратором больше не завершается молчаливым отказом, а выполняется сразу после того, как запрос отпустит сессию. Обращение к закрывающейся сессии теперь возвращает 404 вместо внутренней ошибки сервера.

  13. Исправить потерю контекста операции в host-функциях скриптов 315996T

    Устранена ошибка, из-за которой обращение к функции контекста операции в квадратных скобках (например, Libs[‘ИМЯ’]) внутри вложенной процедуры паскаль-скрипта завершалось ошибкой вместо выполнения.

    Правка перенесена из 1.28.0-rc3

  14. Исправить распознавание клавиш «-» и «=» основного ряда в горячих клавишах

    Горячие клавиши с клавишами «-» и «=» основного ряда клавиатуры теперь

срабатывают: ранее их распознавание работало только для одноимённых клавиш дополнительной

клавиатуры. Затронуты все настроенные сочетания с этими клавишами, в том числе «Развернуть

текущий узел дерева», «Закрыть текущую ветку дерева» и «Развернуть ветку текущего узла».

  1. Починить закрытие простаивающих REST-сессий по таймауту

    Исправлено закрытие REST-сессий по таймауту: простаивающие просроченные сессии не закрывались вовсе и удерживали ресурсы сервера — прикладное решение и соединения с базой — до его перезапуска, тогда как закрывались, наоборот, занятые.

  2. Исправить обработку полей с датой и блобом при экспорте в Access

    Исправлен экспорт списка в формат Access: списки со столбцами дат

    и двоичных данных выгружаются, а не завершаются ошибкой создания столбцов.

  3. Добавить создание целевого каталога выгрузки при экспорте в Access

    Исправлен экспорт списка в формат Access, который не работал на инсталляциях,

    где каталог временных файлов выгрузки ещё не создан: теперь экспортёр создаёт его сам.

  4. Добавить освобождение ресурсов при ошибке экспорта в Access

    Исправлено накопление временных файлов после неудачного экспорта списка

    в формат Access: файл выгрузки теперь удаляется и при ошибке.

  5. Исправить обрыв экспорта в Access на дробных значениях BigDecimal

    Исправлен экспорт в формат Access списков, у которых числовой столбец объявлен

    типом BigDecimal: раньше дробное значение в таком столбце прерывало выгрузку. Количество знаков

    после запятой подбирается по данным списка, а значения, не помещающиеся в разрядность Access,

    округляются.

  6. Включить isCanEditText и setEditButtonEnabled в гридах

    Свойства «Разрешить ввод текста» и доступность кнопок редактора теперь действуют в списках, а не только в карточках.

    Правка перенесена из 1.28.0-rc2

  7. Устранить схлопывание текста в ячейках табличного представления 314930T

    Устранена проблема, которая приводила к схлопыванию текста в ячейках табличного представления.

    Правка перенесена из 1.27.1

  8. Исправить переоткрытие браузера сессий при смене пароля и сервера

    Исправлено переоткрытие браузера сессий после смены пароля или сервера.

  9. Исправить поведение ресайзинга элементов FlexBoxLayoutContainer 311094T

    Исправлено поведение ресайзинга дочерних элементов Flex-компоновщика в случае, если у него имеются элементы с фиксированными размерами.

    Правка перенесена из 1.28.0-rc1

Изменено:
  1. Обновить jackcess до версии 4.0.11 и заменить commons-lang 2.0 на commons-lang3

    Обновлены библиотеки зависимостей для экспорта данных выборки в Access

  2. Изменить gtk-шлюз выполнения Jexl-скриптов и добавить информацию об источнике скрипта 316822T

    Изменён gtk-шлюз выполнения Jexl-скриптов. Вместо методов: “ru.bitec.app.gtk.jexl.session.Gtk_JexlPkg$.jexlScript.eval”, “ru.bitec.app.gtk.jexl.gl.Gtk_JexlLib$.jexlScript.eval” вызываются: “ru.bitec.app.gtk.jexl.session.Gtk_JexlGatePkg$executeJexl”, “ru.bitec.app.gtk.jexl.gl.Gtk_JexlGateLib$executeJexl”. Добавлена информация об источнике скрипта: SSH, REST, SOAP, WebSocket, RichClient.

  3. Опубликовать в GTK Core Api недостающие константы ключей сведений о рабочих сеансах

    Добавлены класс констант ru.bitec.gtk.core.gl.cluster.CoreWorkSessionManager.Ct.Attributes.WorkSessionInfo; В класс констант ru.bitec.gtk.core.session.WorkSessionCtx.Ct добавлены недостающие значения.

  4. Добавить в сведения узла кластера информацию об образах решения 317450T

    1. В результаты методов ru.bitec.gtk.core.gl.cluster.CoreClusterNodeManager.getClusterNodesAsJsonString() и ru.bitec.gtk.core.gl.cluster.CoreClusterNodeManager.getClusterNodeAsJsonString(String)— добавлены ключи: “nodeCurrentDate”, “nodeTimeZone”, “nodeTimeZoneOffset”, “solutions/images/loadDate”, “solutions/images/isObsolete”, “solutions/images/md5”, “solutions/images/id”. 2. В результаты методов ru.bitec.gtk.core.gl.cluster.CoreWorkSessionManager.getWorkSessionsAsJsonString() и ru.bitec.gtk.core.gl.cluster.CoreWorkSessionManager.getWorkSessionsAsJsonString(String) — добавлен ключ “solutionImageId”.

  5. Переименовать коллекцию изображений navigation_hub в navhub #317480T

    Коллекция изображений ‘navigation_hub’ переименована в ‘navhub’

  6. Добавить новую коллекцию изображений navigation_hub #316519T

    Добавлена векторная коллекция изображений navigation_hub.