v0.3.8
Главный фокус — кроссплатформенность (Windows), исправления работы с хранилищем и MCP, плюс ощутимый прирост производительности на больших конфигурациях.
Кроссплатформенность
Регистрация информационных баз на Windows
- Добавлен обход вложенных
1cestart.cfgчерез директивуCommonCfgLocation(раньше читался только корневой файл). - Поддержка устаревшего пути
%ALLUSERSPROFILE%\Application Data\1C\1CEStart\(Windows XP-стиль) — на корпоративных машинах этот путь до сих пор встречается. - Чтение
.cfgс автодетектом кодировки: UTF-8 с BOM, UTF-16 LE, fallback наwindows-1251при невалидных байтах. getEnvironmentVariableтеперь работает case-insensitive —process.env.APPDATAvsprocess.env.appdataбольше не теряются.- Корректное разрешение mixed-style путей: если
1cestart.cfgсодержитC:\…\common.v8i, путь резолвится черезpath.win32независимо от платформы драйвера.
Импорт конфигурации на Windows
fs.renameSyncпри импорте/обновлении больше не падает из-за блокировок файловых дескрипторов антивирусом, file watcher'ами VS Code и индексатором Windows — обрабатываютсяEPERM/EACCES/EBUSYв дополнение кEXDEV, операция корректно откатывается на per-file копирование.- Безопасный откат: если восстановление из бэкапа после сбоя само упало, исходная ошибка пробрасывается без потери резервной копии.
Тёмная тема Windows
- Иконки метаданных в универсальной панели больше не оставались светлыми в тёмной теме на Windows. Механизм
<picture media="prefers-color-scheme">заменён на штатный для VS Code селекторbody.vscode-darkс CSS-переменными--icon-light/--icon-dark. Теперь иконки переключаются вместе с темой VS Code, а не с темой ОС.
Исправления ошибок
Хранилище конфигурации
Полная переработка RepositoryCommandRunner:
- Команды хранилища исполняются напрямую через
DESIGNER1cv8.exe, а не через прослойку CLI на Node — устранены ложные срабатывания, связанные с разрешениемprocess.execPath. - Сборка аргументов командной строки разнесена на
appendConnectionDesignerArgs/appendRepositoryDesignerArgs/buildCommandDesignerArgs— каждая группа аргументов тестируется отдельно. - Чтение
/Out-лога с автодетектом кодировки (pickMostReadableTextдля UTF-8/UTF-16/win1251), лог пишется во временный каталог и попадает в Output-канал при ошибке.
MCP: контракты свойств и подсистем
- Полный контракт свойств для регламентных заданий (ScheduledJob) и штатное создание объекта через MCP.
- Нормализация
MethodNameрегламентного задания в канонический форматCommonModule.Модуль.Метод. - Запрет на простую запись типизированных XML-значений через
set_property— теперь MCP-клиент получает осмысленную ошибку вместо порчи XML. - Точечный MCP-инструмент изменения состава подсистем (раньше требовался полный перезапис подсистемы).
- Свойства штатно создаваемых объектов и дочерних элементов теперь возвращаются полностью.
Универсальная панель
openNodeIds/loadingNodeIds: реактивныеSet<string>заменены на иммутабельныйRecord<string, true>. Раскрытие узла больше не вызывает двойной ре-рендер всего дерева; Vue трекает только конкретный ключ, а не «весь Set».- O(1) поиск узла через
nodeIndex: Map, перестраиваемую вwatchEffect— раньше каждый клик по контекстному меню запускал рекурсивный обход дерева. - Постоянный поллинг статуса автономного сервера (каждые 2 с) заменён на burst-режим: 1 запрос в секунду на 8 секунд после команды управления сервером.
- Утечка
setTimeoutв дебаунсе поиска при размонтировании панели — исправлена.
Контекстное меню
- Smart-позиционирование: меню больше не уходит за границы viewport, при необходимости поднимается выше точки клика или прижимается к краю.
- Авто-
max-heightдля длинных меню — содержимое прокручивается, а не обрезается. - Добавлена поддержка текстовых макетов (kind =
TextDocument) — открываются в редакторе как обычный текст.
Макеты с табличной частью
- Дочерние макеты, объявленные внутри табличной части справочника/документа, корректно отображаются в дереве (раньше пропадали из-за неверного разрешения owner-узла).
Производительность
Под капотом MCP и универсальной панели:
- Batch git-статус: один вызов
git status --porcelain --untracked-files=allпрогревает карту для всего workspace вместо per-file проверок. На Windows одинspawn gitстоит 50–200 мс — на 1000+ объектов дерева это давало секунды задержки при первом раскрытии. - LRU-кэш
parseObjectXmlпо(xmlPath, mtimeMs)ёмкостью 500 — в одной MCP-транзакции один XML парсился по 2–3 раза (path resolver → metadata info → update property), теперь — один раз. - Точечная инвалидация кэша git/XML после мутаций вместо полного сброса.
Другие улучшения
- MCP-доработка: новый сервис
CanonicalNamesдля канонических имён метаданных,PlatformTypeRegistry, новые батчевые инструменты, документацияdocs/mcp-paths.md. - Инструменты форм и ролей: декомпозиция
RoleRightsService(999 → 6 файлов:RoleCompileService,RoleInfoService,RoleRightsEditService,RoleValidateService,RoleRightsXml,RoleDefaultRolesService) иFormToolsServiceна отдельные сервисы. - Интеграция с Claude: доработан
AiSkillsInstaller, добавлены тесты установки скиллов. - BSL: обрамление и форматирование диапазона: расширены команды Surround (
Окружить → Если/Иначе/Попытка/Пока/Для каждого/Процедура/Функция/Область), добавлена интеграция с range-formatter LSP.
Совместимость
Без миграционных шагов. Реестр баз 1С и кэш git/XML прогреваются автоматически при первом запуске.