Проверка генерации запроса 1С агентами LLM на минималках

18.09.26

Интеграция - Нейросети

Настала пора лично проверить, можно ли использовать ИИ для моей работы: может ли он за меня «придумать как надо сделать запрос». Цель эксперимента – проверить применимость ИИ для создания запросов с «изюминкой» для 1С

Основная «придумка» эксперимента: 

  • выбрать задачу, которая редко встречается в повседневной практике, чтобы не получить решение из запасников. 
  • взять пару-тройку бесплатных или недорогих ИИ-агента и сравнить результат.
    Что б «дёшево и сердито», для первого опыта.


Выбор задачи.

Утверждение «Оно само пишет рабочий код и запросы» - на мой взгляд, нуждается в проверке.
Пару месяцев назад мне как раз попалась такая задача, на которую янд.Алиса чётко и безапелляционно выдала несуществующие в 1С операторы запросов и подкрепила ссылкой на страницу с контентом, явно нашлепанным с помощью ИИ. Пришлось отлаживать самостоятельно.
В задаче требовалось сделать функцию для HTTP-сервиса с пагинацией (постраничной выдачей) цен и свободных остатков. Хорошая задачка, несложная и нетиповая, возьмём за основу.

По результатам статей на форумах за последние месяцы понял, что для уверенной работы ИИ нужен будет MCP-сервер (хотя бы на метаданные конфы). В мои планы и ресурсы такой узел схемы для экспериментов не подходил.
 

А что если попросить выборку по объекту, который ИИ, уж точно знает? Справочник Номенклатура и его самые популярные реквизиты!
Ну, и для пущего упрощения: не требовать JSON, получать результат в виде таблицы значений.

Получится такая проверятельная, обаятельная «сферическая лошадь в вакууме массой в один килограмм» (benchmark, репер)

 

Выбор ИИ-агентов 

Агент СМИТ найден не был, «эка незадача» этим нас не остановишь, ну что я Neo какой-нибудь
Удалось зарегистрироваться на Gemini-Pro, Qwen, GROQ
Можно начинать эксперимент.
 

Промпт

нужен код функции на языке 1С (BSL) производящей Пагинацию выборки Номенклатуры.
Выполнение на сервере.
Входящие параметры: КоличествоПозицийНаСтраницу, НомерСтраницы.
Запросом выбираем элементы из Справочника Номенклатура.
Поля результата Наименование, Код, Артикул, ЕдиницаИзмерения
Результат функции - таблица значений с числом строк = КоличествоПозицийНаСтраницу, и взятое из страницы с номером = НомерСтраницы.

 

Результаты генерации

публикую комментарии к полученному коду и наиболее успешные результаты генерации
 

GROQ (объявил использование qwen3.6 120b)

 

Итог: неэффективные запрос и код; код нерабочий.
 

Qwen-coder

 

Итог: запрос с ошибками; код нерабочий.

 

Gemini-PRO 

 

Код функции и комментарии агента

 

Итог: Сразу работоспособный код и запрос. Оптимизация явно нужна.

 

Qwen3.7-Plus

 

Код функции

 

Итоги: Качественный запрос, работающий код процедуры получены за 20 минут. Основное время – мои проверки в 1С.
Приемлемый результат получен только благодаря моему знанию: «какой должен быть оптимальный запрос». 


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

Если бы я использовал такой метод работы в реальном проекте, то потратил бы больше времени на разбор ошибок, поскольку «идеи чужие, и сначала надо поймать идею, а уж потом следующую из неё ошибку».
Вот в этот раз: не сразу понял логику от Gemini, а потому результат смог правильно оценить только на следующий день :)

И тут выявляется ещё один подводный камень работы с ИИ: легко можно получить работающий код с неполноценной логикой.

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

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

 

Но, сегодня все свои проекты продолжу разрабатывать и кодировать так, как делал раньше.

 

Благодарю за уделённое внимание.
До встречи на Инфостарте!

Вступайте в нашу телеграмм-группу Инфостарт

LLM Вайбкодинг

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

17500 руб.

20.12.2024    19350    98    32    

83

Нейросети Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Задавайте вопросы базе 1С обычными словами: получайте данные, находите ошибки и связанные документы, проверяйте права, работайте с вложениями и контролируемо вносите изменения. Всё это работает в самой программе, а Codex и Claude подключаются по желанию.

15989 руб.

30.07.2026    12365    26    4    

26

Инструментарий разработчика Нейросети Платные (руб)

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

15250 руб.

25.08.2025    70741    140    41    

148

