Skip to content

ИИ в разработке на 1С ​

← Предыдущий | 🗺 Оглавление | Следующий →

Актуализировано: сентябрь 2026.

Файл отвечает на четыре вопроса: какие ИИ-инструменты для 1С существуют на самом деле, насколько хорошо модели пишут BSL, как встроить ИИ в рабочий процесс так, чтобы не принести в код чужие ошибки, и что можно и нельзя отдавать модели с точки зрения безопасности и закона. Здесь нет прогнозов вроде «ИИ заменит разработчиков» и нет рекламы: только проверяемые факты и практика.

Содержание ​

Главное за две минуты ​

  • Официальный ИИ-инструмент фирмы «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 не решает задачу качества.

Минимальный стек «с нуля» ​

  1. Исходники в Git: EDT-проект или выгрузка в XML (01_Strategy.md, 03_Competencies.md).
  2. Файл правил проекта (AGENTS.md, CLAUDE.md или аналог вашего агента) со ссылками на стандарты v8std и словарём предметной области.
  3. Справка платформы через MCP.
  4. BSL Language Server: диагностика после каждой правки.
  5. Синтаксический контроль в EDT или Конфигураторе и модульные тесты YAxUnit.
  6. Ревью 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), выборка:

МодельAB
GPT-5.6 Sol100%95%
Claude Opus 5.593%100%
GPT-6 Sol93%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 Flash60%35%
YandexGPT 5.1 Pro7%10%
GigaChat 2 Max7%10%
GigaChat 2 Lite0%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 ниже.

🔍 Процесс: ИИ-черновик, проверки, ревью ​

Правила процесса:

  1. Сначала постановка, потом промпт. Запишите критерий готово: входы, выходы, граничные случаи, ограничения по стандартам. Если вы не можете это сформулировать, вы не готовы проверять результат.
  2. Малые шаги. Просите одну процедуру или одну функцию, а не «сделай подсистему». Большие правки невозможно честно прочитать.
  3. Отдельная ветка, маленький diff. Агент работает только под Git. Откат должен стоить одной команды.
  4. Контекст даёт не модель, а вы. Дайте агенту соседние модули, структуру метаданных и правила проекта. Для платформенных методов подключите справку (MCP) и требуйте ссылаться на неё.
  5. Автоматика до человека. BSL LS и тесты гоняются до ревью, чтобы человек читал уже отфильтрованный код.
  6. Тесты пишете или пересматриваете вы. Если модель написала и код, и тесты, они могут повторять одну и ту же ошибку. Ожидаемые значения в тестах считайте независимо.
  7. Ревью по чек-листу (ниже) и проверка на стандарты v8std. Ответственность за результат — ваша, а не модели.
  8. Фиксируйте использование ИИ в описании PR: что делал агент, какая модель, что правили руками. Так делают на практике и так проще разбирать ошибки.

