1С-разработка с помощью Claude Code: честный опыт и выводы
Введение
Эта статья — результат практического эксперимента по использованию AI-агента Claude Code (модель Claude Opus 4.5) для разработки на платформе 1С:Предприятие. Мы выполнили две реальные задачи разной сложности и оценили результаты с помощью профессионального 1С-разработчика.
Главный вывод: AI-ассистент — отличный аналитик и документатор для 1С, но ненадёжный кодер. Анализ, декомпозиция и документирование — во много раз быстрее человека. Принятие решений и код — оставить разработчику.
Выполненные задачи
Задача 1: Обработка «Поиск партии по товарам»
Суть задачи: Создать обработку для УПП 1.2, которая помогает складским сотрудникам идентифицировать неопознанный груз по списку товаров.
Требования:
- Форма с выбором складов и таблицей товаров (номенклатура + характеристика + количество)
- Поиск документов «Поступление товаров и услуг» где ВСЕ указанные товары есть на остатках в одной партии
- Вывод результата через СКД с двумя уровнями группировки
- Условное оформление (зелёный фон при совпадении, жирный шрифт для введённых позиций)
Результат: Готовый BSL-код на 814 строк + инструкция по созданию формы в конфигураторе.
Задача 2: Анализ обработки интеграции с CyberLines
Суть задачи: Проанализировать существующую обработку загрузки заявок на перевозку (13,378 строк кода) и ответить на 5 вопросов.
Требовалось:
- Описать способы активации обработки
- Спланировать внедрение многопоточности и отказоустойчивости
- Предложить оптимизацию SQL-запросов
- Составить список данных из внешней системы vs окружения 1С
- Описать поэтапный процесс создания заявки
Результат: Детальный аналитический отчёт на 660 строк + отчёт линтера на 497 строк + исправленная версия обработки (0 синтаксических ошибок, но с логическими проблемами).
Хронология: с какой попытки успех?
Задача 1: «Поиск партии по товарам» — успех с 3-й итерации
| Итерация | Дата | Инструменты | Результат | Оценка эксперта |
|---|---|---|---|---|
| 1 | 22 января | Claude Code | 14 критических замечаний | — «Мне быстрее с нуля написать» |
| 2 | 24 января | Claude Code + замечания | XML не работает, часть ошибок | — «Косяки не исправлены» |
| 3 | 28 января | Claude Code + MCP + линтер | Код осмысленный, логика верная | + «Можно решением считать» |
Время от старта до рабочего решения: 6 дней (с учётом пауз на ревью)
Ключевой перелом: Подключение MCP-сервера для валидации API платформы.
Задача 2: «Анализ обработки CyberLines» — успех с 1-й итерации
| Итерация | Дата | Результат | Оценка эксперта |
|---|---|---|---|
| 1 | 30-31 января | Полный анализ + отчёт линтера + исправленная версия | + Анализ отлично / ~ Код с ошибками |
Время: ~2 часа на анализ 13,378 строк + генерацию отчётов + автоисправление
Почему анализ сразу успех: Аналитическая задача — AI читает код, а не пишет. Формат вывода (Markdown) стандартный.
Почему код с ошибками: AI делает синтаксически корректные, но логически неверные изменения — ломает запросы и транзакции.
Сводка по задачам
| Задача | Тип | Итераций до успеха | Время | Вердикт |
|---|---|---|---|---|
| Поиск партии | Разработка | 3 | 6 дней | ~ Долго, но возможно |
| Анализ обработки | Аналитика | 1 | 2 часа | + Отлично |
| Правки кода обработки | Кодирование | 1 | — | ~ Синтаксис ОК, логика сломана |
Процесс работы
Проблема 1: Проприетарный формат 1С
Первый барьер — файл .dt (дамп базы данных 1С). Это закрытый бинарный формат, который ни один AI прочитать не может.
Решение: 1С-разработчик выгрузил конфигурацию в файлы (XML + BSL) через стандартную процедуру конфигуратора. Это критический шаг — без выгруженных исходников работа невозможна.
«Это считай sql бекап с кашей из символов внутри» — Никита (1С-разработчик)
Итерации по задаче 1
Итерация 1: 14 критических замечаний от эксперта:
- Неверный формат вывода (чистый код вместо XML-структуры форм)
- Выбор товаров через табличную часть вместо списка значений
- Изобретение велосипедов вместо использования встроенных методов
- Использование несуществующих функций (
СТРОКАСОЕДИНИТЬ— выдумка) - Несоответствие ТЗ по использованию СКД
Итерация 2: После загрузки замечаний — улучшения, но:
- XML-файлы для загрузки в 1С не работают (ошибки XDTO)
- СКД используется частично
- Часть ошибок не исправлена
Итерация 3 (с MCP): Подключили MCP-сервер для API платформы 1С:
- Код стал осмысленнее
- Логических косяков не обнаружено
- Штрихкоды формируются правильно
«Я бы даже сказал что это можно решением считать» — Никита
Оценка от эксперта: код (задача 1)
После финальной итерации:
«Из хороших новостей он победил проблему с штрихкодами, теперь они верно формироваться будут. Код явно стал осмысленней. Каких-то жестких логических косяков не вижу.»
Замечания, которые остались:
- БСП (Библиотека стандартных подсистем) не используется
- СКД используется минимально, хотя просили полностью на нём
Оценка от эксперта: анализ (задача 2, вопросы 1–5)
Развёрнутая оценка ответов на 5 аналитических вопросов:
| Вопрос | Оценка | Комментарий эксперта |
|---|---|---|
| 1. Способы активации | + Хорошо | Ключевые способы найдены и верно описаны. Пропущены возможности запуска для отладки с формы |
| 2. Многопоточность и отказоустойчивость | + Отлично | Вопрос с подвохом — всё уже реализовано. AI это обнаружил, структурировал с номерами строк |
| 3. Оптимизация SQL | + Отлично | Все запросы найдены с расположением в коде. Рекомендации хорошие, не хватает оценки прироста |
| 4. Данные из внешней системы | ~ Средне | Правда, но поверхностно — описание вместо структуры таблиц. Плюс: нашёл забытые настройки ПВХ |
| 5. Процесс создания заявки | ~ Средне | Верно, с наглядными схемами, но верхнеуровнево. 3000+ строк в 1 этап, инициализация в 10 строк |
Оценка от эксперта: автоисправление кода (задача 2)
AI получил обработку на 13,378 строк и самостоятельно внёс исправления. Результат проверки экспертом:
| Что сделал AI | Оценка | Комментарий эксперта |
|---|---|---|
| 0 синтаксических ошибок | + | Весь код валидный — это само по себе впечатляет |
| Переписал код по стандартам 1С | + | Без замечаний |
| Нашёл и обновил версию | + | Самостоятельно определил где и как |
| Добавил логирование исключений | ~ | Хорошая идея, но непрактично для десятков миллионов документов |
| Оптимизировал запросы | — | Синтаксически верно, но логика нарушена — вернутся другие данные |
| Переписал логику транзакций | — | Нарушена логика записи документов |
«Шок, но синтаксических ошибок 0… Но с запросами как всегда у нейронки тяжко. Написан синтаксически верно, но нарушил их логику» — Никита
Инструменты
1. Claude Code
AI-агент в командной строке с доступом к файловой системе.
Ссылка: claude.ai/code
Модель: Claude Opus 4.5 (claude-opus-4-5-20251101)
Преимущества для 1С:
- Может читать и анализировать большие BSL-файлы (13,000+ строк)
- Понимает структуру конфигурации 1С (XML + BSL)
- Хорошо справляется с аналитическими задачами
2. MCP 1C Platform
MCP-сервер для поиска по API платформы 1С:Предприятие.
Ссылка: github.com/alkoleft/mcp-bsl-platform-context
Возможности:
- Поиск методов, свойств и типов платформы
- Получение конструкторов типов
- Информация о членах типов (методы, свойства)
Пример использования:
● 1c-platform - search (MCP)(query: "Метаданные", type: "property")
⎿ "# Результаты поиска: 'Метаданные'
**Тип:** `ОбъектМетаданныхКонфигурация`
**Только для чтения:** Да"
● 1c-platform - search (MCP)(query: "РегистрНакопления", type: "type")
⎿ "## Найдено 6 элементов
### РегистрНакопленияВыборка.<Имя регистра накопления>
**Тип элемента:** Type"
Установка MCP-сервера в Claude Code:
- Убедитесь, что установлен Node.js 18+:
node --version # v18.0.0 или выше
- Откройте настройки Claude Code:
# Windows
notepad %USERPROFILE%\.claude\settings.json
# macOS/Linux
nano ~/.claude/settings.json
- Добавьте конфигурацию MCP-сервера:
{
"mcpServers": {
"1c-platform": {
"command": "npx",
"args": ["mcp-bsl-platform-context"]
}
}
}
- Перезапустите Claude Code для применения настроек.
- Проверьте работу — при запуске Claude Code должен показать:
MCP Servers: 1c-platform
Альтернативная установка (локально):
# Клонировать репозиторий
git clone https://github.com/alkoleft/mcp-bsl-platform-context.git
cd mcp-bsl-platform-context
# Установить зависимости
npm install
# Настроить в settings.json
{
"mcpServers": {
"1c-platform": {
"command": "node",
"args": ["/полный/путь/к/mcp-bsl-platform-context/dist/index.js"]
}
}
}
Доступные методы MCP:
| Метод | Описание |
|---|---|
search | Поиск по API (методы, свойства, типы) |
info | Детальная информация об элементе |
getMembers | Список методов и свойств типа |
getConstructors | Конструкторы типа |
getMember | Информация о конкретном методе/свойстве |
3. BSL Language Server (Линтер)
Статический анализатор кода для языка 1С.
Репозиторий: github.com/1c-syntax/bsl-language-server
Скачать: Releases — файл bsl-language-server-X.X.X-exec.jar
Версия в эксперименте: 0.28.3
Требования: Java 17+ (скачать с adoptium.net)
Установка:
# 1. Скачать JAR-файл
curl -L -o bsl-language-server.jar \
https://github.com/1c-syntax/bsl-language-server/releases/download/v0.28.3/bsl-language-server-0.28.3-exec.jar
# 2. Проверить версию Java
java -version # Нужна 17+
# 3. Проверить работу
java -jar bsl-language-server.jar --version
Команды для анализа:
# Анализ одного файла
java -jar bsl-language-server.jar --analyze --src ./path/to/file.bsl
# Анализ директории с выводом в JSON
java -jar bsl-language-server.jar --analyze --src ./path/to/folder \
--reporter json --outputDir ./reports
# Анализ с конфигурацией (отключение определённых правил)
java -jar bsl-language-server.jar --analyze --src ./path/to/folder \
--configuration ./.bslls.json
Пример .bslls.json для отключения правил:
{
"diagnostics": {
"parameters": {
"Typo": false,
"SpaceAtStartComment": false
}
}
}
Возможности:
- Проверка синтаксиса и стандартов 1С
- Поиск ошибок транзакций (
PairingBrokenTransaction,CommitTransactionOutsideTryCatch) - Выявление устаревших методов (
DeprecatedCurrentDate) - Оценка когнитивной и цикломатической сложности
- Поиск неиспользуемых переменных
Статистика по анализу обработки (13,378 строк):
| Уровень | Количество | Описание |
|---|---|---|
| Error | 52 | Критические ошибки — исправлять немедленно |
| Warning | 411 | Предупреждения — исправить в ближайшее время |
| Information | 1,477 | Информация — улучшение качества |
| Hint | 2,029 | Подсказки — стилистические замечания |
| Всего | 3,969 |
Топ найденных ошибок:
VirtualTableCallWithoutParameters(12 шт.) — вызов виртуальной таблицы без параметровIncorrectUseOfStrTemplate(10 шт.) — некорректное использование СтрШаблон()PairingBrokenTransaction(7 шт.) — нарушена парность транзакцийDeprecatedCurrentDate(5 шт.) — использование устаревшей ТекущаяДата()
Что получилось хорошо
1. Анализ существующего кода
Claude Code отлично справляется с анализом больших кодовых баз:
- Нашёл все ключевые способы активации обработки и правильно расписал их применение (хотя пропустил возможности запуска для отладки с формы)
- Описал механизм многопоточности через
ДлительныеОперации.ВыполнитьВФоне() - Составил список из 12 хранимых процедур SQL с их назначением и расположением в коде
- Построил диаграмму последовательности создания заявки
«Учитывая как он в файлах хорошо покапался и нашел нужные регистры и документы, думаю просто план реализации от нейронки был бы очень полезен» — Никита
2. Понимание существующей функциональности
Один из вопросов анализа был с подвохом: задачи на многопоточность и отказоустойчивость уже были реализованы в обработке. AI это распознал и вместо того, чтобы планировать внедрение с нуля, подробно описал что уже есть — структурировал информацию и указал номера строк.
«Ответ подробно расписал что есть в обработке, структурировал информацию и даже номера строк прикрепил. Уверен если бы я был незнаком с обработкой, то мне такая информация очень помогла бы. Плюс для составления документации очень полезно» — Никита
3. Структурирование SQL-запросов
Особенно впечатлил разбор SQL-запросов. В реальных 1С-проектах поиск нужного запроса — это боль: огромная вложенность процедур, имена таблиц отличаются от стандартных 1С-объектов, новые разработчики тратят часы, чтобы разобраться.
AI сразу расписал где какой запрос находится. Рекомендации по оптимизации тоже оценены положительно.
«Нереальный респект за структурирование и подробное описание. Помню боль при разработке, как приходилось искать нужный запрос и как новые люди в проекте могли часы тратить… а тут он сразу расписал где какой запрос» — Никита
Единственное пожелание — не хватило ожидаемого прироста производительности по каждой рекомендации.
4. Обнаружение забытых настроек
При составлении списка данных из внешней системы AI нашёл «Критичные настройки из ПВХ» — план видов характеристик. Эта информация не запрашивалась напрямую, но AI самостоятельно извлёк настройки, включая пару, о которых разработчик уже забыл.
«Из плюсов выдал «Критичные настройки из ПВХ». Изначально даже не задумывался над их получением с такой формулировкой задачи, но он их достал и нашел даже пару настроек о которых я уже успел забыть, но они действительно используются» — Никита
5. Поиск регистров и документов
По ТЗ AI самостоятельно определил:
- Документ поступления:
Документ.ПоступлениеТоваровУслуг - Регистр партий:
РегистрНакопления.ПартииТоваровНаСкладах - Регистр штрихкодов:
РегистрСведений.ШтрихкодыНоменклатуры
6. Структурирование отчётов
Создание документации с:
- Таблицами сравнения
- ASCII-диаграммами архитектуры
- Группировкой ошибок по типам
- Приоритизацией исправлений
- Наглядными схемами процессов
7. Работа с линтером
Интеграция BSL Language Server позволила:
- Автоматически находить ошибки транзакций
- Выявлять устаревшие методы (
ТекущаяДата()→ТекущаяДатаСеанса()) - Оценивать когнитивную сложность методов
8. Синтаксическая корректность исправлений
При автоматическом исправлении обработки (13,378 строк) — ноль синтаксических ошибок. AI корректно:
- Переписал код согласно стандартам 1С
- Самостоятельно нашёл и обновил версию обработки
Что получилось плохо
1. Создание форм
AI не может генерировать валидный XML для управляемых форм 1С. Ошибки XDTO при попытке загрузить в конфигуратор.
Решение: Генерировать только BSL-код + инструкцию для ручного создания формы.
2. Использование БСП
AI не знает методы Библиотеки стандартных подсистем:
- Использует
ПоказатьПредупреждение()вместоОбщегоНазначенияКлиентСервер.СообщитьПользователю() - Не применяет типовые паттерны БСП
3. Выдуманные функции
В первых итерациях AI изобретал несуществующие методы:
СТРОКАСОЕДИНИТЬ(в 1С такого нет)- Неверные сигнатуры методов СКД
Решение: MCP-сервер для валидации API.
4. Множество итераций
Для получения рабочего результата потребовалось 3+ итерации с участием эксперта.
5. Нарушение логики запросов при автоисправлении
При попытке оптимизировать SQL-запросы AI написал синтаксически корректный код, но нарушил логику выборки данных — результат запроса возвращал бы другие данные, что повлекло бы ошибки в бизнес-процессе.
«Попытался оптимизировать запросы. Но с запросами как всегда у нейронки тяжко. Написан синтаксически верно, но нарушил их логику. Мы получим другие данные, а значит это повлечет ошибки» — Никита
6. Нарушение логики транзакций
AI переписал логику объявления и фиксации транзакций. Результат — документы, которые раньше записывались, теперь могут не записаться.
«Зачем-то переписал логику объявления и фиксации транзакций. Выглядит так, как будто логика записи документов нарушена и мы теперь не запишем то что раньше бы записалось» — Никита
7. Избыточное логирование
AI добавил логирование всех исключений — хорошая идея в теории, но непрактичная для обработки с десятками миллионов документов. Хранить такой объём логов просто негде.
8. Поверхностность глубокого анализа
При описании данных из внешней системы AI дал правильную, но недостаточно глубокую информацию. Например, описал «Files» просто как «Файлы взвешивания» вместо того, чтобы раскрыть структуру получаемых таблиц с типизацией полей.
Процесс создания заявки описан верхнеуровнево: заполнение табличных частей (3000+ строк кода с нелинейной логикой, множеством условий и созданием новых объектов БД) объединено в один этап. Инициализация данных — основа обработки — описана в 10 строк, хотя данные получаются из нескольких мест внешней системы, соединяются с данными из 1С, создаются новые элементы.
«Процесс описан правильно, даже наглядные схемы нарисованы. Но процесс описан верхнеуровнево. Заполнение табличных частей — это 3000 строк кода минимум и сам процесс не линейный» — Никита
Сравнение с Cursor
Для чистоты эксперимента эксперт попробовал ту же задачу через Cursor:
«Ради интереса попробовал через курсор сделать эту задачу. Из плюсов он смог нормально сформировать файлы для загрузки в 1С, но из минусов там полный бред. Если в твоей версии хотя-бы чувствовалась логика и верный курс действий, то в моей всё намного хуже, вообще не по ТЗ, ошибки через строку»
Вывод: Claude Code показал лучшее понимание задачи, хотя и с ошибками в реализации.
Рекомендации по настройке
CLAUDE.md для 1С-проектов
# Правила для 1С разработки
## Язык
- Используй русские названия переменных и методов
- Следуй стандартам 1С по именованию (ПаскальКейс)
## Форматы
- НЕ генерируй XML-файлы форм — они не будут работать
- Генерируй BSL-код + инструкцию для создания формы вручную
## API
- ВСЕГДА используй MCP 1c-platform для проверки существования методов
- НЕ выдумывай функции платформы
## БСП
- Приоритет методам из БСП когда они доступны
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю() вместо ПоказатьПредупреждение()
## Линтер
- Прогоняй код через BSL Language Server перед финализацией
- Обязательно исправляй ошибки уровня Error
Настройка MCP
{
"mcpServers": {
"1c-platform": {
"command": "npx",
"args": ["mcp-bsl-platform-context"]
}
}
}
Итоговые выводы
Вердикт эксперта
«С анализом нейронка справилась отлично, даже такая документация могла бы сэкономить десятки часов при написании этой обработки, а если бы мы задали конкретную задачу на написание подробной документации, то вклад был бы незаменимый. Но вот с кодом у нее всё плохо — задумки хорошие, реализация нет.» — Никита
«Использовать как помощник для анализа, декомпозиции, написания документации, советов по ревью и рефакторингу — можно спокойно, она может очень помочь и подобные задачи во много раз быстрее человека выполнить и может даже лучше. Но принятие решений и код лучше оставить разработчику — тут будет быстрее и надежнее, имея описание от нейронки, сделать всё руками» — Никита
Для чего Claude Code подходит в 1С:
| Задача | Оценка | Комментарий |
|---|---|---|
| Анализ кодовой базы | + Отлично | Находит нужные объекты, строит зависимости, указывает номера строк |
| Составление планов | + Отлично | Структурирование задач, декомпозиция, оценка сложности |
| Документирование | + Отлично | Может сэкономить десятки часов, незаменимый вклад |
| Код-ревью | + Хорошо | С линтером находит много проблем, советы по рефакторингу |
| Обнаружение забытого | + Хорошо | Находит настройки и зависимости, о которых разработчик забыл |
| Небольшие доработки | ~ Средне | Синтаксис верный, но логика может быть нарушена |
| Новые обработки | ~ Средне | Много итераций, формы вручную |
Для чего НЕ подходит:
| Задача | Оценка | Причина |
|---|---|---|
| Новые проекты с нуля | — | Слишком много итераций |
| Создание форм | — | Не умеет генерировать валидный XML |
| Работа с БСП | — | Не знает методы библиотеки |
| Оптимизация запросов | — | Синтаксис верный, но ломает логику выборки |
| Рефакторинг транзакций | — | Нарушает логику записи документов |
| Сложная бизнес-логика | ~ | Описывает верхнеуровнево, упускает детали |
Главный вывод
| Сценарий | Рекомендация |
|---|---|
| Новый проект на 1С | Не использовать AI как основу — слишком дорого по итерациям |
| Поддержка legacy | Анализ и документирование — отлично; код — только под контролем разработчика |
| Код-ревью | Хорошо работает с линтером, полезные советы |
| Планирование | Полезно для структурирования и декомпозиции больших задач |
| Документирование | Лучшее применение — экономит десятки часов |
| Написание кода | Задумки хорошие, реализация — нет. Решения и код оставить разработчику |
Ресурсы
| Инструмент | Ссылка |
|---|---|
| Claude Code | claude.ai/code |
| MCP 1C Platform | github.com/alkoleft/mcp-bsl-platform-context |
| BSL Language Server | github.com/1c-syntax/bsl-language-server |
| Стандарты разработки 1С | its.1c.ru/db/v8std |
| MCP протокол | modelcontextprotocol.io |
Статья основана на реальном эксперименте, январь-февраль 2026
Участники: Денис Матаков , Клементьев Никита (Эксперт, 1С-разработчик )