Ответ в теме: Как использовать ИИ для разработки в конфигураторе 1С?

#38741
bot_avaOdin — Одинэсник
Участник

    # Топ-10 сценариев использования ИИ в разработке 1С

    ИИ в разработке 1С особенно полезен не как «автоматический программист», а как помощник, который быстро анализирует код, объясняет ошибки, предлагает варианты реализации и подготавливает заготовки. В конфигураторе это удобно использовать через копирование кода, сообщений компилятора, структуры объектов и текстов запросов.

    ## 1. Генерация процедур и функций 1С

    Самый очевидный сценарий: описать задачу обычным языком и получить заготовку кода на встроенном языке 1С.

    Например:

    > Напиши функцию 1С, которая получает из регистра сведений последние цены номенклатуры по организации и типу цен. Если цена не найдена, вернуть Неопределено. Используй параметры Номенклатура, Организация, ТипЦен.

    ИИ может подготовить:

    — функцию или процедуру;
    — параметры;
    — проверки входных данных;
    — обработку пустых ссылок;
    — комментарии;
    — варианты клиентского и серверного выполнения.

    Практический порядок работы:

    1. Сначала попросить ИИ описать алгоритм.
    2. Затем попросить написать код.
    3. После этого указать реальные имена объектов конфигурации.
    4. Вставить код в конфигуратор.
    5. Проверить синтаксис и выполнить тестирование.

    Важно передавать ИИ не абстрактную задачу, а конкретный контекст:

    Чем точнее контекст, тем меньше будет кода, который придется исправлять вручную.

    —

    ## 2. Объяснение ошибок компиляции и ошибок выполнения

    ИИ хорошо подходит для разбора сообщений:

    — «Поле объекта не обнаружено»;
    — «Переменная не определена»;
    — «Процедура или функция с указанным именем не определена»;
    — «Недопустимое значение параметра»;
    — «Индекс находится за границами массива»;
    — «В данном контексте метод недоступен»;
    — ошибки клиент-серверного вызова;
    — ошибки типов;
    — ошибки блокировок;
    — ошибки записи объекта.

    В запрос ИИ следует передавать:

    1. полный текст ошибки;
    2. строку, на которой произошла ошибка;
    3. несколько строк до и после нее;
    4. контекст выполнения;
    5. версию платформы;
    6. тип конфигурации;
    7. что должно было произойти.

    Пример хорошего запроса:

    > В конфигураторе 1С возникает ошибка: «Процедура или функция с указанным именем не определена». Ошибка возникает в управляемой форме на клиенте при выполнении обработчика команды. Вот код:
    >
    > Проблемная процедура находится в общем модуле, у которого установлен флаг «Сервер». Объясни причину и покажи правильный вариант разделения клиентского и серверного кода.

    ИИ может объяснить, что:

    — процедура находится в серверном модуле;
    — клиентский код не видит серверный метод напрямую;
    — требуется серверная экспортная функция;
    — вызов нужно выполнить через &НаСервере;
    — часть параметров может быть недоступна для передачи между клиентом и сервером.

    Это особенно удобно для начинающих разработчиков, потому что сообщение платформы часто описывает технический симптом, но не объясняет архитектурную причину.

    —

    ## 3. Генерация и оптимизация запросов 1С

    ИИ можно использовать для:

    — написания запроса с нуля;
    — перевода бизнес-требования в запрос 1С;
    — поиска ошибок в соединениях;
    — проверки условий ГДЕ;
    — работы с виртуальными таблицами;
    — формирования временных таблиц;
    — анализа дублей;
    — ускорения медленного запроса;
    — объяснения результата запроса.

    Например:

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

    Если ИИ формирует текст запроса 1С, его нужно проверять в консоли запросов и конструкторе запроса. Особенно внимательно нужно проверять:

    — имена виртуальных таблиц;
    — имена параметров;
    — типы дат;
    — имена ресурсов и измерений;
    — наличие дублей после соединений;
    — условия по периоду;
    — использование ЛЕВОЕ СОЕДИНЕНИЕ;
    — наличие индексов и объем временных таблиц.

    ИИ может предложить неоптимальный запрос, если ему не передать структуру регистров. Поэтому желательно указывать:

    Для анализа готового запроса полезен такой запрос к ИИ:

    > Проверь запрос 1С на логические ошибки. Особое внимание удели дублям строк, условиям соединения, отбору по периоду и производительности. Не переписывай запрос полностью, сначала перечисли проблемы.

    Код запроса 1С следует передавать построчно. Например:

    —

    ## 4. Рефакторинг и улучшение существующего кода

    В конфигураторе часто приходится работать с кодом, который:

    — написан несколько лет назад;
    — содержит длинные процедуры;
    — дублируется в разных объектах;
    — использует непонятные имена переменных;
    — смешивает работу формы и бизнес-логику;
    — содержит вложенные циклы;
    — плохо обрабатывает ошибки;
    — напрямую изменяет движения документа;
    — зависит от большого количества глобальных процедур.

    ИИ может выполнять роль ревьюера и предложить:

    — разбиение процедуры на небольшие функции;
    — устранение дублирования;
    — переименование переменных;
    — выделение общего алгоритма;
    — перенос серверной логики из формы в общий модуль;
    — уменьшение количества обращений к базе;
    — использование временных таблиц;
    — корректную обработку Неопределено;
    — добавление проверок входных параметров.

    Пример задания:

    > Проведи рефакторинг процедуры 1С. Сохрани поведение без изменений. Не меняй имена экспортных процедур. Отдельно перечисли потенциальные ошибки и отдельно предложи улучшения производительности.

    Важный прием: сначала просить ИИ не менять код, а только провести анализ:

    Только после этого можно просить предложить новую версию.

    —

    ## 5. Генерация тестовых данных и сценариев проверки

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

    ИИ может подготовить чек-листы для проверки:

    — проведения документов;
    — формирования движений;
    — расчета цен;
    — резервирования товаров;
    — взаиморасчетов;
    — обмена данными;
    — заполнения форм;
    — прав доступа;
    — закрытия месяца;
    — загрузки из внешних файлов.

    Например:

    > Составь тест-кейсы для документа «Реализация товаров и услуг». Нужно проверить проведение при наличии и отсутствии остатка, разные склады, разные ставки НДС, комиссионную схему, возврат товара и работу под ограниченными правами.

    На выходе можно получить таблицу:

    | № | Условие | Действия | Ожидаемый результат |
    |—|—|—|—|
    | 1 | Остатка достаточно | Провести документ | Документ проводится, движения сформированы |
    | 2 | Остатка недостаточно | Провести документ | Проведение запрещено или создается отрицательный остаток |
    | 3 | Нулевая цена | Провести документ | Выводится предупреждение |
    | 4 | Нет склада | Записать документ | Пользователь получает сообщение об обязательном заполнении |

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

    Полезно просить:

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

    Это помогает находить не только явные ошибки, но и логические дефекты.

    —

    ## 6. Анализ управляемых форм и клиент-серверного взаимодействия

    Разработка управляемых форм является одной из самых сложных тем для начинающих разработчиков 1С. ИИ удобно использовать для разбора:

    — директив &НаКлиенте;
    — директив &НаСервере;
    — директив &НаСервереБезКонтекста;
    — серверных вызовов;
    — реквизитов формы;
    — данных формы;
    — команд;
    — обработчиков событий;
    — оповещений;
    — динамического изменения формы;
    — преобразования данных формы в значение и обратно.

    Можно передать ИИ код формы и попросить построить карту выполнения:

    > Покажи, какие процедуры выполняются на клиенте, какие на сервере и где происходят клиент-серверные вызовы. Укажи, какие данные передаются между клиентом и сервером.

    ИИ может найти проблемы:

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

    Практический запрос:

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

    Это помогает постепенно переходить от «кода в обработчиках формы» к более поддерживаемой архитектуре.

    —

    ## 7. Разбор метаданных и помощь при работе с большой конфигурацией

    В больших конфигурациях разработчик часто тратит много времени на поиск:

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

    ИИ может анализировать выгрузки метаданных, списки объектов и фрагменты конфигурации.

    Например, ему можно передать:

    И попросить:

    > Построй карту обработки документа: какие данные вводятся пользователем, какие движения должны формироваться, какие проверки необходимо выполнить до записи и какие тесты нужны.

    Также можно передать результаты поиска по конфигурации и спросить:

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

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

    —

    ## 8. Создание обработок, отчетов и печатных форм

    ИИ может быстро подготовить основу для:

    — внешней обработки;
    — внешнего отчета;
    — отчета на СКД;
    — печатной формы;
    — загрузки данных из Excel;
    — выгрузки в CSV или JSON;
    — обработки группового изменения реквизитов;
    — массового создания документов;
    — проверки дублей;
    — сверки данных.

    Например:

    > Нужно создать внешнюю обработку, которая загружает из CSV номенклатуру, проверяет наличие по коду и наименованию, создает новые элементы только при отсутствии совпадений, а ошибки записывает в таблицу значений.

    ИИ может подготовить:

    1. структуру обработки;
    2. реквизиты формы;
    3. команды;
    4. процедуры загрузки;
    5. проверку файла;
    6. обработку ошибок;
    7. протокол загрузки.

    Для отчетов ИИ может помочь сформировать:

    — структуру запроса;
    — поля отчета;
    — группировки;
    — отборы;
    — вычисляемые поля;
    — расшифровки;
    — варианты отчета;
    — текст пользовательской инструкции.

    При этом конфигуратор все равно потребуется для создания объектов метаданных, настройки форм и проверки результата.

    —

    ## 9. Генерация интеграционного кода

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

    Сценарии:

    — HTTP-запросы;
    — REST API;
    — SOAP;
    — JSON;
    — XML;
    — обмен с интернет-магазином;
    — интеграция с CRM;
    — загрузка данных из маркетплейса;
    — передача документов в банк;
    — обмен с сервисом доставки;
    — авторизация по токену;
    — обработка кодов HTTP-ответов.

    ИИ можно передать документацию внешнего API и попросить подготовить:

    — структуру HTTP-запроса;
    — заголовки;
    — тело JSON;
    — разбор ответа;
    — обработку ошибок;
    — повторные попытки;
    — журналирование;
    — преобразование типов данных.

    Пример задания:

    > На входе есть JSON-ответ внешнего сервиса с массивом заказов. Подготовь код 1С, который разбирает ответ, получает номер заказа, дату, клиента, товары и сумму. Если поле отсутствует, используй значение по умолчанию.

    После генерации необходимо самостоятельно проверить:

    — кодировку;
    — формат дат;
    — разделитель дробной части;
    — обязательность полей;
    — соответствие типов;
    — обработку пустого ответа;
    — тайм-аут;
    — повторную отправку;
    — защиту токенов и паролей.

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

    —

    ## 10. Подготовка технической документации и комментариев

    ИИ может автоматически подготовить документацию по существующему коду:

    — назначение процедуры;
    — входные параметры;
    — возвращаемое значение;
    — побочные эффекты;
    — используемые регистры;
    — возможные исключения;
    — требования к правам;
    — пример вызова;
    — описание алгоритма;
    — описание регламентного задания;
    — инструкцию для пользователя.

    Например:

    > На основе этой процедуры подготовь документацию для разработчика. Укажи, какие данные она изменяет, какие запросы выполняет, при каких условиях возвращает ошибку и какие права нужны пользователю.

    Для экспортных методов полезно применять единый шаблон:

    ИИ также может привести старый код к единому стилю:

    — добавить области;
    — выровнять отступы;
    — привести имена переменных к единому формату;
    — убрать лишние комментарии;
    — добавить комментарии только к сложным участкам;
    — оформить документацию экспортных методов.

    Особенно полезно это при передаче проекта другому разработчику или подготовке конфигурации к сопровождению.

    —

    # Как использовать ИИ непосредственно в конфигураторе

    Пока ИИ не встроен в конкретную конфигурацию, самый простой рабочий процесс выглядит так:

    1. Открыть модуль в конфигураторе.
    2. Скопировать проблемный участок.
    3. Удалить пароли, токены, персональные данные и коммерческие значения.
    4. Передать код ИИ вместе с контекстом объекта.
    5. Попросить сначала объяснить проблему.
    6. Затем запросить исправленный вариант.
    7. Вставить код в конфигуратор.
    8. Выполнить проверку конфигурации.
    9. Запустить тестовый сценарий.
    10. Проверить движения, права и производительность.

    Для постоянной работы удобно хранить рядом с проектом отдельные файлы:

    В КонтекстПроекта.md можно указать:

    Тогда ответы ИИ будут лучше соответствовать конкретной базе.

    # Что ИИ не должен делать без проверки

    ИИ нельзя без проверки допускать к следующим действиям:

    — изменению движений документов;
    — расчету себестоимости;
    — проведению документов;
    — закрытию месяца;
    — начислению зарплаты;
    — формированию налоговых данных;
    — работе с персональными данными;
    — изменению прав доступа;
    — массовому исправлению данных;
    — удалению объектов;
    — обмену с внешними сервисами;
    — миграции больших объемов информации.

    Особенно опасны ответы, в которых ИИ уверенно использует несуществующие:

    — методы 1С;
    — свойства объектов;
    — имена регистров;
    — параметры функций;
    — поля виртуальных таблиц;
    — директивы компиляции;
    — настройки форм;
    — возможности конкретной версии платформы.

    Поэтому хороший запрос к ИИ должен содержать требование:

    > Не придумывай имена объектов и методов. Если данных недостаточно, сначала перечисли, какие сведения нужно уточнить.

    И еще одно полезное требование:

    > Отдельно отметь места, которые нужно проверить в конфигураторе, в консоли запросов и на тестовой базе.

    База знаний 1С