Спасибо за интерес к 1C: Platform Tools. Проект развивается как расширение VS Code для повседневной разработки 1С: команды vanessa-runner, панели проектов и артефактов, дерево метаданных, TODO, отладка и интеграция с AI/MCP.
- Сообщить об ошибке через bug report.
- Предложить функцию через feature request.
- Исправить баг, добавить тесты, улучшить фичу или документацию.
- Помочь проверить работу на разных версиях платформы 1С, ОС и сценариях запуска.
Проблемы безопасности отправляйте по правилам из SECURITY.md, не через публичные Issues.
- Node.js
20.xили новее, VS Code1.125.0или новее, Git. - Для ручной проверки команд 1С: платформа 1С:Предприятие, OneScript, OPM и vanessa-runner.
- Для отладки 1С: .NET 8.
- Для дерева метаданных: JDK/JRE 21; при настройках по умолчанию расширение скачивает portable JRE само.
Рабочий цикл: npm ci → F5 (Extension Development Host) → в новом окне открыть проект 1С с packagedef. Скрипты сборки и тестов — в package.json и задачах VS Code.
Ключевые точки входа:
src/
├── extension.ts # re-export точки входа
├── app/
│ ├── activate.ts # активация расширения
│ ├── bootstrapApp.ts # сборка приложения
│ ├── register*Flow.ts # подключение крупных фич
│ └── projectLifecycle.ts # контекст проекта 1С
├── commands/
│ ├── baseCommand.ts # базовый класс команд
│ ├── commandRegistry.ts # регистрация core-команд
│ └── *Commands.ts # доменные команды vrunner и сервиса
├── features/
│ ├── tools/ # дерево «Инструменты 1С», избранное, помощь
│ ├── projects/ # панель «Проекты 1С»
│ ├── artifacts/ # панель «Артефакты 1С»
│ ├── metadata/ # дерево метаданных, свойства объектов, ER
│ ├── todo/ # TODO-панель и сканер
│ └── debug/ # DAP-интеграция
├── shared/ # инфраструктура, vrunner, IPC, логирование
├── utils/ # общие утилиты
├── webviews/ # webview-код
└── test/ # тестыПолезные файлы:
src/features/tools/treeStructure.ts— единый источник групп дерева Инструменты 1С и команд избранного.src/features/tools/commandNames.ts— пользовательские названия команд.src/shared/vrunnerManager.ts— запуск vanessa-runner.src/shared/projectStructure.ts— структура проекта для команды инициализации.src/shared/logger.ts— логирование в Output.package.json— contribution points VS Code: команды, панели, настройки, walkthrough.resources/skills/— навыки для AI-агентов.walkthrough/— страницы onboarding в VS Code.
- Пишите на TypeScript и избегайте
any. - Используйте типы из
@types/vscode. - Импорты держите в начале файла.
- Для VS Code API и команд vrunner ориентируйтесь на существующие паттерны в коде:
BaseCommand,VRunnerManager. - Не используйте
console.log/console.errorв production-коде; используйтеlogger(скоуп на модуль:logger.scope('компонент')). - Комментарии в коде и сообщения пользователю пишите на русском.
- UI-тексты должны быть короткими и полезными: без внутренних терминов, планов реализации и длинных пояснений.
- Не добавляйте legacy/fallback-совместимость без явной необходимости.
- XML метаданных не правьте вручную из TypeScript; операции с метаданными должны идти через md-sparrow.
- Новые команды добавляйте в
package.json,src/features/tools/commandNames.tsи нужный доменный модуль. - Если команда должна быть в дереве Инструменты 1С, добавьте её в
TREE_GROUPS. - Для новых панелей добавляйте view/container в
package.json, runtime-регистрацию в соответствующей feature-папке и flow вsrc/app. - Кнопка Настройки в панели должна открывать релевантный раздел настроек.
- Все настройки расширения должны открываться с фильтром
@ext:yellow-hammer.1c-platform-tools.
Два компонента живут в отдельных репозиториях и не бандлятся в VSIX — расширение скачивает их с GitHub Releases в рантайме. Для разработки самого компонента соберите его локально и укажите путь в настройках:
| Компонент | Репозиторий | Локальная сборка | Настройки (раздел «Внешние компоненты») |
|---|---|---|---|
| Адаптер отладки (DAP) | onec-debug-adapter | dotnet build -c Release |
1c-platform-tools.components.adapterFile — путь к OnecDebugAdapter.dll, components.adapterAutoload: false |
| Дерево метаданных | md-sparrow | gradlew shadowJar |
1c-platform-tools.components.metadataJarFile — путь к md-sparrow-*-all.jar, components.metadataJarAutoload: false |
После изменения компонента достаточно пересобрать его и перезапустить сессию отладки (адаптер) или обновить дерево (md-sparrow) — переустановка расширения не нужна.
Используйте Conventional Commits на русском языке:
feat(metadata): добавить фильтр по подсистемам
fix(projects): исправить открытие проекта из пустого окна
docs(readme): обновить описание панелейПеред PR:
- Проверьте, что изменения сфокусированы на одной задаче.
- Запустите
npm run lint,npm run compileиnpm test; для изменённых фич добавьте или обновите тесты вsrc/test/. - Обновите документацию (
README.md,docs/, walkthrough, навыки), если менялось пользовательское поведение.CHANGELOG.mdформируется релизным процессом — вручную его менять не нужно. - Заполните шаблон PR: что изменилось, как проверено, какие issues связаны.
Мейнтейнеры могут попросить доработки или дополнительные проверки.
Релиз выпускается тегом vX.Y.Z (git tag v0.1.0 && git push origin v0.1.0) или вручную: Actions → workflow Release → Run workflow (параметры: version, skip_publish, draft, prerelease). Workflow обновит версию в package.json, сгенерирует CHANGELOG.md из Conventional Commits, создаст GitHub Release и опубликует расширение в маркетплейсы.
Для публикации в секретах репозитория (Settings → Secrets and variables → Actions) должны быть заданы токены:
VSCE_PAT— VS Code Marketplace: Azure DevOps → Personal Access Tokens → New Token → Scopes: Custom defined → Marketplace: Manage;OVSX_TOKEN— Open VSX Registry: open-vsx.org → Access Tokens → Generate Token (если namespace не создан — сначала создайте его в Namespaces и запросите ownership через issue в EclipseFdn/open-vsx.org).
- Discussions
- Issues
- Email: i.karlo@outlook.com
Будьте вежливы, конструктивны и уважайте время других участников. Критика должна помогать улучшить проект.
Внося вклад в проект, вы соглашаетесь с тем, что ваш вклад распространяется по MIT License.