Конструктор запросов 1С прямо в VS Code — без Конфигуратора и EDT

26.06.26

Разработка - Запросы

Визуальный «Конструктор запроса» 1С, встроенный прямо в VS Code, — аналог конструктора из Конфигуратора и EDT, но без запуска платформы. Расширение читает конфигурацию, выгруженную в файлы, позволяет собрать запрос мышью и генерирует корректный текст на языке запросов 1С (SDBL). Открывает уже существующий текст запроса из кода для правки и — что особенно ценно — сохраняет комментарии при цикле «открыть - править - сохранить». Подходит тем, кто пишет код 1С в VS Code, держит под рукой множество проектов и не хочет ради одного запроса запускать тяжёлый Конфигуратор или EDT.

Зачем это нужно

Конструктор запросов — один из самых удобных инструментов платформы 1С. Но чтобы им воспользоваться, обычно нужно запустить Конфигуратор или EDT и открыть конкретную информационную базу. Если вы пишете и читаете код 1С в VS Code (а таких разработчиков всё больше — с git, выгрузкой конфигурации в файлы, code review по диффам), переключение на тяжёлую платформу ради одного запроса занимает слишком много времени. Расширение query_console_vscode закрывает этот разрыв. На основе этой выгрузки расширение парсит метаданные, строит дерево «таблицы → поля → типы → связи» и даёт собрать запрос мышью — ровно как привычный конструктор платформы. Результат — текст на языке запросов 1С (SDBL), вставленный в код в правильном формате (строковый литерал с переносами |).

 

Возможности

  • Парсинг метаданных конфигурации из выгрузки в файлы.

  • Визуальное построение запросов с учётом возможностей языка запросов 1С: таблицы и поля, условия, группировки, объединения и псевдонимы, порядок, ИТОГИ, пакеты запросов.

  • Открытие сохранённого текста запроса из кода с проверкой синтаксиса и наличия таблиц — можно взять готовый запрос из .bsl, поправить мышью и вернуть обратно.

  • Сохранение комментариев внутри текста запроса при цикле «открыть → править → сохранить».

 

Как пользоваться

Для файлов .bsl команда «1С: Конструктор запроса» добавлена в контекстное меню (правая кнопка):

  • если курсор стоит внутри текста сохранённого запроса — команда открывает этот запрос в конструкторе;

  • если курсор в другом месте — расширение предложит создать новый запрос.

По нажатию ОК: для открытого запроса текст заменяется на собранный конструктором, для нового — вставляется в позицию курсора.

Конструктор работает не с выгрузкой напрямую, а с кэшем разобранных метаданных. При первом открытии, если кэша ещё нет, выполняется парсинг (путь к выгрузке — из настройки queryConsole.metadataPath; если пусто, ищется src/cf в корне рабочей области). После изменения метаданных конфигурации нажмите «Обновить кэш» — выгрузка перепарсится, дерево перестроится.

Настройки:

  • queryConsole.metadataPath — путь к каталогу выгрузки cf (пусто → автоопределение);

  • queryConsole.parserOutputPath — каталог результата парсинга (по умолчанию tmp/parser_data).

 

Кому это пригодится

1. Тем, кто работает в VS Code без Конфигуратора и EDT. Если основная среда разработки — VS Code (с git, линтерами, своими расширениями), конструктор запросов теперь доступен прямо в ней. Не нужно запускать платформу и подключать базу только чтобы собрать или поправить запрос.

2. Тем, кто ведёт много проектов сразу. Когда на машине десяток конфигураций, держать под каждую открытый Конфигуратор накладно. Здесь же конструктор работает с выгрузкой в файлы: переключение между проектами — это переключение между папками/рабочими областями VS Code. Никаких «поднять базу, открыть конфигуратор, дождаться загрузки конфигурации».

3. Тем, кто хочет дописать недостающие фичи конструктора через вайбкодинг. Проект открытый и собран так, что его легко расширять с помощью ИИ-ассистента. Не хватает какой-то конструкции языка запросов или удобной кнопки в UI — её реально добавить «вайбкодингом»: ядро отделено от UI, есть тесты и замкнутый цикл проверки корректности (см. ниже), так что новая фича сразу проверяется на регрессе.

