Обработка на Инфостарте · 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 с | - | инфо | дольше всего методы общих модулей и опечатка в имени модуля |
| Веб-клиент | частично | - | внимание | клиентские процедуры там не компилируются, в отчёте об этом заметка |
Разбор результата
Обработка ловит выдуманные имена. Запрос, у которого все имена настоящие, а смысл неверный, она пропустит: его ловит сверка результата с эталоном, это работа стенда проверки запросов.
Как пользоваться
- 01
Открыть на копии или рабочей базе
Файл - Открыть в тонком клиенте. Обработка в базу не пишет и нейросеть сама не вызывает. Пробный прогон выполняет запрос по-настоящему, поэтому тяжёлый запрос без отборов лучше гонять на копии.
- 02
Вставить текст из чата
Запрос или код процедур целиком. Режим "Определить сам" отличает одно от другого.
- 03
Проверить
Справа таблица: строка, что не так, настоящие имена в этой базе. Сверху сводка с числом ошибок и предупреждений.
- 04
Вернуть модели
"Скопировать для нейросети" и вставить в тот же чат. Для запроса после исправления можно сделать пробный прогон на 10 строк.
Özünüz həll edə bilmirsiniz? Yazın, birlikdə baxaq
Для каждого нового вопроса руководителя приходится собирать отдельную выгрузку и объяснять цифры вручную. Вопросы о продажах и запасах на понятном языке с проверяемыми расчётами. Сначала разбираемся в показателях и качестве исходных данных.
- Qiyməti
- 450 000 - 600 000 ₸анализ задачи и погружение; на выходе отчёт и оценка дальнейших работ, внедрение отдельно
Mövzu üzrə təhlillər
Доработка формы 1С через нейросеть: что дать модели на вход и что проверить в её ответе
Form.xml даёт модели точные имена, но молчит о том, что форма достраивает при создании и что пользователь видит в работе. На типовой УТ для Казахстана 127 полей формы номенклатуры видимы по XML и скрыты в работе, а условное оформление строится кодом в 400 модулях форм. Разбираем три источника для модели, перехват формы с четырьмя ошибками и проверку ответа за пять минут.
Код 1С от нейросети: как найти выдуманные методы и поля до первого запуска
Проверка через Выполнить пропускает несуществующий метод общего модуля, выдуманный справочник и реквизит. Разбираем, какая проверка какой класс ошибок видит, как узнать, есть ли метод в модуле, не выполняя его, и как собрать все ошибки имён в запросе за один проход, хотя платформа отдаёт их по одной.
Как проверить запрос 1С, который написала нейросеть: ловушки типовой и сверка с эталоном
Упавший запрос нейросети безопасен: платформа покажет строку с ошибкой. Опасен тот, что выполнился и вернул правдоподобное число. Разбираем три уровня проверки, карту ловушек УТ 11.5 с запросами до и после и правила построчной сверки с эталоном. Числа из прогона 90 запросов трёх моделей.
Как дать нейросети структуру вашей 1С, чтобы она перестала выдумывать реквизиты
Практический разбор: почему ChatGPT ошибается в именах реквизитов вашей конфигурации, как выгрузить структуру метаданных в компактный вид для модели, что включать и что выбрасывать, и почему граф связей полезен ровно настолько, насколько он разрежен. С цифрами по токенам на боевой УПП.
Рядом по теме
Код 1С от нейросети: как найти выдуманные методы и поля
Какая проверка какой класс ошибок видит, функция проверки метода общего модуля вызовом со ста аргументами и цикл, который собирает все ошибки запроса за раз.
Доработка формы 1С через нейросеть
Что дать модели кроме Form.xml и как проверить перехват формы в расширении: имена обработчиков, условное оформление, скрытые поля.
Стенд проверки запросов нейросети к УТ 11.5
Для другой ошибки: запрос выполнился, имена настоящие, а строки не те. Стенд сверяет результат с эталоном построчно.
Выгрузка метаданных 1С для нейросети
Чтобы модель писала настоящими именами с самого начала: структура конфигурации файлом для промпта.
Как проверить запрос 1С, который написала нейросеть
Три уровня проверки и карта тихих и громких ловушек типовой УТ 11.5.
Tez-tez verilən suallar
Чем это лучше синтаксического контроля в Конфигураторе?
Конфигуратор проверяет код, который уже лежит в модуле, и выдуманный метод общего модуля пропускает: имя после точки компилятор принимает на веру. Обработка проверяет кусок из чата до того, как он попал в конфигурацию, и сверяет каждое имя с метаданными базы.
Обработка сама обращается к нейросети?
Нет. Текст из чата вставляется вручную, а список ошибок кнопкой "Скопировать для нейросети" готовится для обратной вставки в тот же чат. Модель и сервис любые.
Что она не проверяет?
Переменные, тип которых из текста не понять: Выборка.Поле, параметры процедур, результат своей функции. Число параметров методов общих модулей тоже не проверяется, только существование метода. И запрос с настоящими именами, но неверным смыслом: его ловит сверка результата с эталоном.
Как проверяется метод общего модуля, если его нельзя вызывать?
Его вызывают со ста лишними аргументами. Если метод есть, платформа отвечает "Слишком много фактических параметров" до входа в тело, и ничего не выполняется. Если метода нет, ответ "Метод объекта не обнаружен". Метод со ста параметрами и больше выполнился бы по-настоящему, в типовых таких нет.
Можно ли запускать на рабочей базе?
Проверка ничего не выполняет и не пишет. Для методов объекта создаётся объект в памяти без записи. Исключение одно: пробный прогон запроса на 10 строк выполняет запрос по-настоящему, тяжёлый запрос без отборов лучше гонять на копии.
На вставленном куске кода появились предупреждения. Это ошибки?
Нет. Код, вырезанный из модуля, ссылается на переменные модуля и процедуры, которых во вставке нет. Такие места помечаются предупреждением, ошибкой они не считаются.
1C sisteminiz üçün pulsuz ekspress-audit
1-2 gün ərzində bazanıza baxıb, məhsuldarlığın harada itdiyini tapacağıq və nə etmək lazım olduğunu deyəcəyik. Öhdəliksiz.
Tapşırığı müzakirə edək
Ən sürətlisi WhatsApp: tapşırıq barədə bir-iki sətir yazın, iş günü ərzində cavab verəcəyik.