Loading...
Loading...
Cursor IDE extension providing development tools for 1C:Enterprise 8 ecosystem with command palette, task tree, and debugging support
npx skill4agent add aradotso/devtools-skills 1c-devtools-cursorSkill by ara.so — Devtools Skills collection.
oscriptC:\Program Files\OneScript\bin\oscript.exeCtrl+Shift+P.vsixpackagedefproject-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 updatesenv.json{
"$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"
}
}--ibconnection/F./build/ib/S<server>\<base>--v8version8.3.27--v8-platform-root--debug-server--debug-port-range.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"
]
}
]
}ClientManagedClientWebClientComConnectorServerServerEmulationWebServiceHttpServiceODataJobJobFileModeMobileClientMobileServerMobileJobFileModeMobileManagedClientMobileManagedServerdbgs.exe1c-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
}
}Ctrl+Shift+P1C: Create empty infobase
1C: Post-update processing
1C: Prohibit external resources
1C: Export to dt / Import from dt1C: 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 changes1C: 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/cf1C: 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)1C: Load from *.cfe
1C: Export to *.cfe
1C: Build *.cfe from src/cfe
1C: Disassemble *.cfe to src/cfe1C: Build external report/processor # Compile external file
1C: Disassemble external report/processor
1C: Clear cache1C: Initialize packagedef # Create dependency manifest
1C: Install dependencies
1C: Remove dependencies1C: Launch Enterprise # Start client application
1C: Launch Configurator # Open Configurator.bslF5dbgs.exeQuery.TemporaryTablesManager.Tables[0][0][1]// In stopped context, evaluate:
Query.TemporaryTablesManager.Tables[0].GetColumns()
Result.Find("MyValue", "FieldName")
Collection.Count() > 10F10 - Step Over
F11 - Step Into
Shift+F11 - Step Out
F5 - Continue
Shift+F5 - Stop# 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"# 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"1C: Export update to src/cf1C: Update from src/cfbuild/commit/Commit.txtsrc/cf/Documents/Документ1/Ext/ManagerModule.bsl
src/cf/Catalogs/Справочник1.xml
src/cfe/Extension1/Documents/Документ1/Ext/ObjectModule.bsl# 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// src/ExternalReports/MyReport/ObjectModule.bsl
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Report logic
КонецПроцедурыsrc/ExternalReports/MyReport/Ctrl+Shift+P1C: Build external report/processorMyReportMyReport.erf// CommonModule.bsl
Функция ВыполнитьЗапрос(ТекстЗапроса)
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
// Set breakpoint here ⬅
Результат = Запрос.Выполнить();
ТЗ = Результат.Выгрузить();
Возврат ТЗ;
КонецФункцииЗапросЗапрос.МенеджерВременныхТаблиц.ТаблицыТЗpackagedefoscript = C:\Program Files\OneScript\bin\oscript.exedbgs.exelaunch.jsondebugServerHost1560dbgs.exe --addr localhost --port 1560varFetchDelayMssrc/cf/Configuration.xmlenv.json--ibconnectionbuild/commit/Commit.txt1C: Export to src/cfeCommit.txtObjectModule.bslManagerModule.bslbuild/Commit.txtsrc/cf/Documents/Doc1.xmlsrc\cf\Documents\Doc1.xmlCommit.txt1C: Export update to src/cfimport * 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'];