Чек-лист ревью ИИ-кода ​

  • [ ] Все вызываемые методы и свойства существуют в 8.3.27/8.5.1 (сверено по синтакс-помощнику или справке).
  • [ ] Нет запросов и обращений к базе в цикле (#std436).
  • [ ] Запрос использует параметры, а не конкатенацию; условия по виртуальным таблицам заданы параметрами виртуальной таблицы (#std657).
  • [ ] Контекст правильный: клиентский код не делает лишних серверных вызовов, директивы компиляции осмысленны.
  • [ ] Нет модальных вызовов (Вопрос, Предупреждение, ВвестиЗначение), вместо них асинхронные или с ОписаниеОповещения.
  • [ ] Записи с чтением остатков или другими гонками защищены управляемой блокировкой внутри транзакции.
  • [ ] Нет секретов, паролей, адресов реальных серверов в коде и логах.
  • [ ] Права доступа не расширены «для удобства» (привилегированный режим включён минимально и точечно).
  • [ ] Тексты для пользователя вынесены в НСтр, не разрушена локализация.
  • [ ] Есть тест на граничный случай, а не только на «счастливый путь».
  • [ ] Вы можете объяснить каждую строку.

🧠 Типовые ошибки ИИ на BSL ​

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

1. Выдуманные методы и свойства ​

Модель уверенно предлагает то, чего в платформе нет: что-то вроде Строка.Содержит("текст"), ТаблицаЗначений.Отфильтровать(...), метод с «правдоподобным» русским именем. Для строк используйте СтрНайти, СтрНачинаетсяС, СтрСоединить, СтрРазделить, для таблиц значений — Найти, НайтиСтроки. Проверка: синтаксический контроль, BSL LS, синтакс-помощник; в агентной работе — MCP справки платформы. Методы, добавленные в поздних версиях, модель может не знать или, наоборот, использовать в версии, где их нет: сверяйте с режимом совместимости конфигурации.

2. Запрос в цикле ​

bsl
// Плохо: запрос на каждую итерацию (нарушение #std436)
Для Каждого СтрокаТовара Из Товары Цикл
	Запрос = Новый Запрос(
		"ВЫБРАТЬ ПЕРВЫЕ 1 Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Номенклатура = &Товар)");
	Запрос.УстановитьПараметр("Товар", СтрокаТовара.Номенклатура);
	Выборка = Запрос.Выполнить().Выбрать();
	// ...
КонецЦикла;

Каждая итерация — отдельное обращение к базе. Правильно — один запрос со списком значений:

bsl
// Серверный общий модуль.
Функция ЦеныТоваров(Знач Товары, Знач ДатаЦен) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Цены.Номенклатура КАК Номенклатура,
	|	Цены.Цена КАК Цена
	|ИЗ
	|	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
	|		&ДатаЦен,
	|		Номенклатура В (&Товары)) КАК Цены";
	Запрос.УстановитьПараметр("ДатаЦен", ДатаЦен);
	Запрос.УстановитьПараметр("Товары", Товары); // массив ссылок

	Результат = Новый Соответствие;
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Результат.Вставить(Выборка.Номенклатура, Выборка.Цена);
	КонецЦикла;

	Возврат Результат;

КонецФункции

Для больших наборов данных (сотни тысяч значений) используйте временную таблицу и соединение с ней, см. 07_Projects.md и материалы по производительности в 03_Competencies.md.

3. Условие в ГДЕ вместо параметров виртуальной таблицы ​

Модель часто пишет запрос к виртуальной таблице остатков так, что отбор идёт в ГДЕ, а не в параметры виртуальной таблицы. Стандарт #std657 требует передавать такие условия в параметры: СУБД сможет выбрать лучший план и не будет обрабатывать лишние записи.

bsl
// Плохо: условие по измерению вынесено в ГДЕ (нарушение #std657)
"ВЫБРАТЬ Остатки.Номенклатура, Остатки.КоличествоОстаток
|ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК Остатки
|ГДЕ Остатки.Склад = &Склад"

// Хорошо: отбор в параметрах виртуальной таблицы (#std657)
"ВЫБРАТЬ Остатки.Номенклатура, Остатки.КоличествоОстаток
|ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Остатки"

4. Запись без блокировки: гонка на остатках ​

Типовая генерация «проверить остаток, потом списать» без управляемой блокировки приводит к отрицательным остаткам под нагрузкой. Правильная схема: транзакция, управляемая блокировка на нужные измерения, повторное чтение остатка под блокировкой, запись.

bsl
// Серверный общий модуль (например, модуль менеджера документа).
Процедура СписатьТовары(Знач ТаблицаТоваров, Знач Склад) Экспорт

	НачатьТранзакцию();
	Попытка
		Блокировка = Новый БлокировкаДанных;
		ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ТоварыНаСкладах");
		ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
		ЭлементБлокировки.ИсточникДанных = ТаблицаТоваров; // колонки: Номенклатура
		ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
		ЭлементБлокировки.УстановитьЗначение("Склад", Склад);
		Блокировка.Заблокировать();

		// Здесь: чтение остатков (один запрос), проверка, формирование движений, запись.

		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;

КонецПроцедуры

Нюансы, которые модель обычно пропускает: блокировка ставится до чтения, а не после; нужен откат транзакции при исключении; при проведении документа блокировку остатков обычно ставят иначе (например, через блокирующее чтение итогов) и стараются не держать её дольше необходимого. Подробности — в стандартах #std661 (блокирующее чтение остатков в начале транзакции), #std460 (управляемый режим блокировки) и #std659 (избыточные блокировки). Пример учебный: в реальной конфигурации состав измерений и режим блокировки определяет структура регистра.

5. Путаница «клиент — сервер» ​

Признаки: серверный вызов на каждый элемент списка; обращение к данным формы из &НаСервереБезКонтекста; тяжёлая логика в клиентской процедуре; &НаСервере там, где контекст формы не нужен и можно использовать &НаСервереБезКонтекста; кэширование не там, где надо. Проверка: на ревью для каждой процедуры задайте вопрос «где она выполняется и сколько раз за операцию пользователя происходит серверный вызов».

6. Модальные окна ​

Старые примеры из интернета (Вопрос(...), Предупреждение(...)) попадают в ответы моделей. В управляемых формах используйте немодальные варианты:

bsl
&НаКлиенте
Процедура ОчиститьСписокКоманда(Команда)

	ОписаниеОповещения = Новый ОписаниеОповещения("ОчиститьСписокПослеВопроса", ЭтотОбъект);
	ПоказатьВопрос(ОписаниеОповещения,
		НСтр("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.

bsl
// Серверный общий модуль. Ключ хранится в безопасном хранилище БСП,
// в коде и в логах его нет. Данные для модели заранее обезличены.
// ВладелецКлюча - ссылка на объект (например, элемент справочника
// «Настройки интеграции») или уникальная строка до 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С:

  1. Обезличенная копия базы для любых экспериментов агента. Не продуктив. Обезличивание (ФИО, ИНН, телефоны, адреса, реквизиты) делается до передачи в среду агента. Маскирующие шлюзы вроде 1c-trusted-gateway и анонимизация в 1c-mcp-toolkit — дополнительный, а не единственный слой.
  2. Отдельная техническая учётная запись с минимальными правами и запретом записи, заданным ролями 1С, а не настройкой в MCP-клиенте. Учтите: стандартный интерфейс OData 1С умеет создавать, изменять и проводить документы, то есть не является read-only по умолчанию.
  3. Минимально опубликованные объекты: публикуйте в HTTP/OData-интерфейсе только нужное.
  4. Негативные тесты: докажите тестом, что POST, PATCH и DELETE с этой учётной записи отвергаются. Заявление «у нас read-only» без теста ничего не стоит (упражнение E4).
  5. Секреты не хранятся в промптах, mcp.json, репозитории и логах; в 1С их кладут в безопасное хранилище БСП (оно не шифрует данные, поэтому доступ к нему тоже ограничивают правами).
  6. Цепочка dry-run, предпросмотр, подтверждение человеком для любых изменяющих операций.
  7. Журналирование вызовов инструментов и проверенный бэкап.
  8. Знайте, где обрабатывается запрос: у каждой модели есть страна обработки и политика хранения запросов.
  9. Сторонние MCP-серверы — это чужой код с доступом к вашей среде. Читайте исходники, фиксируйте версии, не давайте лишних прав. Для серверов с открытой лицензией (AGPL, GPL) проверьте, как это влияет на ваш проект.
  10. Разработка на продуктивной базе запрещена как практика. Для госзаказчиков это ещё и требование (п. 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).

bsl
// Функция в серверном общем модуле (это то, что написала модель):
Функция РассчитатьСкидку(Сумма, ПроцентСкидки) Экспорт

	Если ПроцентСкидки < 0 Или ПроцентСкидки > 100 Тогда
		ВызватьИсключение НСтр("ru = 'Процент скидки вне диапазона 0..100'");
	КонецЕсли;
	Возврат Окр(Сумма * (100 - ПроцентСкидки) / 100, 2);

КонецФункции
bsl
// Тестовый модуль в расширении с тестами.
Процедура ИсполняемыеСценарии() Экспорт

	ЮТТесты
		.ДобавитьТестовыйНабор("Расчёт скидки")
			.ДобавитьТест("ОбычнаяСкидка")
			.ДобавитьТест("ГраничныеЗначения");

КонецПроцедуры

Процедура ОбычнаяСкидка() Экспорт

	// Ожидаемое значение посчитано независимо от кода: 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.

🔗 Источники ​

Официальное и нормативное:

Бенчмарки:

Инструменты и каталоги:

Для дальнейшего чтения (материалы Инфостарта и Habr собраны из курируемых списков, открывайте с проверкой актуальности):

← Предыдущий | 🗺 Оглавление | Следующий →