Управление конфигурациями 1С — v0.3.9.160
Серия из пяти изменений (0.3.9.156–0.3.9.160) по пяти открытым issues автора:
горизонтальная прокрутка списка баз (#309), вызов rac единым токеном host:port в
мониторе серверов 1С (#324), доработки окна «Проверка обновлений» (#323), связь базы с
типовой конфигурацией (#322) и окно «Типовые конфигурации» (#321). Каждое изменение
реализовано на обеих платформах (Windows/WPF и Linux/Avalonia).
Изменения
-
Горизонтальная прокрутка: полоса доезжает до конца строк, а не суммы колонок
(0.3.9.156, #309) — фактическая ширина строк дерева была больше расчётного
минимума контента (ExtentWidth < реальной ширины строк), поэтому последняя колонка
(«№ релиза») оставалась недостижимой, а «двигать полосу было некуда». Минимум контента
теперь считается как максимум расчётной суммы колонок и фактической желаемой ширины
первых строк (замер сетки строки с бесконечной шириной): Windows/WPF — новый кэш
_treeMinWidthContentс пересчётом в точках применения настроек колонок и при смене
верхней видимой строки во время вертикальной прокрутки; Linux/Avalonia — фактическая
ширина первой строки замеряется после материализации строк и учитывается в
SyncListWidthToViewportдополнительно кExtent.Width. Анти-регрессы #255 (ложной
полосы нет, когда всё помещается) и #214 (синхронная прокрутка заголовков) сохранены;
добавлены тестыListMinWidthCalculatorTests. -
Монитор серверов 1С: rac принимает точку подключения единым токеном
host:port
(0.3.9.157, #324) — команды монитора завершались ошибкой
«Ошибка разбора параметра: --host=localhost»:RacClient.BuildArgumentsсобирал точку
подключения двумя раздельными аргументами--host=addrи--port=N, а rac новой
платформы принимает единый токен первым аргументом. Теперь команда имеет вид
rac.exe localhost:27545 cluster list(при порте ≤ 0 — толькоhost, при пустом
адресе — без токена; адрес с пробелами остаётся одним токеном черезArgumentList).
Логин/пароль по-прежнему передаются как--user=/--password=, маскирование пароля в
журнале сохранено. Дополнительно исправлено вертикальное выравнивание текстов
монитора по центру (WPF — явный стиль заголовков, Avalonia —
VerticalContentAlignment=CenterиMinHeight=36у строк). -
«Проверка обновлений» (F9): модальное окно, читаемые кнопки и понятные ошибки
(0.3.9.158, #323) — окно было не модальным (уходило под главное и не блокировало
его), кнопка «Начать проверку» обрезалась при крупных шрифтах/масштабировании, поля
«Последняя версия» и «Ссылка на каталог релизов» после проверки не обновлялись, а
ошибки показывались ключами локализации без перевода. Исправлено:ShowDialog()с
владельцем (Avalonia уже был модальным — подтверждено), ширины кнопок — только
минимальные (180/160/130), окно увеличено (760×580 / 720×580), поля обновляются
после каждой проверки на обеих платформах, ключи локализации переводятся, отказ в
доступе (401/403) и перенаправление наlogin.1c.ruраспознаются отдельно с
подсказкой проверить логин/пароль. Успешный результат проверки сохраняется в кэш —
колонка «Обновление» в «Центре обслуживания» показывает последний результат. -
«Связать с конфигурацией»: редакции при автоопределении, редактируемый сегмент
адреса и автосвязь по имени базы (0.3.9.159, #322) — четыре проблемы окна: список
редакций оставался пустым при уже определённой связи, окно не было модальным,
сегмент адреса (.../project/<ник>) нигде не показывался и не правился, а «Определить
версию» не связывала базу с типовой конфигурацией. Исправлено: редакции заполняются и
при открытии окна, и при смене конфигурации (ApplyConfigSelection); модальность с
владельцем (Avalonia — дополнительно исправлена потеря начальных значений при
построении UI); добавлено редактируемое поле «Сегмент адреса (ник)» (сохраняется
за базой, при F9 подставляется в адрес вместо ника конфигурации); «Определить версию»
автоматически сопоставляет имя конфигурации базы со списком типовых и подставляет
конфигурацию, редакцию (по префиксу версии) и адрес. -
«Типовые конфигурации»: отдельное окно правки, JSON-хранилище и защита встроенных
данных (0.3.9.160, #321) — правка предопределённой конфигурации изменяла общие
внутренние экземпляры, из-за чего изменённые номера «расползались» по «Актуальным
релизам», проверке F9 и окну «Связать с конфигурацией»; кнопка «Правка» разворачивала
редактор «два в одном» внутри окна списка, а пользовательские конфигурации хранились
в общемsettings.jsonи терялись. Исправлено: кнопки «Изменить»/«Добавить» открывают
отдельное модальное окноConfigTypeEditWindow(правка на копии, применение только по
«Сохранить»), предопределённые конфигурации отображаются только для чтения (★) без
«Изменить»/«Удалить»; пользовательские конфигурации хранятся в отдельном читаемом
файлеcustom_config_types.json(UTF-8, без\uXXXX, с автопереносом старых
настроек); все потребители читают список через единый загрузчик
ICustomConfigTypesStore.LoadAll(); добавлены подписи и пояснения окна.
Файлы
| Платформа | Файл | Размер |
|---|---|---|
| Windows x64 (self-contained, один файл) | ConfigurationManagement.exe |
~82 МБ (82 576 491 б) |
| Linux x64 (self-contained, один файл) | ConfigurationManagement-linux-x64 |
~51 МБ (51 485 615 б) |
Linux: chmod +x ConfigurationManagement-linux-x64 && ./ConfigurationManagement-linux-x64.
Версия сборки: 0.3.9.160. Полная история — в CHANGELOG.md.
Тесты: 720/720.