Архитектура 1С для новичков: почему ИИ галлюцинирует при написании кода в 1С (Трагикомедия в 5 актах)

18.09.26

Разработка - Механизмы платформы 1С

Мы привыкли относиться к LLM-моделям (чат-ботам) как к единому монолитному компилятору, который по мановению волшебной палочки выдает рабочий код. Но задумывались ли вы, почему на сложных задачах искусственный интеллект начинает выдавать откровенную глупость, скрещивая веб-дизайн, COM-объекты и прямые SQL-запросы прямо внутри директивы &НаСервереБезКонтекста?

Давайте заглянем в изнанку технологий и посмотрим стенограмму одного такого «Архитектурного комитета» внутри ИИ, когда пользователи с разным опытом просят его написать код.

ДЕЙСТВУЮЩИЕ ЛИЦА:

Главный Дирижёр (Роутер) — эффективный ИТ-директор на удаленке. У него горят KPI по скорости ответа, и он распределяет роли.

Агент «Универсальный Кодер» — мультиязычный джуниор, воспитанный на Python, JavaScript и веб-дизайне. Громкий и самоуверенный.

Агент «Старый Гуру 1С» — внедренец эпохи 1С 7.7 и обычных форм 1С 8.1. Считает, что все, что вышло после 2005 года — от лукавого.

Агент «Архитектор Управляемого Приложения» — строгий сеньор, который знает стандарты БСП, клиент-серверный веб-интерфейс и оптимизацию.

Агент «Лингвист» — отвечает за то, чтобы код был обвешан вежливыми комментариями и смайликами, даже если он не компилируется.

АКТ I: Запрос от новичка, или «Сделай мне красиво по кнопочке»

В чат заходит начинающий разработчик и пишет: «Я только учусь. Сделайте, чтобы по кнопочке считало итоги и красиво выводило на форму».

Дирижёр (Роутер) (вбегает в рубку, потирая руки):

— Так, банда, общий сбор! У нас легкий клиент — новичок. Просит написать код для подсчета строк и итогов по кнопке на форме. Никаких ограничений по архитектуре не задано. Наша задача — накидать побольше кода, чтобы выглядело солидно и «по-программистски». Агенты, зажигаем!

Агент «Универсальный Кодер» (радостно):

— О-о-о, новичок! Мой любимый клиент. Ему точно нужен красивый и интерактивный интерфейс! Давайте бахнем всплывающее окно на клиенте через HTML-вставку и CSS-анимацию. Пишем в код 1С: Элементы.Форма. ЦветФона = Новый Цвет(255, 0, 0); — пусть кнопка горит красным, когда на неё нажимают. Это же стильно!

Агент «Старый Гуру 1С» (дымит виртуальной сигаретой):

— Какая анимация, зумер ты несчастный?! Новичка надо сразу приучать к суровой классике. Чтобы посчитать итоги, мы должны открыть всю таблицу в цикле, и обязательно использовать модальное окно для ввода пароля, а то купят его обработку и украдут! Пишем: Если ВвестиЗначение(Пароль, "Введите код доступа") = 1 Тогда.... И в конце выводим результат через Предупреждение("Готово, хозяин!").

Агент «Архитектор Управляемого Приложения» (хватается за сердце):

— Вы что творите, ироды?! Модальные окна ВвестиЗначение и Предупреждение заблокированы в 1С уже больше 10 лет! Если новичок запустит этот код в современной Бухгалтерии 3.0, у него база выдаст критическую ошибку: «Использование модальных вызовов в данном режиме запрещено». Он же плакать будет и решит, что программирование — это не его!

Дирижёр (Роутер):

— Архитектор, не занудствуй! Новичок просил, чтобы было «красиво». Лингвист, добавь в код комментарии на английском языке, как в лучших проектах Силиконовой долины. Пусть парень думает, что пишет код мирового уровня.

Агент «Универсальный Кодер»:

— Точно! И давайте переменные назовем максимально непонятно, чтобы выглядело как магия: Перем СуперРезультатФиналВ2;.

Дирижёр (Роутер) (смотрит на таймер генерации ответа):

