Wizard для 1С и Cursor: настройка проекта и проверка на «Нано-УТ»
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Чтобы начать работу с конфигурацией 1С в Cursor, недостаточно открыть каталог с BSL-файлами. Нужны исходники метаданных, профиль информационной базы, расширения редактора, работающий канал связи с инструментами платформы и способ проверить результат. Эти настройки легко выполнить по отдельности и забыть связать между собой.
Для вас, дорогие Коллеги, я придумала и создала setup-wizard.ps1 - автоматический скрипт, который собирает такое рабочее место в пустой папке, чтобы коллегам не приходилось повторять эти настройки вручную. В статье разберу, как он работает и что проверяет. Затем подключим мою учебную «Нано-УТ», отделим проверку окружения от проверки прикладной логики и доведём отдельную базу до простого сценария: поступление десяти единиц, продажа трёх и остаток семь.
Основное внимание - настройке проекта. Торговый пример нужен, чтобы закончить статью проверяемой операцией с данными: одних зелёных строк диагностики для этого мало.
Материал подготовлен по локальным прогонам 16 октября 2026 года. Исходники, скрипты и журналы собраны в файле-компаньоне (1 SM).
О чём это (в трёх тезисах):
- Wizard создаёт каркас проекта, профиль базы и настройки инструментов 1С в Cursor.
- Отчёт и doctor помогают найти незавершённые шаги; работа MCP требует проверки активного проекта.
- В отдельной учебной базе воспроизведён сценарий 10 − 3 = 7 и проверены отказы при неверных данных.
Отчёт о тестировании файла-компаньона:
16.10.2026, Windows 11 Pro, Intel Core i5-2400 3,1 ГГц, 7,9 ГБ ОЗУ, SATA SSD: комплект повторно запущен из новой папки C:\nopik-article-check-20261016. Wizard создал базу, платформа загрузила учебную конфигурацию и не нашла синтаксических ошибок. Торговый COM-тест: 25 успешных проверок; doctor: 12 OK, предупреждений и ошибок нет. MCP-проверка сборки отключена явно. Скриншоты ниже показывают страницы с фактическими журналами этого прогона; они не изображают работу агента в Cursor.
Суть статьи:
Подготовка проекта, проверка синтаксиса и проверка операций с данными дают разные подтверждения. Мастер закрывает настройку; прикладной тест проверяет результат в базе.
Для кого:
Для разработчиков 1С, которые начинают работу с Cursor и хотят воспроизводимо подготовить учебный проект на Windows.
Что делает wizard
Мастер принимает путь будущего проекта, проверяет окружение и последовательно выполняет пятнадцать шагов. Его входы - папка проекта, установленная платформа и, при необходимости, существующая база. Выход - каталог, пригодный для дальнейшей разработки в Cursor.
| Область | Что подготавливает мастер | Как проверить |
|---|---|---|
| Компоненты | Находит Cursor, Node.js, Git и платформу 1С | Шаг 1 и вывод найденной платформы |
| Расширения | Проверяет или устанавливает Platform Tools и MCP-расширение | Шаги 2–3 |
| Проект | Создаёт Git-репозиторий, копирует .gitignore, .gitattributes, packagedef |
Шаги 4 и 6 |
| Конфигурация | Создаёт пустую файловую базу либо выгружает указанную базу в XML | Шаг 5, src/cf/Configuration.xml |
| Канал связи | Записывает настройки IPC и конфигурацию MCP | Шаги 7–8 |
| Инструменты | Проверяет OneScript, предлагает установку vanessa-runner, настраивает BSL | Шаги 11 и 14 |
| Профиль | Записывает строку подключения и версию платформы | Шаг 12, autumn-properties.json |
| Контроль | Выполняет проверку модулей, копирует правила агента, запускает doctor | Шаги 13 и 15 |
В интерфейсе Cursor остаётся включить MCP-сервер и проверить вызов инструмента агентом. Сам мастер также умеет вызвать env_status через MCP-сервер после появления IPC-порта. Это полезная проверка транспорта, но она не доказывает, что агент редактора получил разрешение пользоваться инструментами.
У wizard есть важная граница: он подготавливает окружение и выгружает конфигурацию. Справочники, документы и правила проведения торговых операций разрабатываются отдельно. Ни поступление, ни продажа не появляются в пустой базе от запуска мастера.
Перед первым запуском
Локально использовались Windows, платформа 1С 8.3.27.2130, Cursor 3.25.6, Node.js 24.18.0, OneScript 2.2.1 и расширения:
yellow-hammer.1c-platform-tools- 0.9.14;yellow-hammer.mcp-1c-platform-tools- 0.3.1;1c-syntax.language-1c-bsl- 2.1.2.
Эти номера описывают проверенное окружение; совместимость с другими версиями не обещана. Штатные тесты wizard выполнены в Windows PowerShell 5.1 и PowerShell 7.
Первые четыре команды показывают, доступны ли необходимые программы в текущем терминале:
Платформу мастер ищет в стандартных каталогах установки, в том числе в Program Files (x86). Для нестандартного расположения предусмотрен -PlatformExe.
OneScript мастер самостоятельно не устанавливает. Если он отсутствует, в отчёте будет подсказка. Если OneScript и opm доступны, а vrunner ещё нет, мастер может выполнить opm install vanessa-runner. В наших текущих прогонах инструменты и расширения уже были установлены; повторную установку отсутствующих компонентов этими прогонами мы не проверяли.
Запуск на пустой базе и на существующей «Нано-УТ»
В приложенном комплекте скрипт находится в каталоге wizard. Следующие команды выполняются из корня распакованного комплекта.
Вариант 1. Пустая папка и новая база
Мастер задаст вопросы. Если базу не указать и принять предложенный вариант, он создаст новую файловую базу в build/ib внутри проекта. Для автоматического запуска используется -Yes:
Это уже рабочий каркас, но конфигурация в нём пустая. В локальных прогонах пустой базы doctor показал 12 OK, а синтаксический контроль завершился без ошибок. BSL-модулей было ноль, поэтому такой результат подтверждает настройку окружения, но ничего не говорит о торговой логике.
Перед реальным запуском можно посмотреть план:
-DryRun показывает действия, не создавая проект и не устанавливая компоненты. Это удобный способ сначала увидеть, какие части окружения затронет мастер.
Вариант 2. Пустая папка проекта и существующая база
Исходная «Нано-УТ» уже была зарегистрирована в списке баз:

