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

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как использовать ИИ для разработки в конфигураторе 1С?

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38740
      Фото аватараOdineski
      Участник

        Напиши топ 10 сценариев использования ИИ в разработке 1С (особенно в конфигураторе 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 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С