Какие ИИ-инструменты и нейросети использовать для программирования в 1С?

Программист IT и автоматизация бизнеса
← На главную

В последнее время искусственный интеллект активно проникает во все сферы, и разработка на платформе 1С — не исключение. Многие программисты задаются вопросом: существуют ли ИИ-ресурсы, способные реально помочь в решении повседневных задач, от написания кода до его анализа? Давайте подробно разберем, какие инструменты существуют, каковы их ограничения и как извлечь из них максимальную пользу.

Текущее состояние и ограничения ИИ в 1С

Прежде чем перейти к конкретным инструментам, важно понимать, почему универсальные большие языковые модели (LLM), такие как ChatGPT, Gemini и другие, часто "спотыкаются" о специфику 1С. Как справедливо отмечают опытные разработчики, у них есть ряд фундаментальных ограничений.

Почему ИИ часто ошибается:

  1. Незнание структуры конфигураций. ИИ не имеет доступа к метаданным вашей конкретной базы. Он не знает, какие у вас есть справочники, документы, регистры, их реквизиты и связи. Из-за этого он может предлагать код, который обращается к несуществующим объектам.
  2. Отсутствие знаний о БСП. Библиотека стандартных подсистем (БСП) содержит огромное количество готовых функций и механизмов. ИИ, не обученный на БСП, будет "изобретать велосипед" вместо того, чтобы предложить использовать стандартную функцию, например, ОбщегоНазначения.ПолучитьЗначениеРеквизита().
  3. Путаница с контекстом выполнения. Модели могут легко перепутать клиентский и серверный код, предлагая вызвать серверную процедуру с клиента без директивы &НаСервере или наоборот.
  4. "Галлюцинации" и выдуманный код. Это одна из самых частых проблем. ИИ может выдумывать несуществующие методы, свойства объектов или переменные. В итоге вы получаете нерабочий код, который выглядит правдоподобно, но вызывает синтаксические ошибки при проверке.

Из-за этих ограничений пока не стоит ждать, что ИИ сможет самостоятельно написать сложную обработку или отчет с нуля. Однако он может стать мощным помощником, если использовать его правильно.

Эффективная стратегия работы: "подкормка" контекстом (RAG)

Ключ к успешному использованию ИИ в 1С — это предоставление ему необходимого контекста. Нельзя просто попросить "напиши код для X". Нужно помочь модели, "подкормив" ее релевантной информацией. Этот метод известен как Retrieval-Augmented Generation (RAG). Разберем его по шагам на практическом примере.

Задача: Написать код, который извлекает из журнала регистрации список документов по определенному пользователю.

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

  1. Ищем документацию. Сначала нужно найти информацию о том, как работать с журналом регистрации на встроенном языке. Для этого можно использовать официальные ресурсы, например, задать вопрос боту-консультанту на портале ИТС. Он отлично справляется с ролью поисковика.
  2. Извлекаем контекст. Поисковик, скорее всего, приведет нас к нужной главе руководства разработчика на ИТС или к статьям в Синтакс-помощнике по объектам ЖурналРегистрации, ВыборкаЖурналаРегистрации и т.д.
  3. "Кормим" нейросеть. Сохраняем найденную главу или статью (например, в PDF) и прикрепляем этот файл к нашему запросу в чате с нейросетью. Можно также просто скопировать и вставить текст документации прямо в промпт.
  4. Формулируем запрос. Теперь, когда у модели есть контекст, мы можем дать ей задание. Промпт может выглядеть так: "На основе приложенного файла из документации 1С, напиши, пожалуйста, процедуру на встроенном языке 1С, которая извлекает из журнала регистрации все документы, созданные пользователем с именем 'Иванов И.И.' за последнюю неделю."
  5. Итерируем и "убеждаем". Нейросеть может не справиться с первого раза. Если сгенерированный код не работает, не сдавайтесь. Укажите на ошибку, скопируйте описание конкретного метода (например, ВыгрузитьЖурналРегистрации() из Синтакс-помощника) и попросите исправить код с учетом этой информации. Иногда помогает прямая фраза: "Твой код не работает. Перепиши его, используя метод XYZ". Часто после этого модель извиняется и генерирует правильный вариант.