Нейросети 1С:Управление торговлей 11 Бесплатно (free)

Я не считаю покупку специализированных платных инструментов обязательной для разработки с ИИ: нужную обвязку тоже можно создать с агентом. Показываю этот подход на расширении УТ 11 с динамическим списком остатков. Одно задание Codex, 37 минут до проверки, работающая форма. Рассказываю, как устроено окружение, почему первую попытку пришлось переснять и что получилось в повторном прогоне.

17.09.2026    4547    61    Ibrogim    46    

17

Нейросети Разработчик Руководитель проекта 1C:ERP Бесплатно (free)

Служба на Rust, через которую Claude Code, Cursor или другой MCP-клиент вызывает узких ИИ-агентов. Агент — папка с prompt.md и config.toml, модель — строка в конфиге: DeepSeek, Claude Code по подписке, Codex или локальная модель. Агент получает MCP-инструменты, работает в фоне, каждый ход записывается. Внутри — цифры за три месяца: 10 351 вызов, 78 агентов.

17.09.2026    1395    0    Sorm    6    

10

Нейросети Бесплатно (free)

Отладка кода 1С традиционно выглядит примерно одинаково: поставить точку останова, запустить клиент, воспроизвести сценарий, дождаться остановки, посмотреть локальные переменные, пройти несколько строк, раскрыть очередную структуру или коллекцию, вычислить выражение — и повторить все это еще несколько раз. А что, если значительную часть этой рутины поручить AI-агенту?

15.09.2026    3173    andrew.ab    5    

15

Нейросети Разработчик Аналитик Руководитель проекта Бесплатно (free)

Я принёс команде приём, с которым нейронка наконец начала понимать нашу конфигурацию: у меня он работал, у коллег — нет. Дело было не в постановке задач и не в настройках: причина в том, что на их машинах индекс конфигурации считался бы несколько дней. Замер на одном и том же своде из 26 035 записей: три часа на процессоре против трёх с половиной минут на видеокарте. Разбираю, что такое индексация конфигурации и почему она дорогая ровно один раз, почему наша основная серверная машина — 64 ядра, 768 гигабайт памяти — на этой задаче проигрывает домашнему компьютеру, и почему приём одного человека упирается в вопрос, который никто не любит задавать.

09.09.2026    4582    solbol    9    

9

Нейросети Разработчик Бесплатно (free)

Первая часть подборки простых приёмов для работы с ИИ-агентами. Без «секретных техник» — скорее сверим часы и посмотрим, какие подходы действительно помогают экономить время, лимиты и нервы. Разберём шесть практических приёмов: как выбирать модель под задачу и не тратить дорогую модель на мелочи; зачем сначала составлять план сложной работы; как сохранять агентские сессии на VPS с помощью tmux и Herdr; почему голосовой ввод даёт больше контекста, но требует проверки; как перепроверять решения одного агента другим; и как организовать параллельную работу через Git worktree. Большинство этих вещей опытным пользователям наверняка знакомо. Но иногда именно «очевидная» мелочь оказывается той, о которой узнаёшь слишком поздно. Возможно, из этой подборки вам пригодится хотя бы один приём.

04.09.2026    3336    Ibrogim    11    

16
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. korelski 38 18.09.26 13:07 Сейчас в теме
Получаемый сразу от ИИ-агента код неоптимален, поэтому, как правило, требуются уточнения и, возможно, проверка на наличие галлюцинаций. Пока в 1С "вкалывают роботы, а не человек" не получится, а вместе запросто.
-------------
Чат DeepSeek. В коде ничего руками не правил. 5 минут вместе с проверкой.
----
// Параметры:
// КоличествоПозицийНаСтраницу - Число - количество строк на странице (> 0)
// НомерСтраницы - Число - номер страницы (нумерация с 1)
// МенеджерВТ - МенеджерВременныхТаблиц - не обязателен.
// Если Неопределено — создаётся внутри функции.
//
// Возвращаемое значение:
// ТаблицаЗначений - колонки:
// * Наименование
// * Код
// * Артикул
// * ЕдиницаИзмерения
//
&НаСервере
Функция ПолучитьНоменклатуруПоСтранице(КоличествоПозицийНаСтраницу,
НомерСтраницы,
МенеджерВТ = Неопределено) Экспорт

// --- Валидация входных параметров ---
Если КоличествоПозицийНаСтраницу <= 0 Тогда
КоличествоПозицийНаСтраницу = 10;
КонецЕсли;

Если НомерСтраницы <= 0 Тогда
НомерСтраницы = 1;
КонецЕсли;

