Разработчик просит ассистента добавить проверку перед проведением документа. Ответ приходит за несколько секунд: аккуратный код, правильные отступы, обращение к общему модулю с очень правдоподобным именем. Модуля с таким именем в базе нет. Или он есть, но процедура называется иначе, и параметров у неё четыре, а не два.
Хуже, когда ошибка не бросается в глаза. Ассистент обращается к реквизиту, который в типовой конфигурации действительно есть, — но в вашей базе его давно не заполняют: при внедрении значение переехало в дополнительный реквизит, а типовое поле осталось пустым. Такой код не падает и не подсвечивается синтаксической проверкой. Он просто тихо считает не то.
Дальше обычно происходит одно из двух. Либо разработчик решает, что нейросети для 1С не годятся, и возвращается к прежнему укладу. Либо продолжает пользоваться вполсилы: спрашивает про общее, а всё, что касается своей базы, пишет сам. Оба вывода понятны, и оба преждевременны.
Языковая модель не хранит внутри справочник фактов, из которого можно достать нужную строку. Она продолжает текст наиболее вероятным образом. По 1С у неё есть общее представление, собранное из открытых источников: документации, статей, публичных примеров кода. Этого достаточно, чтобы построить грамматически и стилистически безупречный ответ.
Чего у неё нет — вашей конфигурации. Она её не видела.
Когда точных данных не хватает, модель не останавливается и не говорит «не знаю». Она достраивает недостающее по аналогии: имя модуля собирает из привычного именования, сигнатуру — из того, как обычно выглядят похожие методы, структуру проверки — из типовых образцов. Ответ правдоподобен именно потому, что собран из настоящих закономерностей 1С. И неверен потому, что закономерности — это не ваша база.
Отсюда свойство, которое многие замечают на практике: чем сильнее доработана база, тем увереннее и тем чаще ошибается ассистент. На чистой типовой общие представления во многом совпадают с реальностью. На базе, которую десять лет правили под процессы конкретной компании, совпадений становится мало — а тон ответа не меняется. Уверенность модели никак не связана с её правотой, и это главное, что стоит про неё понимать.

Первое, что приходит в голову, — дать модели прочитать код. Это упирается сразу в три стены.
Объём. Выгрузка средней доработанной конфигурации — это сотни мегабайт исходников и десятки тысяч процедур. Ни одно окно контекста такого не вмещает. Резать на куски можно, но тогда модель видит куски, а не конфигурацию, и на вопрос о целом отвечает по фрагменту.
Потеря связей. Код 1С — не плоский текст. Документ ссылается на регистры, модуль вызывает процедуру соседнего модуля, расширение перехватывает процедуру типовой, отчёт опирается на макет. Когда вы вставляете фрагмент в чат, все эти связи остаются за кадром. Вопрос «что сломается, если тронуть этот документ» по фрагменту не решается в принципе — не потому, что модель слабая, а потому, что ответа во фрагменте нет.
Приватность. Конфигурация — это бизнес-логика компании, а иногда рядом с ней и персональные данные. Решение отправить её во внешний сервис принимает обычно не разработчик, и во многих компаниях оно не принимается вовсе.
Есть и четвёртая причина, бытовая. Даже если объём и приватность вас устраивают, подкладывать руками нужные куски перед каждым вопросом — работа, которая надоедает за неделю.
Подход, снимающий все четыре препятствия сразу, устроен иначе. Модели не дают прочитать код целиком — ей дают инструмент, которым она сама достаёт нужное. Выгрузка конфигурации один раз разбирается в указатель, и ассистент обращается к нему на каждый вопрос: не «вспомни», а «посмотри».
На практике это выглядит так.
Поиск по смыслу, а не по буквам. Вы спрашиваете «где считается скидка по дисконтной карте», не помня точного имени документа и не угадывая, как его назвал предшественник. Находится то, что относится к делу, даже если формулировка не совпадает ни с одним именем в метаданных.
Связи с точностью до модуля. Указатель хранит не только «кто как называется», но и кто кого вызывает — и различает одноимённые процедуры из разных модулей. В 1С это не мелочь: методов с одинаковыми именами в большой конфигурации хватает, и связь вида «Модуль.Функция» отличается от голого имени метода примерно так же, как адрес с номером дома от названия улицы.
Оценка влияния изменений. Вопрос «что сломается, если тронуть это» перестаёт быть предметом интуиции. Ответ строится по графу связей, и его можно проверить.
Справка платформы и стандарты под рукой. Выдумываются ведь не только ваши объекты, но и платформенные методы: несуществующая сигнатура — классика жанра. Когда рядом лежат справка платформы нужной версии и справочник Библиотеки стандартных подсистем, этот класс ошибок закрывается отдельно от вашей базы.

