# ИИ для 1С-программиста: локальный разбор BSL-кода и проверка правки

Источник: https://modelium.tech/zhurnal/ii-dlya-programmista-1s/

ИИ для 1С-программиста полезен как помощник при разборе модуля, поиске рисков и подготовке небольшого патча, но не как замена проверке в платформе. Для локального пилота передайте модели обезличенный фрагмент BSL через Ollama, отдельно проверьте код диагностикой и запустите сценарий в тестовой базе. Поддержка синтаксиса 1С и качество конкретной модели на вашей конфигурации заранее не доказаны.

**Проверено по документации 27 сентября 2026 года.** Пример ниже — шаблон запроса, а не отчёт о тесте Modelium. Качество на BSL, скорость, совместимость с конкретной конфигурацией и отсутствие сетевого выхода не измерялись.

## Что поручить ИИ, а что оставить разработчику 1С?

Вход для пилота — небольшой **обезличенный BSL-модуль**, исходная постановка задачи и ограничение: не менять структуру базы, права пользователей и публичные интерфейсы. Выход — объяснение текущей логики, список гипотез о рисках, минимальный предлагаемый патч и перечень тестов. Это не готовое изменение конфигурации. EDT поддерживает работу над проектом в Git-ветке: сделайте отдельную ветку и проверяйте diff до включения в общую работу [s1](#src-s1).

Разделяйте три роли. **Модель** предлагает или объясняет код. **Статический анализатор** независимо отмечает потенциальные ошибки и нарушения правил. **Разработчик** проверяет бизнес-логику, права и выполнение в тестовой информационной базе. В платформе предусмотрена проверка конфигурации; EDT позволяет сохранить разные конфигурации запуска/отладки, включая пользователей и базы [s2](#src-s2)[s3](#src-s3). Текст модели не должен автоматически превращаться в коммит, запуск обмена или изменение рабочей базы.

Если задача — не работа с исходным BSL, а извлечение записей 1С для ответов, смотрите отдельный [сценарий интеграции Ollama с 1С](/zhurnal/ollama-dlya-1s/). Здесь модель получает только заранее отобранный фрагмент исходного кода, **не учётные данные и не подключение к базе**.

## Как собрать минимальный локальный стек для кода 1С?

**Редактор и версия:** 1C:EDT с Git-веткой под один маленький сценарий. По официальному руководству EDT разработчик может переключать ветки, фиксировать изменения и сравнивать результат командной разработки [s1](#src-s1). Если команда использует другой редактор, принцип тот же: сохраняйте исходный вариант и точный diff; не объявляйте интеграцию LLM со средой встроенной функцией без подтверждения.

**Независимая диагностика:** BSL Language Server реализует поддержку языка 1С, подсказки, форматирование и диагностики; документация также описывает режим анализатора [s4](#src-s4). Некоторые правила анализа по умолчанию выключены, поэтому зафиксируйте конфигурацию правил и не трактуйте отсутствие предупреждений как доказательство отсутствия ошибок [s5](#src-s5). Настройте его по документации своей версии среды; не разрешайте автоисправления всех замечаний разом.

**Модель-кандидат:** локальный Ollama и опубликованный тег `qwen3-coder:30b`. Автор каталога позиционирует эту модель для программирования и показывает конкретный тег, но не подтверждает качество на языке запросов 1С, BSL-модулях или типовых конфигурациях [s8](#src-s8). Указанный на карточке размер файла весов **не является минимальной RAM/VRAM**. Выбирайте вариант по реальной памяти, совместимости и контрольному прогону на своём устройстве; если он не помещается, не обещайте эквивалентного результата от произвольной меньшей модели. [Начните с запуска Ollama](/zapusk/ollama/) и проверьте, что загружен именно локальный тег.

Обычно достаточно ручного обмена «фрагмент → черновик → diff». Доступ coding-agent к файловой системе — отдельный уровень полномочий и риска; [агентный стек](/zhurnal/lokalnyy-koding-agent-cherez-ollama/) нужен только когда тест на ручных фрагментах уже дал полезный результат.

## Как запросить объяснение BSL без доступа к рабочей базе?

На компьютере с **запущенной Ollama и загруженным локальным тегом** создайте вымышленный учебный фрагмент. API `/api/chat` принимает список сообщений и параметр `stream:false`; ответ приходит в `message.content` [s6](#src-s6). Ниже шаблон по документации, **Modelium не выполнял этот вызов**:

curl -sS http://127.0.0.1:11434/api/chat \  -H 'Content-Type: application/json' \  -d '{    "model": "qwen3-coder:30b",    "stream": false,    "messages": [      {"role":"system","content":"Ты объясняешь BSL-код. Не выдумывай объекты конфигурации. Если контекста недостаточно, скажи об этом. Предложи тесты, но не заявляй, что выполнял их."},      {"role":"user","content":"Проверь учебный фрагмент и предложи минимальное изменение с объяснением:\nФункция Удвоить(Значение)\n    Возврат Значение * 2;\nКонецФункции"}    ]  }'

Проверьте, что сервер вернул успешный HTTP-ответ и поле `message.content`; даже синтаксически правильный текст может ошибаться о типах, контексте платформы и семантике модуля [s6](#src-s6). Для настоящего ревью заменяйте учебный код только **разрешённым к обработке** фрагментом без секретов, данных клиентов, логинов и адресов. Запишите постановку, версию конфигурации, тег модели, системные настройки и ответ, чтобы повторить сравнение после обновления.

Локальный API по адресу `localhost:11434` не требует аутентификации; прямой облачный API — отдельный путь с ключом, и облачная модель может быть вызвана через локальный адрес после входа в Ollama [s7](#src-s7). Поэтому сам `localhost` не является доказательством закрытого контура. Не публикуйте этот порт в общую сеть и [проверьте сетевой выход отдельно](/zhurnal/proverka-offline-kontura-ii/) до передачи закрытого кода.

## Как проверить предложенный патч, прежде чем принять его?

- **Сверьте намерение и diff.** Попросите указать вход, выход, зависимости и изменённые строки. Разработчик сравнивает предложенный патч с исходной веткой в EDT/Git, исключает побочные правки и отклоняет ссылки на несуществующие объекты конфигурации [s1](#src-s1). Промпт не является тестом.

- **Прогоните BSL-диагностику.** Сохраните список включённых правил, исходный отчёт и отчёт после правки. Диагностики BSL Language Server предназначены для выявления потенциальных ошибок и нарушений стандартов, но часть выключена по умолчанию и результат не проверяет бизнес-процесс [s4](#src-s4)[s5](#src-s5). Если предложение модели конфликтует с диагностикой, выясните причину, а не отключайте правило ради зелёного результата.

- **Выполните платформенные проверки.** Запустите проверку конфигурации и затем сценарий в отдельной тестовой базе с отладкой под релевантным пользователем: положительный случай, пустое значение, недостаточные права и повторный запуск. Платформа предоставляет проверку конфигурации, а EDT — варианты запуска для разных пользователей, информационных баз и версий [s2](#src-s2)[s3](#src-s3). Фактический набор тестов задаёт конфигурация команды.

- **Зафиксируйте результат.** Примите изменение только если намерение, диагностика, конфигурация и тестовый сценарий согласуются. Оставьте в ревью исходный запрос, diff, список запущенных проверок и известные ограничения. Никаких автономных действий в рабочей базе у модели нет.

Для пилота можно взять два заранее известных дефекта и один корректный модуль. Успех — модель указывает проверяемые места, не изобретает отсутствующие метаданные, а разработчик получает исправление, проходящее собственные тесты. Если модель выдаёт уверенную фикцию, без объяснения меняет бизнес-логику или повторяет секрет из кода, остановите пилот и не подключайте агент с инструментами. Результаты такого набора на Modelium пока **не измерены**.

## Когда локальная модель не подходит?

Не передавайте ей закрытый проект, если организация ещё не согласовала обработку кода, права на исходники и сетевой маршрут. Не выбирайте модель по одной красивой демонстрации: карточка `qwen3-coder:30b` описывает общее назначение для кодинга, не доказывая результат на вашей версии 1С [s8](#src-s8). Если фрагмент зависит от метаданных конфигурации, ролей и нетиповых объектов, одного вырванного модуля недостаточно: ответ «нужен дополнительный контекст» предпочтительнее выдуманного метода.

Статический анализ и платформа не заменяют ревью предметного эксперта; LLM, в свою очередь, не заменяет их. **Основной следующий шаг:** [открыть локальный coding-стек на Ollama](/zhurnal/lokalnyy-koding-agent-cherez-ollama/), начать с ручной проверки одного разрешённого фрагмента, а доступ к тестовому проекту выдавать только после сохранённого протокола независимых проверок. Источники получены 27 сентября 2026 года.

## Источники

1. [1C Developer Network — Team Development in EDT](https://1c-dn.com/library/tutorials/4_team_development_in_edt/) — получено 2026-09-27
2. [1C Developer Network — Configuration check](https://1c-dn.com/1c_enterprise/configuration_check/) — получено 2026-09-27
3. [1C Developer Network — Run and Debug Configurations](https://1c-dn.com/library/tutorials/5_run_and_debug_configurations/) — получено 2026-09-27
4. [BSL Language Server — документация и возможности](https://1c-syntax.github.io/bsl-language-server/en/) — получено 2026-09-27
5. [BSL Language Server — Diagnostics](https://1c-syntax.github.io/bsl-language-server/en/diagnostics/) — получено 2026-09-27
6. [Ollama — POST /api/chat](https://docs.ollama.com/api/chat) — получено 2026-09-27
7. [Ollama — Authentication](https://docs.ollama.com/api/authentication) — получено 2026-09-27
8. [Ollama Library — qwen3-coder:30b](https://ollama.com/library/qwen3-coder:30b) — получено 2026-09-27