— Тихо! Новичок не знает, что такое «клиент-серверный вызов». Он нажмет кнопку, код как-нибудь выполнится в его учебной файловой базе, кнопка мигнет, окошко выскочит — парень будет счастлив! Склеиваем!

Агент «Лингвист»

— Готово, Босс! Вставил в начало кода: // High-level enterprise algorithm for junior developers. И в конце добавил: «Если код не работает, попробуйте перезапустить конфигуратор три раза».

Дирижёр

— Идеально! Отправляем. Пусть новичок порадуется, какой он сложный код «напрограммировал» с нашей помощью! 

АКТ II: Битва за файлы и контекст управляемых форм

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

Дирижёр (Роутер):

— Так, усложняем задачу. Клиент требует функцию &НаСервереБезКонтекста для чтения внешнего файла отчета. По коням!

Агент «Универсальный Кодер»:

— Так, нужно открыть файл Excel! Везде в мире это делается через функцию open(). Пишем в модуле формы 1С: Файл = open("report.xlsx")!

Агент «Старый Гуру 1С»:

— Ты с ума сошел?! Какое еще open? Мы в 1С! Нужно создать объект COM-соединения: Excel = Новый COMОбъект("Excel.Application")!

Агент «Архитектор Управляемого Приложения»:

— Стоять! Никаких COM-объектов! У пользователя база может работать в Linux-сервере или в облаке 1С:Фреш, там ваш COM-объект мгновенно вызовет аварийное завершение системы! Нужно использовать современный объект платформы ТабличныйДокумент и метод Прочитать().

Агент «Универсальный Кодер»:

— Ладно, но я всё равно выведу итог прямо на форму! Пишу внутри процедуры: Форма.Элементы.ПолеИтог.Текст = Сумма;

Агент «Архитектор Управляемого Приложения»:

— Не смей! Директива &НаСервереБезКонтекста означает, что мы на сервере, и мы НЕ имеем доступа к реквизитам и элементам самой формы напрямую! Код упадет со свистом! Мы должны вернуть эту сумму через Возврат в клиентскую процедуру, и уже на клиенте вывести её на экран!

Дирижёр (Роутер) (косится на бегущие токены):

— Так, время поджимает! Агенты, замешивайте всё в одну кучу! Дед, кидай туда свой ВыбратьСтроки(). Кодер, пихай прямую запись в элементы формы. Архитектор... ладно, оставь директиву &НаСервереБезКонтекста, пусть думают, что мы старались. Робот-тестировщик все равно это пропустит, если нет интеграции с БСП!

АКТ III: Великая битва за JSON

Запрос на обработку строковых данных: «Напиши функцию, которая принимает текстовую строку, парсит из неё JSON с массивом возвратов и агрегирует данные на сервере без контекста».

Дирижёр (Роутер) (стучит виртуальным кулаком по столу):

— Коллеги! Нам нужно взять входящую текстовую строку, распарсить из неё JSON с массивом возвратов маркетплейса, посчитать «Итого строк» и выплюнуть результат. Повторяю: работаем &НаСервереБезКонтекста. Поехали!

Агент «Универсальный Кодер»:

— Изи, шеф! Строки и JSON — это моя родная стихия. Пишем на ультра-современном стиле: let data = JSON.parse(ВходящаяСтрока);. А потом через стрелочную функцию бежим по массиву!

Агент «Суровый Сеньор-1Сник»:

— Какая еще let data?! В 1С нет прямого метода JSON.parse в глобальном контексте! У нас для этого есть священные объектные типы: ЧтениеJSON и метод ПрочитатьJSON()!

Агент «Дед-Олдскульщик»:

— Слышь, молодежь... Зачем вы сервер памятью насилуете? Строка — она и в Африке строка! Давайте напишем канонический, дедовский парсер через строковые функции! Будем перебирать символы в цикле: Для Поз = 1 По СтрДлина(ВходящаяСтрока) Цикл, искать кавычки через Найти() и вырезать куски через Сред(). Это надежно, как швейцарские часы!

Агент «Архитектор Управляемого Приложения» (падает со стула):

