В этой статье
ChatGPT можно использовать при разработке на 1С: попросить объяснить небольшой фрагмент, разобрать возможные причины ошибки, предложить алгоритм или составить тестовые случаи. Начните с задачи, результат которой сможете проверить сами. Например, с расчёта скидки по явно заданным правилам.
Запрос «GPT для 1С» может означать и подключение модели прямо к информационной базе. Это отдельная интеграция: обычная переписка с ChatGPT сама по себе не даёт ему доступа к вашей конфигурации. Ниже — работа программиста через чат, с ручной передачей нужного контекста.
Если нужен вызов модели из программы, сначала разберите, как работает API GPT, а затем проектируйте отдельную интеграцию с 1С.
Какие задачи поручать ChatGPT
| Задача | Что передать | Что получить и проверить |
|---|---|---|
| Понять чужой код | Небольшую процедуру, место вызова, типы параметров | Объяснение по шагам; сверить с фактическими значениями |
| Подготовить изменение | Правило расчёта, ограничения, доступные реквизиты | Алгоритм и вопросы по неясным условиям |
| Разобрать ошибку | Полный текст, строку, стек, контекст выполнения | Проверяемые гипотезы и порядок диагностики |
| Написать тестовые случаи | Условия и ожидаемое поведение | Обычные, граничные и ошибочные входные данные |
| Описать доработку | Проверенный код и назначение изменения | Краткую документацию для следующего разработчика |
Просьба «напиши обработку для 1С» оставляет слишком много неизвестного. Модель может предложить объект, которого нет в вашей базе, или метод, недоступный там, где выполняется код. Название метода проверяйте в синтакс-помощнике: он содержит параметры и особенности использования, а также позволяет отбирать элементы по контексту, например для тонкого клиента. Документация 1С.
Как дать контекст конфигурации
Скопируйте заготовку и замените скобки фактическими сведениями:
Помоги разобрать задачу на встроенном языке 1С.
Платформа: [точная версия]. Конфигурация: [название и релиз].
Место кода: [модуль объекта/формы/общий модуль и его настройки].
Контекст выполнения: [клиент/сервер, директива процедуры].
Задача: [какое поведение нужно].
Доступные объекты и реквизиты: [имена и типы].
Текущий фрагмент: [код].
Сначала перечисли недостающие сведения. Не придумывай имена
метаданных. Отдельно дай алгоритм, затем вариант изменения
и тесты. Все предположения пометь явно.
Не нужно отправлять целую базу ради одной функции. Подготовьте небольшой обезличенный пример: замените сведения о клиентах и сотрудниках, уберите пароли, токены и адреса внутренних сервисов. Сохраните типы и связи, от которых зависит ошибка. Если заменили ссылку на документ обычной строкой, это уже другой пример — так можно скрыть причину сбоя.
Пример: проверить ограничение скидки
Допустим, по учебному условию сумма должна быть неотрицательной, скидка — от 0 до 20 процентов включительно. При неверных значениях расчёт должен отклонять ввод. Правила округления пока не согласованы.
Нужен алгоритм расчёта суммы после скидки для 1С.
Вход: Сумма и ПроцентСкидки, оба числа.
Сумма >= 0; ПроцентСкидки от 0 до 20 включительно.
При нарушении условий вернуть описание ошибки, а не обрезать
значение до допустимого. Пока не пиши код: предложи порядок
проверок и таблицу тестов. Округление не задано — задай вопрос.
Полезный результат должен содержать такой порядок: проверить отрицательную сумму, проверить нижнюю и верхнюю границы скидки, затем вычислить Сумма × (1 − ПроцентСкидки / 100). Способ возврата ошибки и округление нужно согласовать до реализации.
| Сумма | Скидка | Ожидаемый результат |
|---|---|---|
| 1000 | 0 | 1000 |
| 1000 | 20 | 800 |
| 0 | 10 | 0 |
| 1000 | −1 | Ошибка ввода |
| 1000 | 21 | Ошибка ввода |
| −100 | 10 | Ошибка ввода |
Это авторский учебный пример с ручным расчётом, а не протокол запуска в 1С. Он позволяет заметить содержательную ошибку ещё до написания кода: если ответ ограничивает скидку 20 процентами автоматически, он нарушает условие «отклонять ввод».
После согласования правил попросите реализацию для конкретного модуля. Проверьте, что она сохраняет договорённость об ошибках и не округляет результат произвольным способом. Для дробных сумм добавьте отдельные примеры после выбора правила округления.
Как разбирать ошибку без случайных исправлений
Передайте точный текст ошибки и несколько строк вокруг места сбоя. Если известно значение переменной, укажите его вместе с типом. Такой запрос полезнее просьбы «исправь всё»:
В этом фрагменте возникает [точный текст ошибки].
Место и контекст: [...]. Значения и типы переменных: [...].
Ожидалось [...], фактически [...].
Предложи до трёх гипотез. Для каждой укажи, какое наблюдение
её подтвердит или опровергнет. Не меняй код до выбора причины.
Если ответ предполагает неверный тип параметра, сначала посмотрите реальный тип в отладчике. Если предполагает неправильную ветку условия, проверьте путь выполнения. Отладчик 1С позволяет ставить точки останова, проходить код по шагам, просматривать переменные и стек вызовов. Возможности отладчика.
Верните в чат наблюдение: «На этой строке параметр имеет такой тип, условие ложно». Теперь можно уточнять гипотезу. Уверенный тон ответа не подтверждает причину ошибки.
Как принять готовую доработку
Проверьте предложенные объекты и методы в своей конфигурации, затем выполните изменение в тестовой базе. Пройдите согласованные случаи, включая границы и неверный ввод. Для доработки документа отдельно проверьте, что происходит при записи, проведении и повторном выполнении нужного действия: список зависит от задачи.
Сравните результат с исходным требованием. Компиляция без ошибок не доказывает правильность скидки, движений или прав доступа. Запишите, какие случаи прошли и что осталось проверить. После очередной правки повторите затронутые проверки.
Начинающему разработчику полезно просить объяснять каждое изменение и оставлять маленькие фрагменты. Опытному — передавать точные ограничения и требовать минимальную правку. В обоих случаях следующий шаг один: проверить ответ на собственной тестовой конфигурации.
Проверить детали
Источники материала
Функции и условия сервисов меняются. Дата сверки указана в начале статьи. Как подготовлен материал