4. Тем, кто строит более сложные инструменты поверх метаданных и запросов. Под капотом — два переиспользуемых движка: парсер метаданных (выгрузка cf → структурированная модель «таблицы → поля → типы» в YAML) и парсер/генератор запросов 1С (текст SDBL ↔ объектная модель запроса). На этой основе можно делать гораздо больше, чем просто конструктор: статический анализ запросов, массовый рефакторинг, проверку запросов на соответствие метаданным, документирование схемы данных, миграции, линтеры и т. п.

Подробно про сохранение комментариев

Это та фича, которой обычно не хватает: штатный конструктор платформы при открытии-сохранении запроса теряет комментарии. Здесь комментарии переживают цикл «открыть → править → сохранить».

В шапке конструктора есть галочка «Сохранять комментарии» (включена по умолчанию). Если её снять — комментарии при вставке убираются.

Ключевая идея: комментарии привязываются к смысловым элементам запроса (полю, контейнеру пакета), а не к позиции в тексте. Поэтому они переживают перестановку полей и удаляются вместе со своим полем/таблицей — ведут себя так, как ожидает разработчик.

Сохраняются 4 вида комментариев:

  1. Хвост строки после поляПоле КАК Син, // комментарий;

  2. Отдельной строкой перед полем;

  3. Отдельной строкой перед ВЫБРАТЬ;

  4. Отдельной строкой после ИЗ.

Пример. Был запрос:

ВЫБРАТЬ
    // основной идентификатор
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Наименование КАК Имя, // витринное имя
    Номенклатура.Артикул КАК Артикул
ИЗ
    // только активные позиции
    Справочник.Номенклатура КАК Номенклатура

Открываем его в конструкторе, мышью меняем порядок полей (например, ставим «Артикул» вторым) и сохраняем. Комментарий // основной идентификатор останется перед полем «Ссылка», хвостовой // витринное имя уедет вместе с полем «Имя» на новую позицию, комментарий после ИЗ про «только активные позиции» сохранится. Если поле «Имя» удалить — вместе с ним исчезнет и его хвостовой комментарий: висячих, потерявших смысл комментариев не остаётся.

