1c-devtools-cursor
Cursor IDE extension providing development tools for 1C:Enterprise 8 ecosystem with command palette, task tree, and debugging support
How do I install this agent skill?
npx skills add https://github.com/reason-machines/devtools-skills --skill 1c-devtools-cursorIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides development tools for the 1C:Enterprise ecosystem, facilitating command execution via the OneScript (oscript) engine and managing local project files. While the functionality is standard for developer tools, it introduces a surface for indirect prompt injection through project configuration and source files, and involves the execution of external scripts.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
1C Dev Tools for Cursor
Skill by ara.so — Devtools Skills collection.
Extension for Cursor IDE that provides comprehensive development tools for the 1C:Enterprise 8 ecosystem. Offers command palette integration, task tree navigation, configuration management, extension handling, and BSL debugging capabilities.
What It Does
1C Dev Tools integrates 1C:Enterprise development workflow into Cursor IDE:
- Information Base Management: Create, update, export/import databases
- Configuration Operations: Load/unload configurations from sources (src/cf), build .cf files
- Extension Management: Work with multiple extensions (src/cfe), compile .cfe files
- External Files: Build and disassemble external reports/processors
- Dependency Management: Initialize and manage packagedef dependencies
- Launch Tools: Start Enterprise or Configurator from IDE
- BSL Debugging: Attach debugger with variable inspection, watch expressions, and call stack navigation
All commands accessible through:
- 1C Dev Tools panel
- Command palette (Ctrl+Shift+P)
- Task tree in bottom panel
Installation
Prerequisites
- Node.js 18.x or higher
- OneScript (oscript) - Script execution engine: https://oscript.io/
- Windows environment variable: Create
oscriptpointing toC:\Program Files\OneScript\bin\oscript.exe
Install Extension
- Open Cursor IDE
- Press
Ctrl+Shift+P→ "Extensions: Install from VSIX" - Select the
.vsixfile - Restart Cursor
Project Setup
Extension auto-activates when packagedef file exists in project root.
Project structure:
project-root/
├── packagedef # Project manifest (required for activation)
├── env.json # Connection parameters
├── launch.json # Debug configurations
├── tasks.json # Custom tasks
├── oscript_modules/ # OneScript modules override
├── src/
│ ├── cf/ # Configuration sources
│ └── cfe/ # Extension sources (subdirectories per extension)
└── build/
├── ib/ # Information base
└── commit/
└── Commit.txt # Changed files list for incremental updates
Configuration
env.json - Connection Parameters
Create env.json in project root:
{
"$schema": "https://raw.githubusercontent.com/vanessa-opensource/vanessa-runner/develop/vanessa-runner-schema.json",
"default": {
"--ibconnection": "/F./build/ib",
"--infoBase": "MyInfoBase",
"--db-user": "Admin",
"--db-pwd": "",
"--root": ".",
"--workspace": ".",
"--v8version": "8.3.27",
"--v8-platform-root": "C:/Program Files/1cv8",
"--debug-server": "localhost",
"--debug-port-range": "1560:1591",
"--locale": "ru",
"--language": "ru",
"--additional": "/DisplayAllFunctions /Lru /iTaxi /TESTMANAGER",
"--ordinaryapp": "-1"
}
}
Key parameters:
--ibconnection: File base path (/F./build/ib) or server (/S<server>\<base>)--v8version: Platform version (e.g.,8.3.27)--v8-platform-root: Installation path--debug-server: Debug server hostname (use computer name for local)--debug-port-range: RDBG port range
launch.json - Debug Configurations
Create .vscode/launch.json:
{
"configurations": [
{
"type": "onec",
"request": "launch",
"name": "1C: Launch with background jobs",
"debugServerHost": "localhost",
"debugServerPort": 1560,
"infoBaseAlias": "DefAlias",
"autoAttachTypes": [
"Client",
"Server",
"Job",
"JobFileMode"
]
},
{
"type": "onec",
"request": "launch",
"name": "1C: Launch without background jobs",
"debugServerHost": "localhost",
"debugServerPort": 1560,
"infoBaseAlias": "DefAlias",
"autoAttachTypes": [
"Client",
"Server"
]
},
{
"type": "onec",
"request": "attach",
"name": "1C: Attach",
"debugServerHost": "localhost",
"debugServerPort": 1560,
"infoBaseAlias": "DefAlias",
"autoAttachTypes": [
"Client",
"Server"
]
}
]
}
autoAttachTypes options: Client, ManagedClient, WebClient, ComConnector, Server, ServerEmulation, WebService, HttpService, OData, Job, JobFileMode, MobileClient, MobileServer, MobileJobFileMode, MobileManagedClient, MobileManagedServer
Debug Server Settings
Extension automatically manages dbgs.exe debug server:
- Local: Auto-starts server on activation
- Remote: Attempts connection
- Protocol: HTTP only (configure in Configurator)
Fine-tune debug timings via settings (1c-dev-tools.debug.timings):
{
"1c-dev-tools.debug.timings": {
"varFetchDelayMs": 50,
"calcWaitingTimeMs": 100,
"pingIntervalMs": 50,
"pingStoppedIntervalMs": 500,
"stepInOutDelayMs": 40,
"immediatePingDelaysMs": [25, 50, 100],
"evalExprRetryDelaysMs": [50, 100],
"variablesRequestRetryDelaysMs": [50, 100, 150],
"pingDbgtgtIntervalMs": 5000
}
}
Key Commands
Access via command palette (Ctrl+Shift+P → "1C: ..." or "1С: ...") or 1C Dev Tools panel.
Information Base
1C: Create empty infobase
1C: Post-update processing
1C: Prohibit external resources
1C: Export to dt / Import from dt
Configuration Management
Load/Export sources:
1C: Load from src/cf # Load entire configuration from sources
1C: Update from src/cf # Incremental update (uses build/commit/Commit.txt)
1C: Export to src/cf # Full export to sources
1C: Export update to src/cf # Export only changes
Binary files:
1C: Load from 1Cv8.cf # Import .cf file
1C: Export to 1Cv8.cf # Export configuration
1C: Export distribution 1Cv8dist.cf
1C: Build 1Cv8.cf from src/cf
1C: Disassemble 1Cv8.cf to src/cf
Extension Management
Source operations:
1C: Load from src/cfe # Load all extensions from sources
1C: Export to src/cfe # Export all extensions to sources
1C: Export update to src/cfe # Export only changed extensions
1C: Update from src/cfe # Incremental update (uses Commit.txt)
Binary operations:
1C: Load from *.cfe
1C: Export to *.cfe
1C: Build *.cfe from src/cfe
1C: Disassemble *.cfe to src/cfe
External Files
1C: Build external report/processor # Compile external file
1C: Disassemble external report/processor
1C: Clear cache
Dependencies
1C: Initialize packagedef # Create dependency manifest
1C: Install dependencies
1C: Remove dependencies
Launch
1C: Launch Enterprise # Start client application
1C: Launch Configurator # Open Configurator
Debugging BSL Modules
Starting Debug Session
- Set breakpoints in
.bslfiles (click left margin) - Press
F5or Run → Start Debugging - Select configuration: "1C: Launch with background jobs" or "1C: Attach"
- Extension connects to
dbgs.exeon specified port - Launch 1C:Enterprise (manually or via command)
Variable Inspection
Watch panel (add expressions):
- Right-click variable in editor → "Show value in separate window"
- Click "Calculate value" button in Watch panel header
- Enter expression:
Query.TemporaryTablesManager.Tables[0]
Supported types:
- Структура (Structure): Expands with fields and values
- Соответствие (Map): Expands with Key/Value pairs
- ТаблицаЗначений (ValueTable): Shows columns, indexes, rows
[0],[1], etc. - МенеджерВременныхТаблиц (TempTablesManager): Shows temporary tables tree
Calculate Expression
Right-click in editor → "Calculate value":
// In stopped context, evaluate:
Query.TemporaryTablesManager.Tables[0].GetColumns()
Result.Find("MyValue", "FieldName")
Collection.Count() > 10
Result displays in table: Property | Value | Type
Call Stack Navigation
Note: Local variables don't display in default view. To inspect:
- Select stack frame (procedure/function) in Call Stack panel
- Add variable to Watch panel
- Variable evaluates in selected frame context
Step Commands
F10 - Step Over
F11 - Step Into
Shift+F11 - Step Out
F5 - Continue
Shift+F5 - Stop
Extension auto-refreshes stack and variables with optimized ping intervals.
Common Patterns
Initial Project Setup
# 1. Create project structure
mkdir my-1c-project
cd my-1c-project
mkdir -p src/cf src/cfe build/ib build/commit
# 2. Initialize packagedef
# Open in Cursor, press Ctrl+Shift+P → "1C: Initialize packagedef"
# 3. Create env.json (see Configuration section)
# 4. Create empty infobase
# Ctrl+Shift+P → "1C: Create empty infobase"
Load Configuration from External Source
# 1. Place 1Cv8.cf in project root
# 2. Ctrl+Shift+P → "1C: Load from 1Cv8.cf"
# 3. Export to sources: "1C: Export to src/cf"
Incremental Development Workflow
- Work in Configurator, make changes
- Export changes:
1C: Export update to src/cf - Commit to version control
- Teammates update:
1C: Update from src/cf(readsbuild/commit/Commit.txt)
build/commit/Commit.txt format (one file per line):
src/cf/Documents/Документ1/Ext/ManagerModule.bsl
src/cf/Catalogs/Справочник1.xml
src/cfe/Extension1/Documents/Документ1/Ext/ObjectModule.bsl
Working with Multiple Extensions
# Extensions stored in subdirectories:
src/cfe/
├── Extension1/
│ ├── Configuration.xml
│ └── Documents/...
└── Extension2/
├── Configuration.xml
└── Catalogs/...
# Commands operate on all extensions:
1C: Load from src/cfe # Loads Extension1 + Extension2
1C: Export update to src/cfe # Exports changes from all
Build External Processor
// src/ExternalReports/MyReport/ObjectModule.bsl
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Report logic
КонецПроцедуры
- Place sources in
src/ExternalReports/MyReport/ Ctrl+Shift+P→1C: Build external report/processor- Select
MyReport - Output:
MyReport.erfin project root
Debug BSL Code Example
// CommonModule.bsl
Функция ВыполнитьЗапрос(ТекстЗапроса)
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
// Set breakpoint here ⬅
Результат = Запрос.Выполнить();
ТЗ = Результат.Выгрузить();
Возврат ТЗ;
КонецФункции
When stopped at breakpoint:
- Add
Запросto Watch - Expand
Запрос.МенеджерВременныхТаблиц.Таблицы - Right-click
ТЗ→ "Show value in separate window" (after step-over)
Troubleshooting
Extension Not Activating
Symptom: 1C Dev Tools panel not visible
Solution:
- Ensure
packagedefexists in project root - Restart Cursor
- Check Output panel → "1C Dev Tools" for errors
oscript Command Not Found
Symptom: Commands fail with "oscript not recognized"
Solution:
- Install OneScript: https://oscript.io/
- Create Windows environment variable:
oscript = C:\Program Files\OneScript\bin\oscript.exe - Restart Cursor after setting variable
Debug Server Connection Failed
Symptom: Cannot connect to debug server
Solution:
- Verify
dbgs.exerunning (Task Manager) - Check
launch.json→debugServerHostmatches actual hostname - Ensure port
1560(or configured) not blocked by firewall - In Configurator: Debug → Change protocol to HTTP
- Restart debug server manually:
dbgs.exe --addr localhost --port 1560
Variables Not Showing in Watch
Symptom: Watch panel empty or shows "unavailable"
Solution:
- Select correct Call Stack frame (click procedure name)
- Manually add variable name to Watch (don't rely on auto-detection)
- Increase
varFetchDelayMsin settings if timing issue - Use "Calculate value" button instead for complex expressions
Load from src/cf Fails
Symptom: "Configuration load error"
Solution:
- Verify
src/cf/Configuration.xmlexists - Check
env.json→--ibconnectionpath correct - Ensure infobase not locked (close Configurator/Enterprise)
- Try "1C: Create empty infobase" first
Update from src/cfe Skips Files
Symptom: Changes not applied
Solution:
- Check
build/commit/Commit.txtcontains modified file paths - Use full export first:
1C: Export to src/cfe - Verify extension names match subdirectory names exactly
- Manually add missing paths to
Commit.txt(relative to project root)
Build External Processor No Output
Symptom: Build completes but no .erf/.epf file
Solution:
- Check source structure includes
ObjectModule.bslorManagerModule.bsl - Verify XML metadata files present
- Look in project root and
build/directory - Check Output panel for oscript errors
Incremental Update Applies Wrong Files
Symptom: Unrelated modules changed after update
Solution:
Commit.txtformat must be: one file path per line, relative to project root- Use forward slashes:
src/cf/Documents/Doc1.xmlnotsrc\cf\Documents\Doc1.xml - No empty lines or comments in
Commit.txt - Regenerate with
1C: Export update to src/cfafter known state
TypeScript API (for Extension Development)
If extending this project:
import * as vscode from 'vscode';
// Access extension context
const ext = vscode.extensions.getExtension('asweetand-a11y.devtool1c');
if (ext) {
const api = await ext.activate();
}
// Register custom command
vscode.commands.registerCommand('1c-dev-tools.customCommand', () => {
// Execute oscript
const terminal = vscode.window.createTerminal('1C Tools');
terminal.sendText('oscript build.os');
});
// Read env.json configuration
const workspaceRoot = vscode.workspace.workspaceFolders?.[0].uri.fsPath;
const envPath = path.join(workspaceRoot, 'env.json');
const envConfig = JSON.parse(fs.readFileSync(envPath, 'utf8'));
const ibConnection = envConfig.default['--ibconnection'];
References
- OneScript documentation: https://oscript.io/
- Vanessa-Runner schema: https://github.com/vanessa-opensource/vanessa-runner
- Example project setup: https://github.com/asweetand-a11y/DevTool1C
License: MIT
Language: TypeScript
Platform: Cursor IDE on Windows
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/reason-machines/devtools-skills/1c-devtools-cursor">View 1c-devtools-cursor on skillZs</a>