🧩 1C: Query Constructor is a VS Code extension for visually building and editing
metadata-aware 1C SDBL queries and inserting them as static BSL strings—without
connecting to a 1C database or executing the query.

Watch the video (WebM) ·
Demo walkthrough
Recorded from the Classic WebView with demo metadata and the enhanced Query text
v2 editor. Enable the experimental queryConsole.queryTextEditorV2 setting to
use the text editor shown here. The UI and captions are localized; SDBL keywords
and metadata names stay unchanged. No query is executed.
✨ What it does
| Capability |
Included tools |
| 🧩 Visual query design |
Tables, fields, joins, conditions, grouping, ordering, and totals |
| 🧱 Complex query structure |
Unions, temporary tables, batches, virtual-table parameters, and indexes |
| 🗂️ Metadata-aware workflow |
Search, field types, and relationships from a 1C XML export |
| 🔍 Hover, autocomplete & diagnostics |
Field/table/virtual-table/parameter hover, ./& autocomplete, and parse-warning diagnostics—directly on query text, no designer needed |
| 🔄 Round-trip editing |
Parse, validate, format, reopen, and replace supported static SDBL strings |
| 🧪 Query text tools |
Comments, expression editing, and optional experimental Query Text v2 |
| 🌍 Localized experience |
English, Ukrainian, and Russian UI and documentation |
🚀 Quick start
- Install the extension from the VS Code Marketplace.
- Open a
.bsl file and place the cursor in a static query or at an insertion point.
- Open the editor context menu, select 1C: Query Constructor, then choose
Query text only or With result-processing code.
- Build the query and select OK to insert or replace the BSL string.
⚠️ Important: The result-processing option generates a BSL wrapper. The
extension does not connect to a 1C database or execute queries.
🧪 Experimental New Builder
Canvas has a completed functional editing baseline and remains an opt-in Preview.
Enable queryConsole.enableNewBuilderPreview, then run 1C: New Builder (Preview)
from Command Palette. It supports recursive source queries, temporary-table
workflows, common virtual-table forms, totals/indexes, UNION and contextual
expression editing. Advanced capabilities have explicit preserve-only boundaries
in the current matrix.
UX/accessibility and release hardening remain; Classic stays available.
Set queryConsole.metadataPath to the cf directory of a file-based XML export,
or leave it empty to search the workspace for Configuration.xml. Run
1C: Rebuild metadata index after the export changes.
✅ Requirements
- VS Code 1.90 or later.
- A
.bsl file open in the editor.
- A file-based XML export from 1C:Enterprise or BAS for metadata-aware work.
⚠️ Known boundaries
Only supported static BSL query strings can be reopened.
Validation is not a full 1C compiler.
A small set of virtual-table parameter forms cannot be round-tripped safely.
Line comments are kept, but one inside an expression may move to its section header.
See the complete limitations before working with
complex or generated query text.
📚 Documentation
💬 Feedback
Use GitHub Issues for
reproducible bugs and feature proposals. Do not attach proprietary configurations.
📄 License and credits
MIT — see LICENSE. Third-party attributions are listed in
THIRD-PARTY-NOTICES.md.