Перейти к содержимому
Tez Base

Обработка на Инфостарте · 10 SM

Проверка кода и запросов нейросети: выдуманные имена и как они называются в вашей базе 1С

Модель пишет код 1С уверенно, и часть имён в нём взята из головы: ресурс регистра с соседней конфигурации, метод БСП, которого нет, реквизит с опечаткой. Обработка проверяет такой текст на вашей базе до того, как он попадёт в конфигурацию, ничего не выполняя, и рядом с каждой ошибкой ставит настоящее имя.

Внешняя обработка на управляемых формах, платформа 8.3.2x, любая конфигурация. Код открыт. В базу не пишет, нейросеть не вызывает.

Синтаксис проверит любая консоль кода. Беда в другом: проверка через Выполнить с обёрткой Если Ложь пропускает выдуманный справочник, реквизит, которого нет, и несуществующий метод общего модуля. Компилятор смотрит имя до первой точки, а всё, что после неё, принимает на веру. Узнаёте вы об ошибке, когда выполнение дошло до этой строки.

С запросами другая неприятность. Платформа ошибку имени видит, но отдаёт по одной и не говорит, как поле называется на самом деле. В запросе модели к остаткам на складах две ошибки, а платформа сообщает только про строку 8, хотя строка 4 выше. Обработка проходит такие круги сама и выдаёт весь список за один прогон, с подсказками из метаданных этой базы.

Что проверяет обработка

Запрос целиком за один прогон

Текст компилируется без выполнения. Найденное место подменяется (поле на NULL, выдуманная таблица на ближайшую настоящую), и запрос компилируется снова, пока ошибки не кончатся. Синтаксическая ошибка цикл останавливает: дальше неё платформа текст не читает.

Настоящие имена рядом с ошибкой

Поля таблиц и виртуальных таблиц с суффиксами, реквизиты, табличные части, значения перечислений, похожие объекты метаданных. К КоличествоОстаток в регистре товаров на складах обработка подскажет ВНаличииОстаток и КОтгрузкеОстаток.

Код процедур без запуска

Синтаксис каждой процедуры, процедуры &НаКлиенте компилируются на клиенте. Обращения Справочники.X, Документы.X, Перечисления.X.Y, реквизиты и табличные части сверяются с метаданными. Тексты запросов внутри строк кода проверяются тем же движком, что и отдельный запрос.

Методы общих модулей, менеджеров и объектов

Метод общего модуля вызывается со ста лишними аргументами: если он есть, платформа отказывает до входа в тело, если нет, отвечает другим текстом. Для методов объекта экземпляр создаётся в памяти и не записывается. Когда метода нет, обработка ищет то же имя в других модулях и его варианты.

Ответ обратно в чат

Кнопка "Скопировать для нейросети" собирает список ошибок с подсказками в текст, который вставляется в чат с моделью. Модель правит ровно эти места, а не переписывает всё заново.

Пробный прогон и пример

Запрос можно выполнить на 10 строк с параметрами. Кнопка "Пример с ошибками" собирает запрос и код из метаданных вашей базы, с опечаткой и выдуманной таблицей, чтобы увидеть работу за минуту.

Пример: что нашлось в запросе и коде

Типовая УТ 11.5.22.67, кнопка "Пример с ошибками". Слева то, что написано в тексте, справа подсказка обработки из метаданных этой базы.

Что в текстеЧто подсказала обработка
Ост.КоличествоОстаток Поле не найдено. Есть: ВНаличииОстаток, КОтгрузкеОстаток.
Перечисление.ТипыНоменклатуры.Товары Значения нет. Есть: Товар.
Документ.РеализацияТоваровУслугг Таблицы нет. Есть: Документ.РеализацияТоваровУслуг.
ОбщегоНазначения.ПолучитьЗначениеРеквизитаОбъекта В общем модуле нет экспортного метода. Есть: ЗначениеРеквизитаОбъекта, ЗначениеРеквизитаОбъектов.
Справочники.Контрагенты.НайтиПоИНН У менеджера нет такого метода ни в платформе, ни в модуле менеджера.
Псевдоним таблицы В Платформа пишет "Ожидается имя". Обработка дописывает: псевдоним совпал с ключевым словом языка запросов, переименуйте.

Как проверяли

Типовая УТ 11.5.22.67, платформа 8.3.27. Приёмка на УТ для Казахстана 3.4.4.87.

Показатель Значение Как надо Вердикт Что это значит
Кейсы с одной ошибкой 19 из 19 все пойманы норма 7 запросов и 12 кусков кода, по одному виду ошибки в каждом
Правильные кейсы 9 из 9 без ошибок ноль ложных норма процедуры и целый модуль менеджера из типовой, плюс написанные вручную
Ложные срабатывания на коде типовой 60 из 60 чисто ноль норма три случайные выборки по 60 процедур; на первых двух нашлось 10 и 3 ложных, после починки чисто все три, третья выборка контрольная
Время проверки кейса от 1 мс до 0,6 с - инфо дольше всего методы общих модулей и опечатка в имени модуля
Веб-клиент частично - внимание клиентские процедуры там не компилируются, в отчёте об этом заметка