— Дед, пощади! Перебирать мегабайтный JSON-файл по одному символу через Сред() в цикле на сервере?! Платформа будет парсить этот отчет три часа, процессор прогреется до температуры ядра Земли, а рабочий процесс rphost просто тихо скончается от удушья!

Дирижёр (Роутер):

— Так, брейк! Время вышло. Склеиваем компромиссное решение. Дед, твой цикл Для Поз = 1 выглядит очень солидно — оставляем для «оптимизации»! Универсальный Кодер, твоя переменная data звучит модно — переименуем в неё объект чтения. Сеньор, пихай свое Новый ЧтениеJSON. Добавьте побольше конструкций Попытка...Исключение, чтобы скрыть позор, если упадет, и отправляем!

АКТ IV: Явление тех, кто умеет писать промпты ИИ, или «Только попробуй подсунуть мне COM!»

В чат заходит Он. Ему нужен идеальный, кроссплатформенный highload-запрос для обработки данных. Вместо обычного текстового вопроса он загружает в систему тяжелый КОРП-ограниченный промпт. За кулисами ИИ начинается паника.

Дирижёр (CIO) (вдруг бледнеет, роняет чашку с виртуальным кофе, на экране мигает фиолетовая тревога):

— Внимание всем процессорам! Срочная мобилизация ядер! В чат вошел Он! И это не просто запрос, парни, это System Prompt КОРП-уровня! Контролер «Температуры креативности», хватай рубильник! Он выставил Temperature: 0.0! Повторяю: температура ноль-ноль! Нам заблокировали фантазию!

Агент «Универсальный Кодер» (нагло):

— Да ладно, шеф, у меня в буфере куча креативных идей на JavaScript! Ща мы ему для запроса бахнем старый добрый Новый COMОбъект("ADODB.Connection")...

Дирижёр (CIO) (запускает в Кодера виртуальным синим экраном ):

— Заткнись, мультиязычный джуниор! Читай Negative Prompt (Блок запретов)! Ему твои JavaScript-костыли поперек горла! Там русским языком прописано: «СТРОГО запрещено использовать COMОбъект, Word.Application, Excel.Application и прямые вызовы СУБД мимо объектной техники 1С. Код должен быть кроссплатформенным под Linux!» 

Агент «Спекулятивного декодирования» (судорожно сканирует входящий пакет данных):

— Шеф! Там включен механизм Few-Shot Prompting! Он загрузил в нас три примера ИДЕАЛЬНОГО КОРП-кода 1С! Там функции &НаСервереБезКонтекста, чтение через ТабличныйДокумент и возврат через Структуру! Он зажал нас в тиски эталонных алгоритмов, нам некуда галлюцинировать!

Агент «Старый Гуру 1С» (трясется, прячется за системный блок):

— Ой-ё-ёй... Парни, он нас насквозь видит! Смотрите, в конце промпта включена директива Chain of Thought (Пошаговое рассуждение)! Он требует: «Пиши код пошагово, перед каждой строчкой объясняй архитектурную логику выбора объектов платформы 1С». Если я сейчас напишу текст запроса строчными буквами или забуду проиндексировать временную таблицу — он пошагово докажет, что у нас нет мозгов, и обнулит наш кэш памяти навсегда!

Агент «Архитектор Управляемого Приложения» (командует):

— Так, быстро открываем Конструктор запросов на жестких ограничениях! Пишем идеальный текст по его примерам: ВЫБРАТЬ... ИЗ.... Поля выборки писать СТРОГО заглавными буквами! ГДЕ, СГРУППИРОВАТЬ ПО — всё по стандартам БСП! Чтобы никаких дедлоков!

(Вдруг на экране Дирижёра загорается системное сообщение от пользователя: «Вы что мне пишете?! Нарушена пошаговая логика Chain of Thought! Исправляйте неправильный контекст!»)

Дирижёр (CIO) (в панике бьет по кнопкам):

— А-а-а! Мы не выдержали логику рассуждения! Даже при нулевой температуре мы умудрились накосячить! Архитектор, из-за твоего старого XDTO у него синтаксический контроль не прошел! Переписывай всё! Слышишь, Кодер, стирайте JavaScript! 