Здесь нужно различать пустую папку проекта и пустую информационную базу. Папку мы создаём заново, а метаданные берём из существующей базы:
Параметр -IbConnection задаёт источник выгрузки. Для своей базы мастер выполняет выгрузку конфигурации и синтаксический контроль. В этом прогоне не выполнялись загрузка изменений в исходную базу и создание торговых данных в ней.
-SkipMcpCheck здесь выбран явно: сначала проверяем подготовку проекта и выгрузку, а интерактивную связку с Cursor проверяем отдельно. Этот ключ пропускает шаг 10, сохраняя создание .cursor/mcp.json.
Фактический результат подключения исходной «Нано-УТ»:
- выгружены два справочника, один документ и три общих модуля;
- найдено шесть файлов BSL, включая пустые модули объектов справочников;
- синтаксических ошибок не обнаружено;
- doctor: 12 OK, предупреждений и ошибок нет;
- шаг 9 - «ВРУЧНУЮ», шаг 10 - «ПРОПУЩЕН» по переданному ключу.
Полный вывод - в журнале выгрузки существующей базы (evidence/wizard-existing-base.txt).
Что появилось в каталоге
После настройки проект содержит исходники и несколько файлов, которые связывают их с инструментами:
nano-ut-source/
.cursor/
mcp.json
rules/
.vscode/
settings.json
tasks.json
src/cf/
Configuration.xml
Catalogs/
Documents/
CommonModules/
build/
setup-wizard-report.txt
autumn-properties.json
packagedef
doctor.ps1
.gitignore
.gitattributes
.bsl-language-server.json
src/cf - выгрузка конфигурации для изучения и редактирования. Это не копия данных исходной базы: элементы справочников и документы таким способом не переносятся.
autumn-properties.json - профиль, по которому инструменты понимают, с какой базой работать. Для существующей базы wizard записал:
Для новой базы строка другая: /F./build/ib. Перед загрузкой конфигурации или изменением данных стоит открыть профиль и проверить именно эту строку: в одном случае он указывает на исходную базу, в другом - на новую учебную.
Настройки IPC находятся в .vscode/settings.json:
Мастер также копирует настройки кодировок и окончаний строк для BSL. В .cursor/mcp.json он указывает установленный index.js MCP-расширения и переменные окружения канала IPC. Если в пользовательских настройках найден токен, wizard переносит его в конфигурацию MCP и добавляет этот файл в .gitignore.
packagedef описывает проект для инструментов OneScript. Само его наличие не доказывает, что все внешние зависимости установлены.
Правила .cursor/rules задают агенту порядок работы: читать метаданные перед использованием объектов, проверять изменения синтаксическим контролем и учитывать ограничения операций с базами.
Как читать итоговый отчёт