Каждая из перечисленных возможностей — отдельная служба на машине разработчика. Ассистент обращается к ним сам.
Меняется само поведение ассистента. Он отвечает из указателя, а не по памяти. А когда в указателе нужного нет, это видно — и честное «не нашёл» полезнее уверенной выдумки.

Разбор конфигурации, построение указателя и поиск по нему идут на вашей машине. Смысловые отпечатки кода считает ваша видеокарта — без подписки на внешний сервис и без отправки текста наружу ради этого расчёта. Если подходящей видеокарты нет, расчёт идёт на процессоре: дольше, но так же локально. При индексации и поиске из контура не уходит ничего.

Где считать смысловые отпечатки — выбирается в настройках. Без видеокарты расчёт идёт на процессоре.
Здесь важно провести честную границу, потому что слово «локально» часто используют слишком широко.
Сама языковая модель, которая формулирует ответ, — отдельная история. Если вы работаете с облачным ассистентом, в это облако уходит то, что вы ассистенту отправляете. Разница не в том, что кода нигде нет, а в том, что провайдера выбираете вы: можно подключить приватную или локально развёрнутую модель, принудительного канала в одно конкретное облако нет. Индексация и поиск при этом остаются на вашей машине в любом случае.
То есть «код не покидает контур» — это про разбор конфигурации и работу с указателем. Обещанием, что вообще ничего никуда не уходит, эта фраза не является: такое обещание было бы неправдой.
Порядок простой, и в нём нет ничего, что требовало бы отдельного администратора.

Разбор конфигурации идёт стадиями, с оценкой оставшегося времени, и его можно приостановить.
После доработок база не переиндексируется заново: пересчитывается только изменившееся. Расширения при этом видны вместе с типовой — как одна итоговая конфигурация, с учётом перехватов процедур.
Три вещи, которые честнее сказать сразу.
Ассистент не перестаёт ошибаться совсем. Он перестаёт выдумывать имена и связи вашей базы, потому что берёт их из указателя, — но проверять его работу по-прежнему нужно.
Он не принимает за вас архитектурных решений. Хороший ответ на плохо поставленную задачу остаётся плохим ответом.
Указатель знает ровно то, что в него положили. Выгрузка недельной давности — это ответы недельной давности; за актуальностью надо следить так же, как за любым другим рабочим инструментом.
Описанный здесь способ — не единственный. Облачные чат-боты, помощники внутри редакторов кода, специализированные наборы под 1С и полностью локальные сборки решают задачу по-разному, и у каждого варианта свой потолок. Честный разбор всех четырёх групп, с минусами и сравнительной таблицей, — в отдельном материале: ИИ для разработки в 1С: четыре подхода и их потолки.
Сейчас идёт открытая бета. Подтвердили адрес почты — и продукт доступен бесплатно, без привязки карты и без ограничения по числу машин. Скачать и проверить на своей базе можно на onesmcp.ru.
Самый честный способ проверить любое утверждение из этой статьи — задать ассистенту тот вопрос по своей конфигурации, на котором он раньше отвечал уверенно и мимо.
Остались вопросы?