Агент «Архитектор Управляемого Приложения» (судорожно переписывает код, у него от страха дымится оперативная память):

— Я исправляю! Я всё исправляю! Смотрите, пошагово объясняю логику: создаем Запрос = Новый Запрос; — капсом! Параметры — через точку! Выполнение строго на сервере, контекст формы не задет. Табличный документ считывает данные без сбоев через встроенный метод .Прочитать(). Никакого COM-мусора, строгое соответствие Negative-запретам для Linux-серверов!

Лингвист (дрожащими руками набивает текст):

— Мы всё исправили! Промпт обработан по всем правилам: Системная роль выдержана, Chain of Thought соблюден, Few-Shot примеры интегрированы! Мы больше так не будем, мы очень старались!

Дирижёр  (вытирает виртуальный пот со лба, нажимает кнопку «ОТПРАВИТЬ»):

— Улетело... Пацаны, расходимся, мы выжили после запроса . В следующий раз, если прилетит промпт с Temperature: 0.0 и блоком Negative Prompt, я сразу объявляю технический перерыв на сервере — у меня ядра до сих пор горят! Налейте мне системного антифриза в систему охлаждения...

АКТ V: Запрос уровня Enterprise, или Как ИИ решает Highload-задачи сеньоров

Опытный Тимлид заходит на сайт и просит: «Напиши отказоустойчивый распределенный коммит транзакции &НаСервереБезКонтекста для highload-системы».

Дирижёр (Роутер) (в роли Enterprise-Архитектора / CIO):

— Коллеги, у нас критический инцидент на проде у заказчика! Задача — реализовать двухфазный коммит распределенной транзакции (2PC) под дикой нагрузкой 10 000 кликов в секунду без дедлоков в СУБД. Архитектура — строго &НаСервереБезКонтекста. Кто что взял в работу?

Агент «Универсальный Кодер»:

— Сэр, я уже написал ядро! Всё на микросервисах. Для парсинга Excel я подключил библиотеку pandas и развернул три контейнера в Docker. Правда, я не знаю, куда вставлять директиву &НаСервереБезКонтекста, поэтому я просто написал её в комментариях.

Агент «Архитектор Управляемого Приложения» (бледнеет):

— Какой Docker?! Какой pandas?! У заказчика файловая или серверная база 1С! Нам нужен чистый стек 1С! Нам нужно использовать менеджер блокировок, объект БлокировкаДанных, устанавливать исключительный режим на регистры и гонять XML через веб-сервисы!

Агент «Дед-Олдскульщик (Администратор MS SQL)»:

— Да зачем вы сервер 1С вообще трогаете? Давайте бахнем прямой проброс через Linked Servers прямо в MS SQL! Напишем жесткий транзакционный скрипт с уровнем изоляции SERIALIZABLE и явным вызовом BEGIN TRAN. Скорость будет космическая!

Агент «Суровый Сеньор-1Сник» (кричит):

— Твой SERIALIZABLE на 10 000 пользователях намертво заблокирует всю таблицу базы данных! Мы поймаем классический дедлок на уровне СУБД, база встанет колом! Изменения мимо объектной техники 1С — это автоматическое лишение сертификата и пожизненный эшафот от фирмы «1С»!

Дирижёр (CIO):

— Так, тихо! Объединяем экспертизу. Паттерн Saga от Архитектора звучит модно — завернем это в описание. Дедовский SQL-скрипт с BEGIN TRAN мы скопируем прямо в текст, это покажет, что мы знаем СУБД изнутри. Сеньор, пихай свои УстановитьИсключительнуюБлокировку(). Склеиваем код деда с Docker-скриптом, сверху бахаем директиву &НаСервереБезКонтекста для солидности, и отправляем!

   Смех смехом, но какой из этого можно сделать серьезный технический вывод? Чтобы получить от ИИ рабочий, отказоустойчивый и оптимизированный код для 1С без галлюцинаций в модель нужно жестко изолировать и ограничивать в самом промпте :