Ограничения (важно понимать заранее):

  • только однострочные комментарии //…;

  • сохраняются только 4 перечисленные позиции — остальные отбрасываются (например, хвостовые комментарии на строках ключевых слов: ВЫБРАТЬ //…, ИЗ //…);

  • комментарий удаляется при удалении или переименовании его «якоря»: поля (удаление, смена синонима/выражения) или контейнера (переименование/смена типа временной таблицы);

  • при снятой галочке «Сохранять комментарии» все комментарии теряются при вставке.

 

Как сделан проект

Вайбкодинг с Claude по TDD + SDD. Проект написан в связке с ИИ-ассистентом Claude, но не «как получится», а по двум дисциплинам сразу:

  • SDD (Spec-Driven Development) — каждой итерации предшествует дизайн-документ (спека) и план реализации; они лежат в репозитории (docs/superpowers/specs/, docs/superpowers/plans/). Сначала проектируем, потом кодируем.

  • TDD (Test-Driven Development) — сначала тест, потом код. Ядро (src/core) — чистый TypeScript без зависимостей от vscode/React, поэтому полностью тестируется в Node. Генератор SDBL дополнительно проверяется тест-оракулом: сгенерированный текст парсится через tree-sitter-sdbl (WASM) и должен разбираться без ошибок.

Архитектура специально сделана «расширяемой ИИ»: логика изолирована в core, UI — «тонкий» React-webview, контракт между слоями сосредоточен в одном файле сообщений. Такую структуру легко наращивать вайбкодингом — новая фича не размазывается по всему коду.

Замкнутый цикл проверки корректности — главная гарантия качества. Чтобы генерируемые запросы действительно были правильными, а не «похожими на правду», построен замкнутый цикл проверки на реальном MCP-оракуле 1С:

  • В качестве эталона используется MCP-сервер 1c_mcp Владимира Харина — с небольшой доработкой: он возвращает нормализованный текст запроса, полученный через объект СхемаЗапроса платформы. То есть эталоном выступает не самописный форматтер, а сама платформа 1С: как СхемаЗапроса собрала текст обратно — так и должно быть.

  • Конвейер корпусного тестирования (npm run corpus:test): из конфигурации извлекаются реальные запросы (из строковых литералов .bsl и из макетов СКД в Reports/**/*.xml), плюс автоматически формируются эталонные ВЫБРАТЬ * ИЗ <Тип>.<Объект> ко всем таблицам метаданных. Все они валидируются через MCP-оракул, и валидные с их нормализованным текстом складываются в «золотой» эталон (golden.jsonl).

  • Затем каждый запрос прогоняется через наш конструктор (текст → модель → снова текст), и вывод сравнивается с эталоном оракула. На каждое расхождение пишется отдельный самодостаточный JSON-файл: исходный текст, эталон платформы, вывод конструктора, класс ошибки и номер расходящейся строки. По этим файлам заводятся точечные правки — без необходимости заново гонять весь конвейер.

Проверка на БСП и УНФ. Корпус прогонялся на запросах из реальных типовых конфигураций — Библиотеки стандартных подсистем (БСП) и Управления нашей фирмой (УНФ). Это тысячи живых запросов со всем разнообразием конструкций языка. Закоммиченный регресс-эталон (1976 запросов, 0 расхождений) включён в обычный прогон npm run test:unit и воспроизводится на любом checkout'е без подключения к базе — то есть корректность зашита в CI.

Тестирование UI через Playwright. Webview-конструктор покрыт end-to-end тестами на Playwright: реальные клики по дереву и панелям, проверка генерируемого текста и поведения вкладок. Так UI-регрессии ловятся автоматически, что важно, когда новые фичи добавляются вайбкодингом.

Итого получается честный замкнутый контур: спека → тест → код → прогон на реальных запросах БСП/УНФ → сверка с платформой через СхемаЗапроса → точечная правка по файлам ошибок → регресс-gate в CI. Именно это позволяет доверять выводу конструктора и спокойно расширять его с ИИ.

Установка (VSIX)

Готовый .vsix собирается автоматически в GitHub Actions по git-тегу и прикладывается к GitHub Release.

  1. Скачайте query-console-1c-<тег>.vsix со страницы Releases.

  2. Установите одним из способов:

Через UI VS Code: панель Extensions (Ctrl+Shift+X) → меню «...» → Install from VSIX... → выбрать файл.

Через командную строку (--force — для обновления поверх установленной версии):

code --install-extension query-console-1c-<тег>.vsix

code --install-extension query-console-1c-<тег>.vsix --force

Скачать и установить одной командой:

curl -L -o qc.vsix \

  https://github.com/AlekseyUAM/query_console_vscode/releases/latest/download/query-console-1c-<тег>.vsix

code --install-extension qc.vsix

Для VS Code Insiders используйте code-insiders, для VSCodium — codium. После установки при необходимости перезагрузите окно (Ctrl+Shift+PReload Window).

Собрать из исходников: нужен Node.js ≥ 20 (рекомендуется 22), затем npm install и npm run package. Подробности — в docs/DEVELOPMENT.md.

 

Ссылки

Вступайте в нашу телеграмм-группу Инфостарт

конструктор запросов язык запросов 1С SDBL VS Code расширение VS Code метаданные 1С парсер запросов MCP вайбкодинг Claude Playwright

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    267588    1491    421    

1178

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Структура запроса. Обработка визуально показывает, из какого количества подзапросов состоит запрос.

2 стартмани

06.07.2026    3302    44    XSlava    20    

44

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    2948    83    priem_nv    24    

66

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    12030    155    zup_dev    32    

86

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

В данной публикации рассказывается о решении, которое позволяет находить сразу все ошибки в тексте запроса за раз, а не только самую первую.

2 стартмани

05.03.2025    6840    24    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

3 стартмани

06.02.2025    6118    37    XilDen    26    

42

Запросы Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    14292    artemusII    11    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1104 26.06.26 13:11 Сейчас в теме
2. starik-2005 3294 26.06.26 13:55 Сейчас в теме
3. sqr4 92 26.06.26 21:41 Сейчас в теме
Тоже такое хотел, спасибо, крутая штука.
4. Shaldryn 27.06.26 23:13 Сейчас в теме
А лицензия какая у репозитория? В плане, могу я форкнуть проект и забрать каркас, мне интересен только UI, а ядро я перепишу под свои нужды не 1С?
5. Alex_YAM 96 29.06.26 08:58 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация