ИИ в разработке на 1С
← Предыдущий | 🗺 Оглавление | Следующий →
Актуализировано: сентябрь 2026.
Файл отвечает на четыре вопроса: какие ИИ-инструменты для 1С существуют на самом деле, насколько хорошо модели пишут BSL, как встроить ИИ в рабочий процесс так, чтобы не принести в код чужие ошибки, и что можно и нельзя отдавать модели с точки зрения безопасности и закона. Здесь нет прогнозов вроде «ИИ заменит разработчиков» и нет рекламы: только проверяемые факты и практика.
Содержание
- Главное за две минуты
- Карта инструментов
- Что показывает PRISM
- Процесс: ИИ-черновик, проверки, ревью
- Типовые ошибки ИИ на BSL
- ИИ внутри решения 1С
- Безопасность и право
- Упражнения (проект P17)
- Чего не делать
- Как ИИ меняет требования к джуну
- Источники
Главное за две минуты
- Официальный ИИ-инструмент фирмы «1С» для разработчика — 1С:Напарник (1C:Workmate) в среде 1C:EDT. Плагин входит в поставку EDT 2026, доступ — по токену на code.1c.ai с учётной записью 1С:ИТС. Это облачный сервис: код уходит на серверы 1С. В Конфигураторе Напарника нет.
- Пользовательского ИИ-ассистента 1С для бухгалтера или менеджера в типовых конфигурациях не найдено. Официальный ИИ в типовых — отдельные облачные сервисы (распознавание документов, прогнозирование и подобные), а не универсальный чат.
- Качество моделей на BSL измеримо и очень неравномерно. По открытому бенчмарку PRISM (прогон 25.09.2026) лучшие модели решают 85–100% задач целиком, GigaChat и YandexGPT — 0–13%, малые локальные модели — 0–27%.
- ИИ даёт черновик, а не готовый код. Между черновиком и репозиторием стоят диагностика BSL Language Server, тесты и ревью человеком. Если вы не можете объяснить каждую строку — код в репозиторий не идёт.
- MCP не граница безопасности. Доступ ограничивают права пользователя 1С, обезличенная копия базы и учётная запись только для чтения.
- Юридическая рамка зависит от заказчика: для коммерции — NDA, коммерческая тайна (98-ФЗ) и 152-ФЗ; для государственных информационных систем — прямой запрет по п. 60 Приказа ФСТЭК № 117.
⚠️ Доступ к некоторым зарубежным сервисам (Cursor, Claude Code, Codex, GitHub Copilot) из РФ ограничен. Условия меняются, проверяйте на сайтах поставщиков и учитывайте политику работодателя. Названия проектов и их состояние в этом файле — на 29.09.2026, экосистема меняется еженедельно: перед установкой открывайте репозиторий и смотрите дату последнего коммита.
🧰 Карта инструментов
Инструменты сгруппированы по роли в процессе, а не по популярности. Для начала вам нужно от одной до трёх позиций, а не вся таблица.
Официальное от 1С
| Инструмент | Что это | Важно знать |
|---|---|---|
| 1С:Напарник (1C:Workmate) | Плагин ИИ-ассистента в 1C:EDT (com.e1c.edt.ai): автодополнение (ручное и автоматическое), «Фоновый анализ» кода с маркерами в редакторе, чат-агент, который умеет искать и править код и метаданные | Токен на code.1c.ai, нужна подписка ИТС. Условия доступа и сроки бесплатного периода для подписчиков ИТС смотрите на code.1c.ai: в источниках сведения расходятся, поэтому мы ни дат, ни цен не приводим. Настройки: «Окно → Параметры → 1С:Напарник» |
| Облачные ИИ-сервисы в типовых | Распознавание первичных документов, прогнозирование продаж, семантический разбор резюме (в ЗУП КОРП) | Это облачные сервисы для прикладных решений, а не помощник программиста. Перечень сервисов и условия смотрите на официальной странице платформы v8.1c.ru: её содержимое при подготовке файла не сверялось |
| Работа с речью в платформе | Объект РаботаСРечью (МенеджерРаботыСРечью): распознавание и синтез речи | С 8.3.23, синтез Синтезировать — с 8.3.25; это не LLM |
Ограничения Напарника, которые стоит знать заранее:
- Облако. Self-hosted поставки в найденных источниках нет, нужен выход в интернет, в том числе через корпоративный прокси.
- Только EDT. По пересказу пользовательского соглашения (code.1c.ai/user_agreement; сам текст при подготовке файла не открывался) API предназначен для работы из 1C:EDT, а вызовы из внешних приложений сервис трактует как нарушение. Поэтому сторонние «мосты» к API Напарника (1c-buddy и аналоги) мы не рекомендуем. Связать Напарник с внешним агентом можно вызовом изнутри EDT (например, через EDT-MCP, инструмент
ask_workmate); соответствие такого способа соглашению проверьте самостоятельно. - Известные проблемы версий. На трекере 1C-Company/1c-edt-issues есть открытые обращения: после EDT 2026.1.3 Напарник не работал за корпоративным прокси (#2328), а на EDT 2026.2 с JRE 25 без модуля
jdk.jshellплагин не запускался (#2359); на EDT 2026.2.1.3 сообщалось о зависании IDE во время запроса к Напарнику (#2360). Если что-то сломалось — сначала проверьте трекер. - Модель под капотом не раскрыта, и в PRISM Напарника нет (публичного API для бенчмарка нет). Судить о его качестве по PRISM нельзя. Отзывы сообщества («уровень джуна», «проектировался под автодополнение») — вторичные и субъективные, независимой проверки нет.
- Официальных MCP-серверов или SDK от фирмы 1С на GitHub не найдено: в организации 1C-Company нет ИИ-проектов.
Агентные среды и модели
Агентный режим — это когда модель сама ищет файлы, правит их, запускает команды и итерирует по результату. Из известных вариантов: Claude Code, Codex, Cursor, opencode, а также российские GigaCode (Сбер) и Koda; доступность зарубежных вариантов из РФ ограничена (см. предупреждение выше). Что важно для 1С:
- Агент работает с текстовыми исходниками: EDT-проектом или выгрузкой конфигурации в XML. Поэтому Git и исходники в файлах — необходимое условие, см.
01_Strategy.md. - Ни одна среда не «знает 1С из коробки». Знания даёт контекст: файл правил проекта, справка платформы через MCP, диагностика BSL LS.
- Выбор модели важнее выбора оболочки: см. раздел про PRISM.
Контекст и связь с 1С через MCP
MCP (Model Context Protocol) — протокол, по которому агент вызывает внешние инструменты. Серверов для 1С много (по запросу «mcp 1c» на GitHub — более 230 репозиториев), поэтому опирайтесь на курируемый каталог Untru/1c-mcp. Классы серверов:
| Класс | Примеры | Зачем |
|---|---|---|
| Справка платформы | mcp-bsl-platform-context (alkoleft) | Нечёткий поиск по синтакс-помощнику, чтобы агент не выдумывал методы |
| Среда разработки | EDT-MCP (DitriXNew): пресеты Analysis Only, Code Review, Development; CodePilot1C (ИИ-ассистент внутри EDT со своими моделями) | Доступ агента к проекту EDT: анализ, запросы, СКД, скриншоты форм, отладка, Git |
| Анализ больших конфигураций | rlm-tools-bsl, code-index-mcp, bsl-atlas, 1c-mcp-metacode | Поиск по большой кодовой базе типовой, граф метаданных |
| Диагностика | плагин BSL LS для Claude Code (1c-syntax), mcp-bsl-lsp-bridge; экспериментальный режим MCP в самом BSL Language Server | Диагностика после каждой правки |
| Тесты | METR / mcp-onec-test-runner (запуск YAxUnit), 1C Testpilot (клиент тестирования), MCP, встроенный в Vanessa Automation с версии 1.2.043.12, vrunner-mcp | Замкнуть цикл «правка, запуск, результат» |
| Живая база | 1c_mcp (расширение MCP_Сервер.cfe и прокси), 1c-mcp-toolkit (обработка с анонимизацией данных), mcp-1c, mcp-rsv-data, 1c-trusted-gateway (маскирование ФИО, ИНН, КПП) | Доступ к данным. Самая опасная категория, см. раздел про безопасность |
Skills и правила сообщества
- cc-1c-skills (Nikolay-Shirokov, MIT) — skills для Claude Code, Cursor и Codex: работа с XML-выгрузкой и CLI Конфигуратора, сборка EPF/ERF/CFE, тестирование через веб-клиент.
- ai_rules_1c (comol) — правила, субагенты и skills для нескольких агентов; режимы quick-fix и full-cycle, уровни проверки lite, standard, full.
- Unica (IngvarConsulting) — плагин Claude Code и Codex с собственным MCP runtime.
- 1c-ai-development-kit (Arman-Kudaibergenov, AGPL-3.0) — набор skills для Claude Code (в ветке master 55 skills; поддержка Cursor, которую всё ещё заявляет README, из репозитория удалена в феврале 2026). Это инструкции и правила, а не «обученные» модели; собран на основе перечисленных выше проектов, поэтому для начала можно взять первоисточники.
- Vanessa_for_AI — skills для генерации сценариев Gherkin для Vanessa Automation.
- Гайды по безопасности и стеку: 1c-ai-guide, awesome-onec-neurofish, Landscape1C.
Коммерческие MCP и ассистенты существуют (Pilot 1C от Инфостарта, OneMCP и другие), цены в источниках вторичные и быстро меняются, поэтому мы их не приводим.
Свои модели на своём железе
Ollama и vLLM реальны, данные остаются в вашем контуре. Но по PRISM малые локальные модели слабы на BSL (0–27% задач). Сильные модели с открытыми весами (по данным PRISM, GLM 5.3, Kimi K3) требуют серверного GPU. «Поставим Ollama на ноутбук» для промышленной разработки на BSL не решает задачу качества.
Минимальный стек «с нуля»
- Исходники в Git: EDT-проект или выгрузка в XML (
01_Strategy.md,03_Competencies.md). - Файл правил проекта (
AGENTS.md,CLAUDE.mdили аналог вашего агента) со ссылками на стандарты v8std и словарём предметной области. - Справка платформы через MCP.
- BSL Language Server: диагностика после каждой правки.
- Синтаксический контроль в EDT или Конфигураторе и модульные тесты YAxUnit.
- Ревью diff человеком.
Если у вас есть ИТС и EDT, начните с Напарника: он уже встроен, дополнительных установок не требует. Агентные CLI и MCP добавляйте, когда упрётесь в потолок.
📊 Что показывает PRISM
PRISM — открытый бенчмарк генерации BSL (MIT). Код моделей не оценивается «на глаз»: он исполняется в 1С 8.3.27 (headless, Docker) и OneScript, проходит BSL LS и набор тест-кейсов. Методика SMOP: Syntax, Meaning, Optimization, Platform. Объём: 35 задач, 174 тест-кейса. Задачи категории A — алгоритмические, категории B — платформенные (FIFO, остатки, себестоимость). Прогон 25.09.2026, 57 моделей.
Доля задач, решённых целиком (A / B), выборка:
| Модель | A | B |
|---|---|---|
| GPT-5.6 Sol | 100% | 95% |
| Claude Opus 5.5 | 93% | 100% |
| GPT-6 Sol | 93% | 95% |
| Kimi K3 (open-weight) | 100% | 85% |
| GLM 5.3 (open-weight) | 100% | 85% |
| DeepSeek V4 Pro 0813 (open-weight) | 80% | 70% |
| Alice AI LLM Flash | 60% | 35% |
| YandexGPT 5.1 Pro | 7% | 10% |
| GigaChat 2 Max | 7% | 10% |
| GigaChat 2 Lite | 0% | 0% |
| Qwen3.8 27b (open-weight) | 27% | 0% |
| GPT-OSS 120B (open-weight) | 13% | 10% |
Как это читать:
- Разброс огромный: от 0% до 100%. Фраза «ИИ пишет код на 1С» бессмысленна без указания модели.
- Лидеры не безошибочны. 85–100% решённых задач означает, что часть задач (до 15%) не решена, а сама проверка идёт по тест-кейсам конкретного небольшого банка.
- GigaChat и YandexGPT в этом прогоне слабы (0–13%); Alice AI LLM Flash заметно выше (60% / 35%), но тоже ниже лидеров. Это срез на 25.09.2026, он меняется с каждым прогоном.
- Платформенные задачи, как правило, труднее алгоритмических: у большинства моделей в таблице B ниже A (но не у всех). В исследовании Д. Андреева на УТ11 с метаданными через MCP категория B в среднем ниже на 2 балла из 10. MCP-контекст сам по себе разрыв не убирает.
- Ограничения бенчмарка указаны авторами: маленький банк задач, рейтинг меняется, экспертная оценка ещё в планах. Исследование Андреева — 3 модели, 5+5 задач, одна конфигурация, без контрольной группы.
- Вывод для практики: собирайте свои 5–10 задач из реальной работы и гоняйте на них выбранные модели. Это и есть упражнение E1 ниже.
🔍 Процесс: ИИ-черновик, проверки, ревью
Правила процесса:
- Сначала постановка, потом промпт. Запишите критерий готово: входы, выходы, граничные случаи, ограничения по стандартам. Если вы не можете это сформулировать, вы не готовы проверять результат.
- Малые шаги. Просите одну процедуру или одну функцию, а не «сделай подсистему». Большие правки невозможно честно прочитать.
- Отдельная ветка, маленький diff. Агент работает только под Git. Откат должен стоить одной команды.
- Контекст даёт не модель, а вы. Дайте агенту соседние модули, структуру метаданных и правила проекта. Для платформенных методов подключите справку (MCP) и требуйте ссылаться на неё.
- Автоматика до человека. BSL LS и тесты гоняются до ревью, чтобы человек читал уже отфильтрованный код.
- Тесты пишете или пересматриваете вы. Если модель написала и код, и тесты, они могут повторять одну и ту же ошибку. Ожидаемые значения в тестах считайте независимо.
- Ревью по чек-листу (ниже) и проверка на стандарты v8std. Ответственность за результат — ваша, а не модели.
- Фиксируйте использование ИИ в описании PR: что делал агент, какая модель, что правили руками. Так делают на практике и так проще разбирать ошибки.
Чек-лист ревью ИИ-кода
- [ ] Все вызываемые методы и свойства существуют в 8.3.27/8.5.1 (сверено по синтакс-помощнику или справке).
- [ ] Нет запросов и обращений к базе в цикле (#std436).
- [ ] Запрос использует параметры, а не конкатенацию; условия по виртуальным таблицам заданы параметрами виртуальной таблицы (#std657).
- [ ] Контекст правильный: клиентский код не делает лишних серверных вызовов, директивы компиляции осмысленны.
- [ ] Нет модальных вызовов (
Вопрос,Предупреждение,ВвестиЗначение), вместо них асинхронные или сОписаниеОповещения. - [ ] Записи с чтением остатков или другими гонками защищены управляемой блокировкой внутри транзакции.
- [ ] Нет секретов, паролей, адресов реальных серверов в коде и логах.
- [ ] Права доступа не расширены «для удобства» (привилегированный режим включён минимально и точечно).
- [ ] Тексты для пользователя вынесены в
НСтр, не разрушена локализация. - [ ] Есть тест на граничный случай, а не только на «счастливый путь».
- [ ] Вы можете объяснить каждую строку.
🧠 Типовые ошибки ИИ на BSL
Причины повторяются: у моделей мало BSL в обучающих данных, много кода из устаревших источников, а платформенная логика (контекст, транзакции, блокировки) неочевидна из текста. Ниже — ошибки, которые стоит уметь распознавать. Примеры учебные: имена метаданных условные.
1. Выдуманные методы и свойства
Модель уверенно предлагает то, чего в платформе нет: что-то вроде Строка.Содержит("текст"), ТаблицаЗначений.Отфильтровать(...), метод с «правдоподобным» русским именем. Для строк используйте СтрНайти, СтрНачинаетсяС, СтрСоединить, СтрРазделить, для таблиц значений — Найти, НайтиСтроки. Проверка: синтаксический контроль, BSL LS, синтакс-помощник; в агентной работе — MCP справки платформы. Методы, добавленные в поздних версиях, модель может не знать или, наоборот, использовать в версии, где их нет: сверяйте с режимом совместимости конфигурации.
2. Запрос в цикле
// Плохо: запрос на каждую итерацию (нарушение #std436)
Для Каждого СтрокаТовара Из Товары Цикл
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1 Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Номенклатура = &Товар)");
Запрос.УстановитьПараметр("Товар", СтрокаТовара.Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
// ...
КонецЦикла;Каждая итерация — отдельное обращение к базе. Правильно — один запрос со списком значений:
// Серверный общий модуль.
Функция ЦеныТоваров(Знач Товары, Знач ДатаЦен) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Цены.Номенклатура КАК Номенклатура,
| Цены.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаЦен,
| Номенклатура В (&Товары)) КАК Цены";
Запрос.УстановитьПараметр("ДатаЦен", ДатаЦен);
Запрос.УстановитьПараметр("Товары", Товары); // массив ссылок
Результат = Новый Соответствие;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Результат.Вставить(Выборка.Номенклатура, Выборка.Цена);
КонецЦикла;
Возврат Результат;
КонецФункцииДля больших наборов данных (сотни тысяч значений) используйте временную таблицу и соединение с ней, см. 07_Projects.md и материалы по производительности в 03_Competencies.md.
3. Условие в ГДЕ вместо параметров виртуальной таблицы
Модель часто пишет запрос к виртуальной таблице остатков так, что отбор идёт в ГДЕ, а не в параметры виртуальной таблицы. Стандарт #std657 требует передавать такие условия в параметры: СУБД сможет выбрать лучший план и не будет обрабатывать лишние записи.
// Плохо: условие по измерению вынесено в ГДЕ (нарушение #std657)
"ВЫБРАТЬ Остатки.Номенклатура, Остатки.КоличествоОстаток
|ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК Остатки
|ГДЕ Остатки.Склад = &Склад"
// Хорошо: отбор в параметрах виртуальной таблицы (#std657)
"ВЫБРАТЬ Остатки.Номенклатура, Остатки.КоличествоОстаток
|ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Остатки"4. Запись без блокировки: гонка на остатках
Типовая генерация «проверить остаток, потом списать» без управляемой блокировки приводит к отрицательным остаткам под нагрузкой. Правильная схема: транзакция, управляемая блокировка на нужные измерения, повторное чтение остатка под блокировкой, запись.
// Серверный общий модуль (например, модуль менеджера документа).
Процедура СписатьТовары(Знач ТаблицаТоваров, Знач Склад) Экспорт
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ТоварыНаСкладах");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = ТаблицаТоваров; // колонки: Номенклатура
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки.УстановитьЗначение("Склад", Склад);
Блокировка.Заблокировать();
// Здесь: чтение остатков (один запрос), проверка, формирование движений, запись.
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедурыНюансы, которые модель обычно пропускает: блокировка ставится до чтения, а не после; нужен откат транзакции при исключении; при проведении документа блокировку остатков обычно ставят иначе (например, через блокирующее чтение итогов) и стараются не держать её дольше необходимого. Подробности — в стандартах #std661 (блокирующее чтение остатков в начале транзакции), #std460 (управляемый режим блокировки) и #std659 (избыточные блокировки). Пример учебный: в реальной конфигурации состав измерений и режим блокировки определяет структура регистра.
5. Путаница «клиент — сервер»
Признаки: серверный вызов на каждый элемент списка; обращение к данным формы из &НаСервереБезКонтекста; тяжёлая логика в клиентской процедуре; &НаСервере там, где контекст формы не нужен и можно использовать &НаСервереБезКонтекста; кэширование не там, где надо. Проверка: на ревью для каждой процедуры задайте вопрос «где она выполняется и сколько раз за операцию пользователя происходит серверный вызов».
6. Модальные окна
Старые примеры из интернета (Вопрос(...), Предупреждение(...)) попадают в ответы моделей. В управляемых формах используйте немодальные варианты:
&НаКлиенте
Процедура ОчиститьСписокКоманда(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ОчиститьСписокПослеВопроса", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения,
НСтр("ru = 'Очистить список?'"), РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьСписокПослеВопроса(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
// Действие после подтверждения.
КонецПроцедурыНемодальный режим работы (свойство конфигурации «Режим использования модальности») появился в 8.3.3, а асинхронные конструкции Асинх/Ждать доступны с 8.3.18. Для нового кода придерживайтесь единого стиля, принятого в проекте, и не используйте модальные вызовы.
7. Устаревшие приёмы и «типовой стиль» без контекста
Конструкции из старых обработок (Сообщить вместо ОбщегоНазначения.СообщитьПользователю в конфигурациях на БСП, Выполнить/Вычислить вместо безопасных механизмов, работа с ПВХ по устаревшим шаблонам); игнорирование БСП в конфигурации, которая её использует; изобретение собственных общих функций, дублирующих БСП. Лечится файлом правил проекта и просьбой сначала искать существующие решения в проекте.
8. Прочее, что встречается регулярно
- Лишний или забытый
Экспорт, неверные типы параметров, путаница междуНеопределено,NULL, пустой ссылкой и пустой строкой в проверках (вместо осознанного выбора между сравнением иЗначениеЗаполнено). - Тексты без
НСтр, строки запроса через конкатенацию с данными пользователя. - Правки метаданных без обновления форм, прав и подписок: код «компилируется», но конфигурация неконсистентна.
- «Красивые» тесты, которые всегда зелёные (ожидаемое значение вычислено тем же кодом).
- Слишком общие обработчики
Исключениебез записи в журнал регистрации.
🤖 ИИ внутри решения 1С
Отдельный сценарий: не «ИИ пишет код», а «ваше решение вызывает LLM». В платформе нет встроенных объектов для LLM (в найденных источниках они не описаны; не утверждайте иного, в том числе про 8.5.4 и 8.5.5). Вызов делается обычными HTTPСоединение и HTTPЗапрос к API провайдера, ключи хранятся в безопасном хранилище БСП. Есть библиотеки сообщества (ИИкона / 1c-ai-connector, GigaChat_SDK_1C, OpenIntegrations), но механику полезно один раз разобрать на маленьком примере. Из встроенного в платформе есть работа с речью (РаботаСРечью) и классический анализ данных (АнализДанных), но это не LLM.
// Серверный общий модуль. Ключ хранится в безопасном хранилище БСП,
// в коде и в логах его нет. Данные для модели заранее обезличены.
// ВладелецКлюча - ссылка на объект (например, элемент справочника
// «Настройки интеграции») или уникальная строка до 128 символов.
Функция ВыполнитьЗапросКМодели(Знач АдресСервиса, Знач ВладелецКлюча, Знач ТелоЗапросаJSON) Экспорт
УстановитьПривилегированныйРежим(Истина);
КлючAPI = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецКлюча, "КлючAPI");
УстановитьПривилегированныйРежим(Ложь);
Если Не ЗначениеЗаполнено(КлючAPI) Тогда
ВызватьИсключение НСтр("ru = 'Ключ доступа к сервису не задан'");
КонецЕсли;
Соединение = Новый HTTPСоединение(АдресСервиса.Хост, , , , , 60,
Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос(АдресСервиса.Путь);
Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючAPI);
Запрос.УстановитьТелоИзСтроки(ТелоЗапросаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния <> 200 Тогда
// В журнал: код состояния, но не тело запроса и не заголовки с ключом.
ВызватьИсключение СтрШаблон(НСтр("ru = 'Сервис вернул код %1'"), Ответ.КодСостояния);
КонецЕсли;
Возврат Ответ.ПолучитьТелоКакСтроку();
КонецФункцииЗдесь АдресСервиса — структура со свойствами Хост и Путь, подготовленная вызывающим кодом; формат тела зависит от провайдера. Безопасное хранилище БСП хранит данные сжатыми, но не зашифрованными: доступ к ним ограничивается правами и привилегированным режимом, а не шифрованием. Ответ модели считайте недоверенным вводом: не выполняйте его через Выполнить/Вычислить, проверяйте структуру, не пишите в базу без валидации и подтверждения человеком. Про интеграционные основы и внешние вызовы см. tracks/integration.md.
🔐 Безопасность и право
Этот раздел — практическая рамка, а не юридическая консультация. Конкретную политику определяют работодатель или заказчик и его юристы.
Куда уходят данные
| Ситуация | Что происходит | Рамка |
|---|---|---|
| Код и метаданные в облачный чат или агент | Текст уходит провайдеру, иногда за рубеж | NDA, коммерческая тайна (98-ФЗ), политика работодателя, лицензионные условия на код |
| Персональные данные в промпте | Передача оператору вне РФ — трансграничная | 152-ФЗ (в том числе требования к трансграничной передаче и локализации баз); зарубежные провайдеры — трансграничная передача, российские — по отдельному соглашению об обработке |
| Напарник | Облако 1С: код и контекст проекта уходят на серверы 1С | Условия code.1c.ai, политика заказчика |
| Локальная модель | Данные в вашем контуре | Ограничены качество модели и ваша инфраструктура |
| Госсектор: ГИС и ИС госорганов, ГУП, госучреждений | Прямой запрет | п. 60 Приказа ФСТЭК № 117 (с 01.03.2026) |
Что известно точно:
- 152-ФЗ. Передача персональных данных зарубежному провайдеру ИИ — трансграничная передача, NDA её не отменяет. Штрафы за утечки выросли: по 420-ФЗ за повторную утечку оборотный штраф составляет от 20 млн ₽ (от 25 млн ₽ за специальные категории и биометрию), максимум — 500 млн ₽; актуальную редакцию КоАП проверяйте на consultant.ru. Поэтому копия базы для разработки и агента должна быть обезличенной.
- 98-ФЗ и NDA касаются кода и бизнес-логики заказчика. Формула «нельзя ничего» неверна, формула «всё можно» тоже: сверяйтесь с договором и политикой.
- Приказ ФСТЭК № 117 от 11.04.2025 (зарегистрирован Минюстом 16.06.2025 № 82619, действует с 01.03.2026, заменил приказ № 17) распространяется на ГИС и иные ИС госорганов, ГУП и госучреждений. П. 60: не допускается передача лицу, разработавшему модель ИИ, информации ограниченного доступа, содержащейся в информационных системах, в том числе для улучшения функционирования модели. П. 61 требует шаблоны и допустимые тематики запросов и ответов, критерии недостоверных ответов и регламент реагирования. Для коммерческих организаций приказ напрямую не действует. Подробнее —
10_Domain_and_Law.md. - Сертифицированной ФСТЭК LLM-платформы в найденных источниках не подтверждено. Номера сертификатов ФСТЭК на платформу 1С мы не приводим: проверяйте их в реестре ФСТЭК.
Технические правила работы агента с базой
MCP — это способ вызвать инструмент, а не механизм защиты. Если агент может отправить произвольный запрос или вызвать метод записи, он это сделает, в том числе по ошибке или под влиянием вредоносного текста в данных (prompt injection). Поэтому ограничения ставятся на стороне 1С:
- Обезличенная копия базы для любых экспериментов агента. Не продуктив. Обезличивание (ФИО, ИНН, телефоны, адреса, реквизиты) делается до передачи в среду агента. Маскирующие шлюзы вроде 1c-trusted-gateway и анонимизация в 1c-mcp-toolkit — дополнительный, а не единственный слой.
- Отдельная техническая учётная запись с минимальными правами и запретом записи, заданным ролями 1С, а не настройкой в MCP-клиенте. Учтите: стандартный интерфейс OData 1С умеет создавать, изменять и проводить документы, то есть не является read-only по умолчанию.
- Минимально опубликованные объекты: публикуйте в HTTP/OData-интерфейсе только нужное.
- Негативные тесты: докажите тестом, что POST, PATCH и DELETE с этой учётной записи отвергаются. Заявление «у нас read-only» без теста ничего не стоит (упражнение E4).
- Секреты не хранятся в промптах,
mcp.json, репозитории и логах; в 1С их кладут в безопасное хранилище БСП (оно не шифрует данные, поэтому доступ к нему тоже ограничивают правами). - Цепочка dry-run, предпросмотр, подтверждение человеком для любых изменяющих операций.
- Журналирование вызовов инструментов и проверенный бэкап.
- Знайте, где обрабатывается запрос: у каждой модели есть страна обработки и политика хранения запросов.
- Сторонние MCP-серверы — это чужой код с доступом к вашей среде. Читайте исходники, фиксируйте версии, не давайте лишних прав. Для серверов с открытой лицензией (AGPL, GPL) проверьте, как это влияет на ваш проект.
- Разработка на продуктивной базе запрещена как практика. Для госзаказчиков это ещё и требование (п. 58 Приказа № 117 запрещает разработку и тестирование в промышленных средах).
🧪 Упражнения (проект P17)
P17 — опциональный проект «Решение с ИИ-ассистентом и разбор ошибок ИИ», подробное описание — в 07_Projects.md. Ниже — упражнения, из которых он состоит. Делайте их после этапа 4 (типовые конфигурации), когда вы сами способны оценить код. Работайте на учебной базе и обезличенных данных.
| № | Упражнение | Критерий готово |
|---|---|---|
| E1 | Сравнить 2–3 модели на 5 своих задачах (2 алгоритмические, 3 платформенные: остатки, себестоимость, запрос к регистру) | Таблица «задача, модель, прошла ли, где сломалось» с отнесением ошибок к S (синтаксис), M (смысл), O (оптимизация), P (платформа) |
| E2 | Сделать агентом внешнюю обработку или отчёт на учебной базе | В репозитории: промпты, diff, отчёт BSL LS до и после, доля ручных правок (в строках), список найденных ошибок ИИ |
| E3 | Провести ИИ-ревью собственного модуля (Напарник «Фоновый анализ» или EDT-MCP в пресете Code Review) и сравнить с ручным ревью | Список замечаний с разметкой «реальное, ложное, пропущенное» |
| E4 | Поднять MCP-доступ к обезличенной копии базы и сделать инструмент «остатки на дату» только для чтения | Негативный тест: попытки записи с технической учётной записи отвергаются; выгрузка показывает, что персональных данных нет |
| E5 | Сгенерировать черновик .feature для Vanessa Automation и тест YAxUnit, довести вручную | Тесты зелёные и падают, если намеренно сломать код |
| E6 | Написать AGENTS.md (или аналог) для учебного проекта | Правила ссылаются на v8std, есть запреты (запрос в цикле, модальные вызовы), формат PR-описания, список «что агенту нельзя» |
| E7 | «Найди ошибки ИИ»: дайте модели 3 задачи, соберите все ошибки в каталог с исправлениями | Каталог не менее 10 ошибок, к каждой — правило проверки на ревью |
Пример теста YAxUnit для функции, которую вы просили написать у модели. Проверьте синтаксис API по документации YAxUnit для вашей версии (актуальный релиз на сентябрь 2026 — 25.12).
// Функция в серверном общем модуле (это то, что написала модель):
Функция РассчитатьСкидку(Сумма, ПроцентСкидки) Экспорт
Если ПроцентСкидки < 0 Или ПроцентСкидки > 100 Тогда
ВызватьИсключение НСтр("ru = 'Процент скидки вне диапазона 0..100'");
КонецЕсли;
Возврат Окр(Сумма * (100 - ПроцентСкидки) / 100, 2);
КонецФункции// Тестовый модуль в расширении с тестами.
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
.ДобавитьТестовыйНабор("Расчёт скидки")
.ДобавитьТест("ОбычнаяСкидка")
.ДобавитьТест("ГраничныеЗначения");
КонецПроцедуры
Процедура ОбычнаяСкидка() Экспорт
// Ожидаемое значение посчитано независимо от кода: 200 - 15% = 170
ЮТест.ОжидаетЧто(МодульСкидок.РассчитатьСкидку(200, 15)).Равно(170);
КонецПроцедуры
Процедура ГраничныеЗначения() Экспорт
ЮТест.ОжидаетЧто(МодульСкидок.РассчитатьСкидку(200, 0)).Равно(200);
ЮТест.ОжидаетЧто(МодульСкидок.РассчитатьСкидку(200, 100)).Равно(0);
КонецПроцедурыОбратите внимание: оба теста проверяют только допустимые значения, а поведение при 101 и -1 (исключение) не покрыто. Добавить такой тест — часть упражнения E5; в YAxUnit есть проверка ожидаемого исключения, найдите её в документации.
Как оценивать себя по P17:
- Вы можете показать, какие ошибки нашли в чужом (ИИ) коде и чем.
- Каждое изменение прошло диагностику и тесты до ревью.
- В README проекта есть раздел «Как использовался ИИ» и политика данных.
- Данные, переданные модели, не содержат персональных данных и секретов.
❌ Чего не делать
- Не вставлять в чат реальные данные клиентов, пароли, ключи, строки подключения, выгрузки продуктивной базы.
- Не давать агенту доступ к продуктивной базе и учётной записи с правами записи.
- Не коммитить код, который вы не читали и не можете объяснить.
- Не пользоваться сторонними мостами к API Напарника: это нарушает пользовательское соглашение сервиса.
- Не доверять «уверенному» тону: модель одинаково спокойно выдумывает метод и называет верный.
- Не оценивать качество по одному удачному примеру: проверяйте на своём наборе задач.
- Не отключать диагностику BSL LS и тесты, чтобы «зелёное» выглядело быстрее.
- Не оставлять секреты в
mcp.json,.envи истории чата в репозитории. - Не рассчитывать на ИИ на экзаменах и аттестациях: готовьтесь так, будто ассистента не будет, а правила проведения уточняйте на официальных страницах, см.
04_Certifications.md. - Не выдавать результат ИИ за собственное понимание на собеседовании: вопросы «почему так» вскрывают это за минуты, см.
08_Interview.md. - Не строить план обучения «через ИИ, без основ»: без базы вы не отличите ошибку от нормы.
🎓 Как ИИ меняет требования к джуну
Сдвиг не в том, что джуны не нужны, а в том, что порог «уметь проверять» вырос: писать простой код стало дешевле, читать и проверять — нет. Это оценка авторов на сентябрь 2026, а не факт рынка. Уровни Junior, Middle и Senior понимаются по модели компетенций 1С MC-6-001 (см. 03_Competencies.md) и не привязаны к срокам; этапы указаны только как ориентир.
| Уровень | Что ожидают | Что делать |
|---|---|---|
| Junior (ориентир: этапы 1–4) | Основы языка, запросов, метаданных без ИИ; умение читать чужой код; знать типовые ошибки ИИ | ИИ как репетитор и «второй пилот» с проверкой по синтакс-помощнику и ИТС; не вставлять реальные данные; вести журнал ошибок ИИ |
| Middle (ориентир: этапы 5–6) | Агентный цикл «задача, план, правка, BSL LS, тест, ревью»; файл правил проекта; 2–3 MCP (справка, EDT-MCP, тест-раннер); умение читать и откатывать diff агента | Упражнения E2, E3, E5, E6, E7 |
| Senior и Lead (ориентир: этап 7) | Политика ИИ в команде: какие данные и куда; обезличенные стенды и шлюзы; read-only учётные записи и негативные тесты; выбор модели по собственным замерам; при необходимости свой контур | Упражнения E1, E4, политика данных для команды, метрики (доля правок, дефекты после ИИ) |
Практические выводы:
- Основы остаются вашей работой. Запросы, транзакции, блокировки, права, обмены, производительность — то, на чём ИИ ошибается, а заказчик платит за надёжность.
- Проверяемость — навык. Умение быстро найти запрос в цикле в чужом diff ценится выше умения быстро набрать промпт.
- Портфолио. Покажите один проект с честным разбором: что делал ИИ, что вы исправили и как это доказали тестами (P17).
- На собеседованиях вас, вероятно, спросят, как вы используете ИИ и какие данные ему не отдаёте: подготовьте ответ с примерами из E7.
🔗 Источники
Официальное и нормативное:
- Напарник: code.1c.ai, токены: code.1c.ai/tokens, пользовательское соглашение: code.1c.ai/user_agreement
- Страница «Искусственный интеллект» платформы: v8.1c.ru/platforma/iskusstvennyy-intellekt
- Курс УЦ №1 «Знакомство с 1С:Напарником»: uc1.1c.ru
- Трекер EDT: 1C-Company/1c-edt-issues (см. также обращения #2360, #2328, #2327, #2317)
- Стандарты разработки: #std436, #std460, #std657, #std659, #std661
- Приказ ФСТЭК № 117: publication.pravo.gov.ru; 420-ФЗ: publication.pravo.gov.ru
Бенчмарки:
Инструменты и каталоги:
- Untru/1c-mcp, awesome-onec-neurofish, Landscape1C, 1c-ai-guide
- EDT-MCP (ask_workmate), CodePilot1C, mcp-bsl-platform-context, METR, 1C Testpilot
- rlm-tools-bsl, code-index-mcp, bsl-atlas, 1c-mcp-metacode, mcp-bsl-lsp-bridge
- 1c_mcp, 1c-mcp-toolkit, mcp-1c, mcp-rsv-data, 1c-trusted-gateway
- cc-1c-skills, ai_rules_1c, Unica, 1c-ai-development-kit, Vanessa_for_AI
- BSL Language Server, плагин BSL LS для Claude Code, YAxUnit, Vanessa Automation, vanessa-runner
- ИИкона (1c-ai-connector), GigaChat_SDK_1C, OpenIntegrations, Ollama, vLLM, GigaCode, Koda
Для дальнейшего чтения (материалы Инфостарта и Habr собраны из курируемых списков, открывайте с проверкой актуальности):