Разбор результата

Обработка ловит выдуманные имена. Запрос, у которого все имена настоящие, а смысл неверный, она пропустит: его ловит сверка результата с эталоном, это работа стенда проверки запросов.

Как пользоваться

  1. 01

    Открыть на копии или рабочей базе

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

  2. 02

    Вставить текст из чата

    Запрос или код процедур целиком. Режим "Определить сам" отличает одно от другого.

  3. 03

    Проверить

    Справа таблица: строка, что не так, настоящие имена в этой базе. Сверху сводка с числом ошибок и предупреждений.

  4. 04

    Вернуть модели

    "Скопировать для нейросети" и вставить в тот же чат. Для запроса после исправления можно сделать пробный прогон на 10 строк.

Не получается самим? Напишите, разберёмся

Для каждого нового вопроса руководителя приходится собирать отдельную выгрузку и объяснять цифры вручную. Вопросы о продажах и запасах на понятном языке с проверяемыми расчётами. Сначала разбираемся в показателях и качестве исходных данных.

Стоимость
450 000 - 600 000 ₸анализ задачи и погружение; на выходе отчёт и оценка дальнейших работ, внедрение отдельно

Разборы по теме

Доработка формы 1С через нейросеть: что дать модели на вход и что проверить в её ответе

Form.xml даёт модели точные имена, но молчит о том, что форма достраивает при создании и что пользователь видит в работе. На типовой УТ для Казахстана 127 полей формы номенклатуры видимы по XML и скрыты в работе, а условное оформление строится кодом в 400 модулях форм. Разбираем три источника для модели, перехват формы с четырьмя ошибками и проверку ответа за пять минут.

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

Проверка через Выполнить пропускает несуществующий метод общего модуля, выдуманный справочник и реквизит. Разбираем, какая проверка какой класс ошибок видит, как узнать, есть ли метод в модуле, не выполняя его, и как собрать все ошибки имён в запросе за один проход, хотя платформа отдаёт их по одной.

Как проверить запрос 1С, который написала нейросеть: ловушки типовой и сверка с эталоном

Упавший запрос нейросети безопасен: платформа покажет строку с ошибкой. Опасен тот, что выполнился и вернул правдоподобное число. Разбираем три уровня проверки, карту ловушек УТ 11.5 с запросами до и после и правила построчной сверки с эталоном. Числа из прогона 90 запросов трёх моделей.

Как дать нейросети структуру вашей 1С, чтобы она перестала выдумывать реквизиты

Практический разбор: почему ChatGPT ошибается в именах реквизитов вашей конфигурации, как выгрузить структуру метаданных в компактный вид для модели, что включать и что выбрасывать, и почему граф связей полезен ровно настолько, насколько он разрежен. С цифрами по токенам на боевой УПП.

Карточка на Инфостарте →

Рядом по теме

Частые вопросы

Чем это лучше синтаксического контроля в Конфигураторе?

Конфигуратор проверяет код, который уже лежит в модуле, и выдуманный метод общего модуля пропускает: имя после точки компилятор принимает на веру. Обработка проверяет кусок из чата до того, как он попал в конфигурацию, и сверяет каждое имя с метаданными базы.

Обработка сама обращается к нейросети?

Нет. Текст из чата вставляется вручную, а список ошибок кнопкой "Скопировать для нейросети" готовится для обратной вставки в тот же чат. Модель и сервис любые.

Что она не проверяет?

Переменные, тип которых из текста не понять: Выборка.Поле, параметры процедур, результат своей функции. Число параметров методов общих модулей тоже не проверяется, только существование метода. И запрос с настоящими именами, но неверным смыслом: его ловит сверка результата с эталоном.

Как проверяется метод общего модуля, если его нельзя вызывать?

Его вызывают со ста лишними аргументами. Если метод есть, платформа отвечает "Слишком много фактических параметров" до входа в тело, и ничего не выполняется. Если метода нет, ответ "Метод объекта не обнаружен". Метод со ста параметрами и больше выполнился бы по-настоящему, в типовых таких нет.

Можно ли запускать на рабочей базе?

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

На вставленном куске кода появились предупреждения. Это ошибки?

Нет. Код, вырезанный из модуля, ссылается на переменные модуля и процедуры, которых во вставке нет. Такие места помечаются предупреждением, ошибкой они не считаются.

Бесплатный экспресс-аудит вашей 1С

За 1-2 дня посмотрим вашу базу, найдём, где теряется производительность, и скажем, что с этим делать. Без обязательств.

Получить бесплатный экспресс-аудит

Обсудим задачу

Быстрее всего в WhatsApp: напишите пару строк о задаче, ответим в течение рабочего дня.

[email protected]

Удобнее оставить заявку через форму