// Определяем, нужно ли создавать и нумеровать ВТ
НужноНумеровать = (МенеджерВТ = Неопределено);

Если НужноНумеровать Тогда
МенеджерВТ = Новый МенеджерВременныхТаблиц;
КонецЕсли;

// ============================================================­
// ШАГ 1. Нумерация справочника — только если менеджер создан внутри.
// АВТОНОМЕРЗАПИСИ() допустимо только в ПОМЕСТИТЬ.
// Исключаем помеченные на удаление элементы и группы.
// ============================================================­
Если НужноНумеровать Тогда

ЗапросНумерации = Новый Запрос;
ЗапросНумерации.МенеджерВременныхТаблиц = МенеджерВТ;
ЗапросНумерации.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 10000000
| АВТОНОМЕРЗАПИСИ() КАК НомерСтроки,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Код КАК Код,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
|ПОМЕСТИТЬ ВТ_НоменклатураНумерованная
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Наименование,
| Номенклатура.Ссылка";

ЗапросНумерации.Выполнить();

КонецЕсли;

// ============================================================­
// ШАГ 2. Вычисляем «дельту» — минимальный номер в ВТ.
// АВТОНОМЕРЗАПИСИ() не гарантирует старт с 1, поэтому нормализуем.
// Сдвигаем на -1, чтобы логическая нумерация начиналась с 1
// (иначе условие > НачалоДиапазона отсекает первую строку).
// ============================================================­
ЗапросДельты = Новый Запрос;
ЗапросДельты.МенеджерВременныхТаблиц = МенеджерВТ;
ЗапросДельты.Текст =
"ВЫБРАТЬ
| МИНИМУМ(ВТ_НоменклатураНумерованная.НомерСтроки) КАК Дельта
|ИЗ
| ВТ_НоменклатураНумерованная КАК ВТ_НоменклатураНумерованная";

ВыборкаДельта = ЗапросДельты.Выполнить().Выбрать();
Дельта = 0;
Если ВыборкаДельта.Следующий() И ВыборкаДельта.Дельта <> NULL Тогда
Дельта = ВыборкаДельта.Дельта - 1;
КонецЕсли;

// ============================================================­
// ШАГ 3. Выбираем строки нужной страницы.
// Условие: Начало < (НомерСтроки - Дельта) <= Конец
// ============================================================­
НачалоДиапазона = (НомерСтраницы - 1) * КоличествоПозицийНаСтраницу;
КонецДиапазона = НачалоДиапазона + КоличествоПозицийНаСтраницу;

ЗапросСтраницы = Новый Запрос;
ЗапросСтраницы.МенеджерВременныхТаблиц = МенеджерВТ;
ЗапросСтраницы.Текст =
"ВЫБРАТЬ
| ВТ_НоменклатураНумерованная.Наименование,
| ВТ_НоменклатураНумерованная.Код,
| ВТ_НоменклатураНумерованная.Артикул,
| ВТ_НоменклатураНумерованная.ЕдиницаИзмерения
|ИЗ
| ВТ_НоменклатураНумерованная КАК ВТ_НоменклатураНумерованная
|ГДЕ
| ВТ_НоменклатураНумерованная.НомерСтроки - &Дельта > &НачалоДиапазона
| И ВТ_НоменклатураНумерованная.НомерСтроки - &Дельта <= &КонецДиапазона
|УПОРЯДОЧИТЬ ПО
| ВТ_НоменклатураНумерованная.НомерСтроки";

ЗапросСтраницы.УстановитьПараметр("Дельта", Дельта);
ЗапросСтраницы.УстановитьПараметр("НачалоДиапазона", НачалоДиапазона);
ЗапросСтраницы.УстановитьПараметр("КонецДиапазона", КонецДиапазона);

// --- Формируем результирующую таблицу значений ---
// Колонки не создаём вручную — Выгрузить() сам выведет
// типы из результата запроса.
ТаблицаРезультат = ЗапросСтраницы.Выполнить().Выгрузить();

Возврат ТаблицаРезультат;

КонецФункции
3. itsmith 36 19.09.26 08:11 Сейчас в теме
(1) Не оптимально, но работает.

Выбрать первые 10 миллионов - улыбнуло

Учтён дефект (особенность?) начального номера для АвтоНомерЗаписи(), это я упустил совсем

Оптимальный вариант - собрать всё три части в одном запросе.