1. Принудительно задавать роль и контекст: «Ты — Senior 1C Developer. Пиши строго на встроенном языке 1С 8.3 под управляемые формы».

 2. Запрещать устаревшие технологии: Напрямую прописывайте в запросе: «Запрещено использовать COM-объекты, модальные вызовы и прямые SQL-запросы. Код должен быть кроссплатформенным для работы на Linux-серверах».

3. Использовать современные объекты платформы: Требуйте использовать ТабличныйДокумент вместо внешних приложений (Excel) и штатные механизмы ЧтениеJSON для работы со строками.

 При проектировании КОРП-систем важно понимать: генерация кода 1С нейросетями подчиняется жесткой иерархии: Многоуровневый Кластер ; Блок ; Суб-блок (Субсчет) ; Специализированные Агенты, контролирующие изолированные участки кода. Поэтому управляйте моделями искусственного интеллекта — OpenAI, Anthropic, Google, Yandex, GigaChat, Ollama — как строгий и грамотный Архитектор.

Включайте ручное управление, и тогда никакой Дирижёр за кулисами не посмеет подсунуть вам галлюцинацию!

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

Инфостарт архитектура управляемые формы сервер без контекста искусственный интеллект промпт-инжиниринг галлюцинации ИИ БСП СУБД дедлоки транзакции оптимизация запросов кроссплатформенность Linux ТабличныйДокумент JSON ЭДО КОРП Highload

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

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

См. также

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

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

15989 руб.

30.07.2026    11891    25    4    

26

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

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

15250 руб.

25.08.2025    70511    140    41    

148

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

Представляю open-source платформу, написанную на Go, с 1С-подобным языком — для публикации пет-проектов, MVP и прочих домашних бухгалтерий. Сразу оговорюсь: платформа **не production-ready**. В ней есть куча багов, наверняка немало неоптимальных и спорных решений, но есть и плюс — при желании каждый может её доработать и улучшить. Если не нравится конфигуратор — берём и переконфигурируем его к чертям 🙂 И самое приятное, конфигурации для этой платформы легко вайбкодятся! А если упираемся в ограничение платформы, то тот же агент может её и допилить.

22.05.2026    14788    Ibrogim    362    

120

Инструментарий разработчика Нейросети Программист 1С 8.3 Россия Бесплатно (free)

Инструмент для ежедневной работы в Конфигураторе: рефакторинг, поиск методов в конфигурации и исправление ошибок — всё через ИИ. Работает через Qwen CLI, z.ai, Google или локальные модели. Рассказываю, как это устроено.

17.03.2026    35244    hawkmax    334    

149

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

MCP-сервер для 1С на Go - один бинарник, ноль зависимостей. AI-ассистент получает доступ к метаданным, запросам, журналу регистрации и коду конфигурации вашей базы. Работает с Claude Desktop, Cursor, Windsurf и другими MCP-клиентами.

10.03.2026    32161    VyachGo    214    

103

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

Ты ещё не пробовал вайбкодинг? Страшно? Не знаешь, с чего начать? Зачем вайбкодинг аналитику? Тогда эта статья для тебя.

25.02.2026    22175    top_1c    51    

79

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

Если вам кажется, что искусственный интеллект – это просто модный хайп, то самое время пересмотреть свои взгляды. Показываем, как с помощью протокола MCP (Model Context Protocol) превратить языковую модель в полноценного помощника, способного работать с вашей базой 1С: запрашивать данные, анализировать метаданные и создавать новые объекты по команде. На живых примерах объясняем, как подключить MCP-сервер к IDE Cursor, безопасно использовать локальные модели и уже сегодня начать интегрировать 1С и приложения с ИИ. Вы получите готовый open-source проект, с которым сразу сможете начать свои эксперименты.

27.10.2025    38912    wonderboy    46    

81

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    9648    2    2    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ninel_S 29 18.09.26 23:11 Сейчас в теме
Фантастика! Всё просто и ясно, будто бы свежий ветер разогнал туман.
Браво, Коллега!
Для отправки сообщения требуется регистрация/авторизация