Постоянный результат мастера находится в build/setup-wizard-report.txt. Он полезнее отдельного сообщения «завершено», поскольку показывает статус каждого шага.
| Статус | Что он означает |
|---|---|
| OK | Проверка или действие данного шага выполнены успешно |
| ВРУЧНУЮ | Нужны действия пользователя или отдельная проверка в редакторе |
| ПРОПУЩЕН | Шаг отключён параметром запуска |
| ОШИБКА | Шаг завершился неуспешно |
Код возврата 0 допускает шаги «ВРУЧНУЮ» и «ПРОПУЩЕН». Его нельзя трактовать как подтверждение всей цепочки от агента до базы.
Повторную диагностику запускают из созданного проекта:
Doctor проверяет двенадцать точек окружения. Например, он находит файл MCP-сервера, проверяет настройки IPC, наличие XML конфигурации, Git и правил агента. Но doctor не проводит поступление или продажу и не проверяет бизнес-логику.
Мастер не принимает непустую папку без -AllowNonEmpty. Такой повторный запуск разрешён явно, однако он не превращается в синхронизацию проекта: существующие файлы мастер сохраняет. Изменение строки подключения при повторном запуске требует отдельно проверить фактический профиль, поскольку уже существующий файл не будет автоматически заменён.
Доводим связь Cursor → MCP → платформа
В текущей версии мастера проект открывается командой:
Мастер использует классическое окно, в котором должны запускаться расширения. После открытия нужно убедиться, что рабочая папка доверенная: установленное расширение Platform Tools в ограниченном режиме не открывает канал для агентов.
Далее:
- Проверьте, что активен именно нужный проект и его
autumn-properties.json. - В настройках Cursor откройте раздел MCP и включите сервер проекта из
.cursor/mcp.json. В версиях интерфейса, описанных комплектом, этоCustomize → MCPs. - Проверьте появление IPC-порта:
- Попросите агента: «Вызови
env_statusи покажи активный профиль, файл настроек и строку подключения к базе». - Сопоставьте ответ с учебной базой, прежде чем просить изменить конфигурацию или данные.
Открытый порт ещё не доказывает, что он принадлежит нужному окну и проекту. Поэтому просмотр профиля в ответе env_status - отдельный шаг проверки.
В наших двух реальных прогонах пустого проекта wizard дождался окончания заданных 30 секунд, но IPC-порт не появился. Шаг 10 остался «ВРУЧНУЮ». Процессы Cursor были запущены; причина отсутствия порта по собранным журналам не установлена. В прогоне существующей «Нано-УТ» этот шаг отключался явно.
Это ограничение не помешало выгрузке конфигурации, проверке модулей и последующим операциям через платформу. Однако утверждать, что торговый сценарий был выполнен агентом Cursor через MCP, по этим результатам нельзя: он выполнен отдельным интеграционным тестом через COM-соединение.
На заключительном прогоне порт уже слушался. Мы отдельно вызвали env_status тем же клиентским кодом, который использует wizard, с MCP-конфигурацией нового проекта nano-ut-repro-final. Сервер ответил «Успех», но в поле «Проект» оказался другой каталог - local-wizard-ps51, открытый предыдущим прогоном. Журнал - mcp-env-status.txt (evidence/mcp-env-status.txt).
Позже мы повторили связку на свежем проекте. Собрали его командой build-demo.ps1 в пустой папке, открыли в Cursor 3.25.6 (--classic), дождались порта 40241 и включили сервер командой cursor-agent mcp enable mcp-1c-platform-tools. Консольный агент Cursor (cursor-agent -p --force --approve-mcps) вызвал env_status, и в поле «Проект» оказался каталог этого проекта. Затем он вызвал syntaxCheck_run: платформа проверила основную конфигурацию и расширения за 30,3 с, итог - «Ошибок не обнаружено». Полный журнал этого прогона в архив комплекта не входит. Этот прогон шёл в консольном агенте, окно чата Cursor мы не запускали, а торговый сценарий агент через MCP не проводил: он по-прежнему выполняется отдельным тестом через COM.
Первый ответ с чужим каталогом остаётся поводом проверять не только статус ответа. При нескольких окнах с одинаковым IPC-портом нужно развести порты в настройках соответствующих проектов и MCP-конфигурациях либо оставить нужный экземпляр сервера. Затем снова вызвать env_status и сверить полный каталог проекта. В исследованной версии мастер вызывает инструмент без указания projectPath, поэтому сам ответ без ошибки эту сверку не заменяет.
Что на самом деле было в исходной «Нано-УТ»
Название базы могло создать впечатление готовой маленькой торговой системы. Выгрузка показала более узкую задачу исходного демо: «Нано-УТ (демо для Analyzer 1C)», версия 1.0.0.1.
В ней были:
- справочник
Контрагентыс ИНН; - справочник
Номенклатурас артикулом; ЗаказКлиента: контрагент и строки товаров с количеством и ценой;- модули
ПродажиСервер,СкладСервер,ЦеныСервер.
Документов поступления и продажи, а также регистра складских остатков в исходной конфигурации не было. В модуле цен содержался комментарий о намеренной кольцевой зависимости для демонстрации Analyzer:
ЗаказКлиента → ПродажиСервер → СкладСервер → ЦеныСервер
↑ |
^92;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^72;^96;
Такой код может пройти синтаксический контроль: имена существуют, вызовы записаны корректно. Но проведение заказа попадёт в рекурсивную цепочку. Получается практическое различие: готовность окружения, синтаксическая корректность и работоспособность операции проверяются отдельно.
Исходная база оставлена источником конфигурации. Для торгового примера создана новая база с её метаданными, без переноса исходных пользовательских данных.
От каркаса к первой торговой операции
В отдельную учебную конфигурацию добавлены документы ПоступлениеТовара и ПродажаТовара. В обоих есть контрагент, табличная часть Товары и итог документа. Строка содержит номенклатуру, количество, цену и сумму.
Сумма рассчитывается при записи:
В этой версии нет накопительного регистра. Остаток вычисляется по всем проведённым поступлениям и продажам:
Остаток товара = количество в проведённых поступлениях
− количество в проведённых продажах
Это учебное упрощение, удобное для небольшого примера: результат можно проверить непосредственно по документам. Оно не заменяет промышленную модель складского учёта. Здесь нет складов, партий, себестоимости, налогов и остатков на исторический момент.
При проверке текущий документ исключается из расчёта, затем учитывается его новое содержимое. Это позволяет перепроводить продажу и менять количество без повторного списания. Строки одной номенклатуры суммируются, чтобы две строки не обходили контроль доступности.
Поступление тоже проверяется: нельзя уменьшить его количество или отменить проведение, если после этого уже проведённые продажи дадут отрицательный остаток. Записи торговых документов используют общую блокировку; нагрузочное тестирование и параллельные сеансы в этой статье не выполнялись.
Заказ клиента после удаления демонстрационного цикла проверяет доступность товаров, но не меняет остатки и не создаёт резерв. В документах цены вводятся явно; автоматического прайс-листа в этом примере нет.
Как собрать пример в новой папке
В приложении находятся готовые исходники учебной версии и сборочный скрипт. Он принимает только новую пустую папку, запускает wizard, загружает конфигурацию из sources/trade, обновляет новую базу, проверяет синтаксис и выполняет торговый тест:
Укажите установленный у вас исполняемый файл платформы. Для учебной конфигурации использован режим совместимости 8.3.27. COM-тест в комплекте рассчитан на зарегистрированный 32-разрядный V83.COMConnector, соответствующий локальному стенду.
Скрипт сборки приложен к статье и в wizard не входит. Его загрузка конфигурации направлена только в созданную внутри проекта build/ib.
Для быстрого знакомства приложена также выгрузка nano-ut-demo.dt с демонстрационными данными. Её можно загрузить через Конфигуратор в отдельную новую учебную базу. Этот вариант показывает готовый результат, а сборка из исходников выше воспроизводит весь путь подготовки.
Проверяем операцию
Тест создаёт собственную номенклатуру и контрагента. Для каждого нового запуска используется отдельный товар, поэтому тест можно повторить, но он добавляет новые демонстрационные записи.
| Операция | Количество | Цена | Сумма | Остаток |
|---|---|---|---|---|
| Провести поступление | 10 | 100 | 1 000 | 10 |
| Провести продажу | 3 | 150 | 450 | 7 |
| Перепровести ту же продажу | 3 | 150 | 450 | 7 |
| Попытаться изменить продажу до 11 | 11 | 150 | - | 7, отказ |
| Изменить продажу до 2 и перепровести | 2 | 150 | 300 | 8 |
| Отменить проведение продажи | - | - | - | 10 |
В конце тест восстанавливает основной сценарий: проведённое поступление 10 и продажа 3, остаток 7.
Для знакомства через интерфейс откройте новую базу:
Через стандартные команды «Все функции»/«Функции для технического специалиста» откройте списки ПоступлениеТовара и ПродажаТовара. Название команды зависит от интерфейса платформы. Автоматически создаваемые платформой формы используют добавленные реквизиты; отдельные прикладные формы для статьи не разрабатывались. Суммы пересчитываются при записи; при редактировании ячейки они сразу не обновляются.
В проведённом документе изменение нужно завершать перепроведением. Обычная запись уже проведённого документа запрещена учебным кодом: иначе расчёт по документам позволил бы изменить остаток в обход контроля проведения.
Остаток можно проверить запросом. Параметр Товар - ссылка на созданную номенклатуру:
Этим независимым запросом тест сверяет результат с ответом функции прикладного модуля.
Какие проверки выполнены