Итог: соглашусь с комментарием
а) у свежих ИИ-моделей код для 1С - приличный
б) проверять надо
в) нельзя переставать думать самому :)
5. korelski 38 19.09.26 22:51 Сейчас в теме
(3) ваш запрос не рабочий.
" стандарт языка 1С запрещает использование УПОРЯДОЧИТЬ ПО при создании временной таблицы без ПЕРВЫЕ. Это связано с тем, что таблица в реляционной базе по определению неупорядочена, и сортировка при вставке может игнорироваться СУБД"

Ваша функция пропустит первый номер.

Средствами 1С одним запросом решить задачу не возможно, возможно я ошибаюсь.
Оптимальный вариант - создать временную таблицу один раз.

Единственный вариант где пагинация через АВТОНОМЕРЗАПИСИ неприемлема - запрос динамического списка. Тормоза будут дикие.

Задал Промт GPT 6 Astra Extra High. Там и ума прилично и токены жрёт как не в себя, а ответ оказался неожиданно удручающий.
6. itsmith 36 21.09.26 07:08 Сейчас в теме
(5)
ваш запрос не рабочий.


Признаю. Запрос простенький, в конструкторе не открывал.

Зря меня "улыбнуло" - даже в трёх строчках может быть скрыто множество смыслов :)

Начал разбирать ситуацию с прошлым проектом, который стал источником к "сферической лошади": "как же там всё работает?"

Всё просто: Цены (РС срез последних) и Остатки это уже виртуальные таблицы, к ним поход у 1С проще, однако.

(5)
Средствами 1С одним запросом решить задачу не возможно, возможно я ошибаюсь.


Вот мой вариант запроса. Предлагаю проверить.
ВЫБРАТЬ ПЕРВЫЕ 1000000
	Номенклатура.Ссылка КАК Ссылка,
	АВТОНОМЕРЗАПИСИ() КАК НомерСтроки
ПОМЕСТИТЬ втНоменклатура
ИЗ
	Справочник.Номенклатура КАК Номенклатура

УПОРЯДОЧИТЬ ПО
	Номенклатура.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МИНИМУМ(втНоменклатура.НомерСтроки - 1) КАК СдвигПервойСтроки
ПОМЕСТИТЬ втСдвиг
ИЗ
	втНоменклатура КАК втНоменклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втНоменклатура.Ссылка.Наименование КАК Наименование,
	втНоменклатура.Ссылка.Код КАК Код,
	втНоменклатура.Ссылка.Артикул КАК Артикул,
	втНоменклатура.Ссылка.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	втНоменклатура.НомерСтроки КАК НомерСтроки
ИЗ
	втНоменклатура КАК втНоменклатура,
	втСдвиг КАК втСдвиг
ГДЕ
	втНоменклатура.НомерСтроки - втСдвиг.СдвигПервойСтроки МЕЖДУ &НачальнаяПозиция И &КонечнаяПозиция
Показать


Примечание:
Проверками в консоли запросов не смог получить СдвигПервойСтроки > 0 (8.3.27.2214, толстый клиент)
7. korelski 38 21.09.26 08:35 Сейчас в теме
(6) за один запрос я имел ввиду без использования временных таблиц, к примеру для вывода результата в динамический список.

Первоначальный вариант запроса был плюс-минус похож на ваш. Но так как задача была получить оптимальную функцию пагинации,то пришлось расширить условия задачи и добавить использование менеджера временных таблиц.
На получении одной страницы без МВТ уйдет секунда, на получении 100 выборочных страниц из справочника на 10к записей уже не менее 1 минуты. На получении всех страниц можно сделать кофе-брейк. Если добавить МВТ, то время выполнения для любого количества страниц сожмется до 1-2 секунд.
2. GarriSoft 658 18.09.26 14:36 Сейчас в теме
Коллега, откройте для себя разработку на 1С с помощью нормальных инструментов и вам не придётся проверять код, потому что он будет написан по стандартам 1С, без глюков и косяков, покрыт юнит-тестами и прогнан через Vanessa. Это полный цикл: от постановки задачи до готового результата. Вмешиваться в процесс отладки даже не придётся.

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

Сейчас я вообще не пишу код руками: не добавляю реквизиты, не проектирую формы, не заимствую объекты в расширения. Я формулирую задачу и ИИ-агент, сам или через субагентов, выполняет её.

При этом я понимаю, что это даже не уровень - это просто новая ступень. Я знаю людей, которые с помощью ИИ-агентов поднялись в разработке на 1С на несколько пролётов и делают вещи, которые сейчас кажутся фантастикой.
4. ann_20260519 1 19.09.26 17:22 Сейчас в теме
(2) Скажите, а вы куда трудоустроились. В какую компанию?
Для отправки сообщения требуется регистрация/авторизация