pie-vscode
Расширение для Visual Studio Code, которое упрощает работу с библиотекой pie при разработке конфигураций 1С.
Основные цели:
- ускорить типовые операции (загрузка/выгрузка, сборка, поднятие версий и т.п.);
- минимизировать работу в терминале за счёт кнопок и команд прямо в интерфейсе VS Code;
- упростить переключение баз 1С, с которыми работает разработчик.
Расширение умеет вызывать команды pie, объявленные в piefile.py, и работать с выбранной информационной базой 1С.
Начиная с версии 0.0.44, при наличии виртуального окружения Python в проекте команды pie запускаются через Python из venv.
Возможности
Требования
- Установленная платформа 1С:Предприятие 8 (Windows или Linux).
- Установленный Python и библиотека
pie.
- VS Code версии 1.78.0 или выше.
- (Рекомендуется) настроенный Git-репозиторий для проекта.
Установка расширения
Собрать .vsix (если ставите из исходников):
npm install
npm run compile
vsce package
В корне появится файл вида pie-vscode-0.0.45.vsix.
Установить в VS Code:
- Открыть
Расширения → меню с тремя точками → Install from VSIX...
- Выбрать полученный
.vsix.
Либо установить из Marketplace, если вы его туда публикуете.
Настройка
Настройки расширения находятся в разделе PieVscodeExt:
PieVscodeExt.UrlUpdateService
Адрес сервиса обновлений модулей.
PieVscodeExt.platformForOpenPath
Путь к бинарникам платформы 1С для запуска конфигуратора/предприятия.
Можно указывать:
- только версию платформы (например,
8.3.22.1709) — путь достроится автоматически;
- или полный путь к каталогу
bin.
PieVscodeExt.platformForDumpPath
Путь к бинарникам платформы 1С, используемый при выполнении команд pie (например, для dump, build и т.п.).
Аналогично platformForOpenPath может быть либо версией, либо полным путём до bin.
PieVscodeExt.workspaceWorking
Путь к папке, в которой разрешена работа расширения.
Если не задано — расширение работает во всех папках.
PieVscodeExt.processCount
Количество потоков для работы библиотеки pie.
PieVscodeExt.ibUser / PieVscodeExt.ibPass
Пользователь и пароль базы данных (используются в сценариях pie, если это предусмотрено).
PieVscodeExt.pathConfigXml
Путь к файлу Configuration.xml, откуда берётся версия для подстановки в текст коммита.
PieVscodeExt.PathConfigurationFile
Путь к папке с конфигурационными файлами для запуска 1С (например, конфиги диадока и прочие).
Работа с venv (Python)
Начиная с 0.0.44, если в корне workspace есть виртуальное окружение Python, команды pie выполняются через Python из venv.
Ищутся следующие каталоги в корне проекта:
Ожидаемая структура:
- Windows:
<venv>/Scripts/python.exe
- Linux:
<venv>/bin/python
Если такой python найден:
- расширение запускает
pie как модуль Python командой
"<путь к python>" -m pie <entrypoint>;
- при отсутствии venv поведение остаётся прежним:
- Windows: вызывается
pie (должен быть в PATH);
- Linux:
python3 -m pie.
Таким образом, достаточно установить библиотеку pie в venv проекта, и расширение автоматически её использует.
Пример типового сценария работы (без отладки)
- Открыть папку проекта в VS Code (репозиторий, в котором лежит
piefile.py).
- Убедиться, что:
- настроен
PieVscodeExt.platformForDumpPath / platformForOpenPath;
- при необходимости настроены
UrlUpdateService, PathConfigurationFile и др.
- При необходимости создать и активировать venv, установить библиотеку
pie:
python -m venv .venv
.venv\Scripts\activate # Windows
pip install pie
- В панели Source Control (Git) использовать кнопки:
- "Загрузить (pie load)" — загрузка конфигурации/расширения;
- "Выгрузить (pie dump)" — выгрузка;
- "Собрать (pie build)" — сборка;
- "Поднять номер версии / сборки" и др.
- В панели "Список баз 1С":
- выбрать нужную базу, сделать её текущей;
- при необходимости запустить 1С или конфигуратор;
- использовать автозапуск расширения в выбранной базе.
Отладка 1С через HTTP (тип pie-1c)
Расширение содержит встроенный адаптер отладки для 1С (HTTP‑отладка через dbgs, протокол e1crdbg).
Основные файлы: src/debug/oneCDebugAdapter.ts, src/debug/onecDebugServerClient.ts, src/debug/debugConfigurationProvider.ts.
Подробное описание протокола и архитектуры — в документации:
docs/DEBUG-ARCHITECTURE.md — общая схема, сценарии F5/attach, точки останова, переменные.
docs/DEBUG-PROTOCOL.md — детализация DAP + e1crdbg, таймауты, команды rdbg/RemoteDebuggerRunTime.
docs/PLAN-E1CRDBG-PROTOCOL.md — план развития поддержки e1crdbg.
Быстрый старт отладки
Убедитесь, что:
- установлена платформа 1С (Windows или Linux);
- в настройках VS Code заданы
PieVscodeExt.platformForDumpPath / platformForOpenPath
(путь к каталогу bin или версия платформы, см. раздел «Настройка» выше и функцию getPlatformBinPath в src/extension.ts).
В проекте с выгруженной конфигурацией 1С (или исходниками .bsl) выберите базу в панели Pie → Список баз 1С
и нажмите «Использовать текущую для работы pie».
Откройте вкладку Run and Debug (Отладка). Если конфигурации ещё нет, выберите шаблон pie-1c — расширение подставит варианты
«1C: Запуск с отладкой» и «1C: ibsrv».
Для подключения к уже запущенному dbgs/1С добавьте в launch.json конфигурацию:
{
"name": "1C: Подключиться (localhost:1550)",
"type": "pie-1c",
"request": "attach",
"debugServerHost": "localhost",
"debugServerPort": 1550,
"rootProject": "${workspaceFolder}"
}
Поставьте точку останова в нужном модуле (.bsl или выгрузка EDT) и запустите отладку:
- по F5 (launch) — расширение само запустит dbgs и клиент 1С с параметрами
/Debug -http /debuggerURL http://localhost:1550 -attach;
- или выберите конфиг
attach, если dbgs/1С уже работают.
В панели Call Stack вы увидите:
- корневой поток «Сервер отладки dbgs»;
- ниже — цели/клиентов 1С (например, «Клиент», «Клиент управляемый», «Фоновое задание» с коротким UUID).
При попадании на точку останова стек и переменные заполняются автоматически.
Дополнительные сценарии (ibsrv, тонкости точек останова, диагностика) описаны в docs/DEBUG-ARCHITECTURE.md и docs/DEBUG-PROTOCOL.md.
Обратная связь и вклад
Исходный код доступен в репозитории:
https://github.com/mussolene/pie-vscode-ext
Буду рад:
- issue с описанием багов и предложениями по улучшениям;
- pull request’ам с доработками и новыми сценариями работы с
pie.