Расширение для Cursor с инструментами разработки для экосистемы 1С. Предоставляет удобный интерфейс для работы с проектами 1С через панель команд и дерево задач.
Все команды организованы по категориям и доступны через:
- Откройте панель "1C Dev Tools"
- Все команды доступны через дерево задач в нижней панели
- Все команды доступны через поиск в палитре команд
-
Информационные базы
- Создать пустую ИБ
- Постобработка обновления
- Запретить работу с внешними ресурсами
- Выгрузить в dt / Загрузить из dt
-
Конфигурация
- Загрузить из src/cf (загрузка основной конфигурации из исходников)
- Обновить из src/cf (обновление основной конфигурации из исходников которые указаны в файле build/commit/Commit.txt)
- Загрузить из 1Cv8.cf
- Выгрузить в src/cf (выгрузка основной конфигурации в исходники)
- Выгрузить обновление в src/cf (выгрузка только изменений основной конфигурации в исходники)
- Выгрузить в 1Cv8.cf
- Выгрузить файл поставки в 1Cv8dist.cf
- Собрать 1Cv8.cf из src/cf
- Разобрать 1Cv8.cf в src/cf
-
Расширения
- Загрузить из src/cfe (загрузка всех расширений из исходников, расширения делятся на подкаталоги)
- Загрузить из *.cfe
- Выгрузить в src/cfe (выгрузка всех расширений в исходники, расширения делятся на подкаталоги)
- Выгрузить обновление в src/cfe (выгрузка только изменений всех расширений в исходники, расширения делятся на подкаталоги)
- Обновить из src/cfe (обновление всех расширений из исходников которые указаны в файле build/commit/Commit.txt)
- Выгрузить в *.cfe
- Собрать *.cfe из src/cfe
- Разобрать *.cfe в src/cfe
-
Внешние файлы
- Собрать внешнюю обработку / внешний отчёт
- Разобрать внешнюю обработку / внешний отчёт
- Очистить кэш
-
Зависимости
- Инициализировать packagedef
- Установить / Удалить зависимости
-
Запуск
- Запустить Предприятие
- Запустить Конфигуратор
-
Задачи и конфигурации
- Задачи (workspace) — из tasks.json
- Конфигурации запуска — env.json, launch.json
- Cursor IDE
- Node.js версии 18.x или выше
- OneScript (oscript) - для выполнения скриптов. Ссылка https://oscript.io/
- В переменных windows окружения создать переменную oscript (указать путь C:\Program Files\OneScript\bin\oscript.exe)
- Откройте Cursor
- Нажмите Ctrl+Shift+P - установка пакета vsix
- Выберите файл
- Закройте Cursor, откройте повторно
Примеры файлов packagedef + env.json в репозитории.
Расширение автоматически активируется при открытии проекта 1С (наличие файла packagedef в корне проекта).
Настройки доступны через в "1C Dev Tools" - "Конфигурации запуска". Параметры подключения к информационной базе настраиваются в файле env.json в корне проекта:
{
"default": {
"--ibconnection": "/F./build/ib"
}
}При активации расширения 1C Dev Tools:
- Работает только по протоколу http!
- Если сервер отладки локально: выполняется попытка запуска сервера отладки dbgs.exe.
- Если сервер отладки удаленно: выполняется попытка подключения.
- В конфигураторе измените режим запуска отладки на http протокол.
Параметры в env.json:
{
"default": {
"--ibconnection": "/F./build/ib",
"--infoBase": "Имя информационной базы",
"--db-user": "Пользователь",
"--db-pwd": "Пароль",
"--root": ".",
"--workspace": ".",
"--v8version": "8.3.27",
"--v8-platform-root": "${env:PROGRAMFILES}/1cv8",
"--debug-server": "Имя компьютера сервера отладки",
"--debug-port-range": "1560:1591",
"--locale": "ru",
"--language": "ru",
"--additional": "/DisplayAllFunctions /Lru /iTaxi /TESTMANAGER",
"--ordinaryapp": "-1"
}
}Параметры в launch.json:
{
"configurations": [
{
"type": "onec",
"request": "launch",
"name": "1C: Запуск",
"debugServerHost": "localhost",
"debugServerPort": 1560,
"infoBaseAlias": "DefAlias",
"autoAttachTypes": [
"Client",
"Server"
]
}
]
}В настройках расширения можно управлять таймингами обмена с сервером отладки
Параметры настраиваются через 1c-dev-tools.debug.timings:
| Настройка | По умолчанию | Описание |
|---|---|---|
| varFetchDelayMs | 50 | Задержка между retry при пустом ответе evalLocalVariables/evalExpr |
| calcWaitingTimeMs | 100 | calcWaitingTime в RDBG — ожидание результата вычислений |
| pingIntervalMs | 50 | Интервал ping при выполнении (мс). 50 — стабильность целей |
| pingStoppedIntervalMs | 500 | Интервал ping в режиме остановки (мс). Меньше нагрузка на dbgs — цели и стек не меняются |
| stepInOutDelayMs | 40 | Задержка scheduleRefreshStackAndReveal для Step In/Out (мс) |
| immediatePingDelaysMs | [25, 50, 100] | Интервалы немедленного ping после F11/Shift+F11 для вылова callStackFormed (мс) |
| evalExprRetryDelaysMs | [50, 100] | Задержки retry evalExpr при пустом ответе (мс) |
| variablesRequestRetryDelaysMs | [50, 100, 150] | Retry при пустом ответе evalLocalVariables (мс) |
| pingDbgtgtIntervalMs | 5000 | Минимальный интервал между pingDBGTGT по одной цели (мс). Снижает нагрузку на dbgs (rtgt) |
Примечание: Локальные переменные не отображаются. Для просмотра переменных выберите необходимый кадр (процедура/функция) в дереве вызовов Call stack и добавьте переменную в панель Watch.
-
Структура — раскрывается в панели переменных (Watch) с полями и значениями.
-
Соответствие — раскрывается с парами Ключ/Значение.
-
ТаблицаЗначений — раскрывается с колонками, индексами и строками [0], [1], … с кратким значением.
-
МенеджерВременныхТаблиц — раскрывается с веткой времененных таблиц.
-
Показать значение в отдельном окне — команда для просмотра коллекций в табличном виде:
- из панели Watch: правый клик по переменной → «Показать значение в отдельном окне»;
- из редактора: выделить имя переменной (например,
ТЗ,Соот1,Запрос) → правый клик → «Показать значение в отдельном окне».
-
Выражение — вычисление произвольных выражений в контексте остановки отладки. Позволяет ввести выражение (например,
Запрос.МенеджерВременныхТаблиц.Таблицы[0]), нажать «Рассчитать» и получить результат в виде таблицы (Свойство, Значение, Тип):- кнопка "Выражение" в заголовке панели Variables (при отладке 1С);
- горячая клавиша Ctrl+Alt+E;
- Command Palette → «1C: Выражение».
Расширение опирается на структуру каталогов проекта [vanessa-bootstrap]
Рекомендуемая структура проекта:
project/
├── build/
│ ├── ib/ # Информационная база
│ └── out/ # Собранные файлы
│ └── commit/Commit.txt # Файл куда пишем наши изменения
├── src/
│ ├── cf/ # Исходники конфигурации
│ ├── cfe/ # Исходники расширений
│ ├── epf/ # Исходники внешних обработок
│ └── erf/ # Исходники внешних отчетов
├── oscript_modules/ # Зависимости oscript
├── env.json # Настройки подключения к ИБ
└── packagedef # Файл для активации расширения- Все команды выполняются в терминале Cursor для видимости вывода
- Параметр
--ibconnectionберется изenv.json(секцияdefault['--ibconnection'], по умолчанию/F./build/ib) - Пути в настройках задаются относительно корня проекта или абсолютно; при вызове платформы 1С расширение подставляет итоговые абсолютные пути
- В каталог oscript_modules/ с проектом копируем содержимое из репозитория oscript_modules/v8runner
- В файл Commit.txt пишем что поменяли, пример: e:\DATA1C\BASE\src\cf\Catalogs\Подразделения\Ext\Predefined.xml e:\DATA1C\BASE\src\cf\Documents\Сборка\Ext\ObjectModule.bsl
- за основу взят проект https://github.com/yellow-hammer/1c-dev-tools
- отладка протестирована для базы в файловом варианте на платформе 8.3.27