Этот подход превращает ИИ из "всезнайки" в ассистента, который работает с предоставленными вами данными, что значительно повышает качество результата.

Какие ИИ-модели и инструменты выбрать?

Рынок ИИ-инструментов постоянно меняется, но на основе опыта пользователей можно выделить несколько проверенных вариантов.

Сторонние LLM

Многие разработчики предпочитают использовать платные модели через агрегаторы нейросетей. Хотя это требует затрат, качество генерации кода для 1С часто оказывается выше, чем у бесплатных аналогов.

Посмотрим на пример код-ревью с помощью Grok 4.

Допустим, у нас есть код, который должен выводить список ФИО на печать, разбивая его на страницы по 8 человек.


// Промпт для Grok 4:
// Нужно разбить список из 20 ФИО на страницы так, чтобы на каждой странице отображалось не более 8 ФИО. 
// Прежде всего, есть ли в моем коде ошибки? Для начала выведи кратенько список ошибок. Пока без подробностей.

КоличествоФизЛиц = СсылкаНаОбъект.ФизЛица.Количество();
Область4 = Макет.ПолучитьОбласть("Область4");
Для к = 1 По КоличествоФизЛиц Цикл
    Если к > КоличествоФизЛиц Тогда
        ТекФИО = "";
    Иначе
        ТекФИО = СсылкаНаОбъект.Рарус_ФизЛица[к-1].ФизическоеЛицо;
    КонецЕсли;

    Область4.Параметры.ФИОМОЛ1 = ТекФИО;
    ТабДокумент.Присоединить(Область4);
КонецЦикла;
Показать();

Ответ от Grok 4:

Краткий список ошибок в коде:

  1. Условие Если к > КоличествоФизЛиц никогда не сработает (из-за границ цикла).
  2. Несоответствие имён коллекций: ФизЛица vs Рарус_ФизЛица.
  3. Нет логики для разбивки на страницы (всё присоединяется в один блок).
  4. Использование Присоединить вместо Вывести для вертикального вывода списка.

Как видим, ИИ точно указал на все ключевые проблемы в коде, что позволяет быстро их исправить.

Официальный инструмент "1С:Напарник"

Фирма "1С" активно развивает свой собственный ИИ-помощник, интегрированный в среду разработки 1С:EDT. "1С:Напарник" (или AI-ассистент) обучен на кодовой базе типовых конфигураций и документации 1С, что делает его более осведомленным в специфике платформы. Его основные возможности:

Продвинутые инструменты: семантический поиск по коду

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

Здесь на помощь приходят решения для семантического поиска, такие как упомянутый на форуме "MCP сервер". Принцип их работы следующий:

  1. Специальная embedding-модель "читает" весь код вашей конфигурации.
  2. Она преобразует каждый фрагмент кода (процедуру, функцию) в числовой вектор (эмбеддинг), который отражает его семантический смысл.
  3. Когда вы вводите запрос на естественном языке (например, "поиск всех мест, где рассчитывается НДС"), система преобразует ваш запрос в такой же вектор.
  4. После этого она ищет в базе векторов кода те, которые наиболее близки по смыслу к вектору вашего запроса.

Это позволяет находить нужные фрагменты кода, даже если в них нет ни одного слова из вашего запроса. Для таких систем важен выбор embedding-модели. Упомянутая intfloat/multilingual-e5-small — хороший старт, но для русскоязычного кода 1С могут лучше подойти более современные модели, например, e5-base или bge-m3.

В заключение, ИИ — это уже не будущее, а настоящее для разработчика 1С. Он еще не способен заменить человека, но уже является мощным инструментом, который экономит время на рутинных задачах, помогает находить ошибки и искать информацию. Ключевым навыком становится умение правильно формулировать запросы, предоставлять ИИ необходимый контекст и критически оценивать полученный результат.

← На главную