pie-vscode
pie-vscode помогает разрабатывать конфигурации и расширения 1С в VS Code:
запускать команды pie, выбирать рабочую базу, стартовать 1С, отлаживать код
через dbgs и смотреть результаты замера производительности без ручной
перекладки файлов между инструментами.
Расширение рассчитано на ежедневную работу разработчика 1С: открыть проект,
выбрать базу, выполнить типовую команду, запустить отладку или замер и быстро
понять результат.
Требования
- VS Code версии
1.85.0 или выше.
- Установленная платформа 1С:Предприятие 8.
- Установленный Python и библиотека
pie.
- Проект с
piefile.py для команд pie.
- Для отладки: доступный
dbgs из установленной платформы 1С.
Quick Start
- Установите расширение.
- Откройте проект с
piefile.py в VS Code.
- Укажите минимальные настройки:
PieVscodeExt.platformForOpenPath
PieVscodeExt.platformForDumpPath
- Выберите базу в панели Список баз 1С.
- Нажмите Использовать текущую для работы pie.
- Выполните
pie load, pie dump, pie build или запустите 1С из панели
расширения.
После этих шагов расширение готово к базовой работе с проектом и выбранной
базой. Для F5-отладки откройте Run and Debug, выберите
1C: Запуск с отладкой, поставьте breakpoint и нажмите F5.
Если открыт .bsl файл и launch.json ещё не создан, F5 автоматически
подготовит конфигурацию pie-1c и предложит выбрать базу.
Минимальная настройка
Обязательные настройки для первого запуска:
| Настройка |
Назначение |
PieVscodeExt.platformForOpenPath |
Путь к бинарникам платформы 1С для запуска 1С, конфигуратора и dbgs. Можно указать версию платформы или полный путь к каталогу bin. |
PieVscodeExt.platformForDumpPath |
Путь к бинарникам платформы 1С для команд pie. Можно указать версию платформы или полный путь к каталогу bin. |
Остальные настройки можно оставить по умолчанию и вернуться к ним, когда
понадобятся профили, сервис обновлений, трассировка протокола или отдельные
пути конфигурационных файлов.
Установка из исходников
npm install
npm run package
Готовый VSIX будет создан в папке build с именем вида
pie-vscode-<version>.vsix.
Установить его можно через VS Code: Extensions -> ... ->
Install from VSIX....
Возможности
Работа с pie
- Запуск команд из
piefile.py кнопками в Source Control:
load, dump, build, up_version, up_build, build_at, dump_at,
old_dump, form_code_validate.
- Автоматический запуск
pie через Python из venv, .venv или env, если
виртуальное окружение лежит в корне workspace.
- Подстановка версии из
Configuration.xml в текст коммита при подъеме версии
или сборки.
- Ограничение работы расширения конкретной папкой через настройку
PieVscodeExt.workspaceWorking.
Базы 1С
- Чтение списка баз из
ibases.v8i и 1cestart.cfg.
- Выбор текущей базы для команд
pie, запуска 1С и отладки.
- Явное отображение записей, у которых путь к файловой базе больше не
существует.
- Обновление списка баз и удаление лишних записей из панели расширения.
- Запуск 1С:Предприятия, конфигуратора и автономного сервера
ibsrv для
выбранной базы.
- Закрытие процессов 1С кроссплатформенно: Windows, Linux и macOS.
Профили Pie
- Создание профилей с параметрами базы, пользователя и запуска.
- Запуск
pie load, pie dump, 1С, конфигуратора и ibsrv из профиля.
- Редактирование и удаление профилей из UI.
- Хранение паролей профилей в VS Code SecretStorage, без записи пароля в
настройки workspace.
Отладка 1С
- Встроенный DAP-адаптер
pie-1c для HTTP-отладки 1С через dbgs и протокол
e1crdbg.
- Сценарий F5: расширение запускает
dbgs, стартует 1С с параметрами отладки,
подключается к серверу, ждет debug targets и применяет breakpoints.
- Автоматическая F5-конфигурация для
.bsl файлов и проектов с
Configuration.xml.
- Attach к уже запущенному
dbgs.
- Breakpoints для
.bsl, выгрузки конфигурации, расширений, внешних обработок
.epf и отчетов .erf.
- Call Stack с целями 1С: клиент, управляемый клиент, сервер, фоновые задания,
HTTP-сервисы.
- Variables, WATCH, hover expressions и scope
Сеанс.
- Step over, step in, step out, pause и continue.
Подробный маршрут отладки, launch.json, диагностика и ограничения описаны в
docs/DEBUG.md.
Замер производительности и PFF
- Запуск и остановка замера производительности во время активной debug-сессии.
- Сохранение результата, который вернул
dbgs.
- Встроенный отчет по XML-результату замера: общее время, модули, строки,
счетчики выполнения, время и проценты.
- Readonly viewer для файлов
.pff, сохраненных конфигуратором или
инструментами 1С.
- Сортировка строк замера по времени, проценту, количеству выполнений, модулю и
номеру строки.
- Сохранение ширины, порядка, видимости колонок и выбранной сортировки таблицы.
- Фильтры по модулю, пути и тексту строки.
- Переключатели клиентских строк, серверных строк и строк-вызовов
функций/процедур.
Модули и обновления
- Получение списка доступных модулей с сервиса обновлений.
- Скачивание выбранного модуля в указанную папку.
Project hooks и команды проекта
- Локальный файл
.pie-vscode/project.json может добавить hooks к штатным
командам расширения.
- Поддержаны стадии
before, after и instead.
- Custom commands запускаются через команду Pie: Выполнить команду проекта.
- Hooks работают только в trusted workspace и требуют подтверждения для проекта.
- Скрипты запускаются отдельным Node-процессом с timeout, а вывод пишется в
Output-канал Pie Project Hooks.
Все настройки
Настройки расширения находятся в разделе PieVscodeExt.
| Настройка |
Назначение |
PieVscodeExt.platformForOpenPath |
Путь к бинарникам платформы 1С для запуска 1С, конфигуратора и dbgs. Можно указать версию платформы или полный путь к каталогу bin. |
PieVscodeExt.platformForDumpPath |
Путь к бинарникам платформы 1С для команд pie. Можно указать версию платформы или полный путь к каталогу bin. |
PieVscodeExt.UrlUpdateService |
Адрес сервиса обновлений модулей. |
PieVscodeExt.workspaceWorking |
Папка, в которой разрешена работа расширения. Если пусто, расширение работает в любом workspace. |
PieVscodeExt.processCount |
Количество потоков для команд pie. |
PieVscodeExt.ibUser |
Пользователь базы для сценариев запуска. Пароль задавайте через профиль Pie, чтобы он хранился в SecretStorage. |
PieVscodeExt.pathConfigXml |
Путь к Configuration.xml для подстановки версии в текст коммита. |
PieVscodeExt.PathConfigurationFile |
Папка с дополнительными конфигурационными файлами для запуска 1С. |
PieVscodeExt.traceDebugProtocol |
Включает XML-трассировку e1crdbg в Output-канал 1C Debug Protocol. |
PieVscodeExt.dbgsNotifyPath |
Advanced: путь к файлу --notify для запуска dbgs. Обычно не требуется. |
Рабочие сценарии
Команды pie
Если в проекте есть виртуальное окружение venv, .venv или env, расширение
запустит pie через Python из этого окружения. Для нового проекта:
python -m venv .venv
.venv\Scripts\activate
pip install pie
На Linux и macOS путь активации venv: .venv/bin/activate.
Профили
Используйте профиль Pie, если у вас несколько баз, пользователей или сценариев
запуска. Пароль профиля хранится в SecretStorage и не попадает в настройки
workspace.
Отладка и замер
Для обычной отладки достаточно сценария F5 из Quick Start. Во время активной
debug-сессии можно запустить 1C: Начать замер производительности, выполнить
сценарий в 1С и затем сохранить результат командой 1C: Завершить замер
производительности. Файлы .pff можно открыть прямо в VS Code.
Project hooks
Чтобы добавить проектные сценарии, создайте .pie-vscode/project.json:
{
"hooks": {
"pie-vscode.load": {
"before": "hooks/before-load.js",
"after": "hooks/after-load.js"
},
"pie-vscode.dump": {
"instead": "hooks/custom-dump.js"
}
},
"commands": {
"deploy-dev": {
"title": "Deploy dev",
"script": "commands/deploy-dev.js"
}
}
}
Пути скриптов считаются от .pie-vscode. Каждый скрипт получает JSON-контекст
через stdin:
const fs = require('fs');
const context = JSON.parse(fs.readFileSync(0, 'utf8'));
console.log(context.command, context.currentBase);
Для первого запуска hooks расширение спросит подтверждение. Секреты и пароли в
контекст не передаются.
Диагностика
- Ошибки запуска 1С,
dbgs, breakpoints и целей смотрите в Output-канале
Pie 1C Debug.
- XML-обмен с
dbgs включается через PieVscodeExt.traceDebugProtocol или
traceProtocol в launch.json.
- Подробная диагностика отладки находится в
docs/DEBUG.md.
Разработка
npm install
npm run verify
npm run verify запускает lint, compile, тесты, coverage gate и leak check.
Перед коммитом для staged diff используйте:
npm run check:secrets -- --staged
Обратная связь
Репозиторий: https://github.com/mussolene/pie-vscode-ext
Подходящие issue:
- ошибка запуска команды или отладки;
- база отображается не так, как ожидается;
- breakpoint, variables или замер производительности дают непонятный результат;
- нужен новый сценарий работы с
pie или 1С.