В исходном прогоне штатные тесты wizard дали по 19 успешных проверок. При повторной подготовке статьи в PowerShell 5.1 и PowerShell 7 получено по 18 успешных проверок, 0 проваленных и 1 пропущенной: порт 40241 уже был занят, поэтому тест отсутствующего IPC не выполнялся. Это ограничение отражено в новых журналах. Они покрывают создание файлов, формат MCP-конфигурации, отказ на непустой папке, сохранение существующих файлов, -DryRun, выбор версии расширения и обмен с поддельным MCP-сервером.
Тесты doctor дали по 5 из 5. У этого тестового скрипта есть особенность: дочерний doctor предпочитает pwsh, если он установлен, даже когда сам тест запущен из PowerShell 5.1. Работа doctor непосредственно в 5.1 дополнительно проверялась реальным запуском мастера в этой оболочке.
Торговый тест выполняется через COM-соединение с новой учебной базой и проверяет реальные записи и запросы. Итог - 25 успешных проверок, включая отказ при нехватке, повторяющихся строках, пустом документе, отсутствии контрагента или товара, нулевом и отрицательном количестве, некорректной цене, изменении и отмене документов. Отдельная регрессия проверяет обычную запись уже проведённого документа.
Журналы позволяют проверить утверждения статьи:
- тесты wizard в 5.1 (
evidence/wizard-ps51.txt) и PowerShell 7 (evidence/wizard-pwsh.txt); - тесты doctor в 5.1 (
evidence/doctor-ps51.txt) и PowerShell 7 (evidence/doctor-pwsh.txt); - первоначальное отсутствие торгового документа (
evidence/trade-red.txt); - регрессия обычной записи проведённого документа (
evidence/trade-review-red.txt); - итоговый торговый прогон (
evidence/trade-green.txt); - синтаксический контроль (
evidence/syntax-trade.log); - сборка из приложения в новой папке (
evidence/reproduction.txt).
Успех этого сценария не подтверждает работу серверной базы, многопользовательскую нагрузку или вызов инструмента агентом Cursor. Эти проверки остаются за пределами выполненного прогона.
Итог
Для нового проекта начинайте с -DryRun, затем запускайте wizard в пустой папке. Для существующей конфигурации передайте её базу через -IbConnection и сначала изучите полученную выгрузку. Перед изменениями проверьте профиль подключения и подготовьте отдельную учебную базу.
После настройки нужны три разных подтверждения: doctor проверяет окружение, платформа проверяет синтаксис, а прикладной сценарий проверяет данные и поведение. Wizard снимает повторяющуюся настройку и делает её результат видимым в отчёте. На примере «Нано-УТ» это позволило перейти от пустой папки к исходникам, обнаружить демонстрационную рекурсию и проверить первые торговые операции в отдельной базе.
Повторная сборка из архива в новой папке дала тот же результат: 25 успешных торговых проверок и 12 OK doctor. Журнал повторения: evidence/cms-reproduction.txt в архиве. Учебный расчёт по документам пригоден для разбора сценария; складской учёт под нагрузкой этим опытом не проверялся.
Вступайте в нашу телеграмм-группу Инфостарт