Инструкция пользователя: «Обновление процедур расширения»
Назначение обработки
Обработка «Обновление процедур расширения» предназначена для автоматизации двух типовых задач разработчика расширений конфигураций 1С:
- обновление существующей процедуры расширения при выходе нового релиза типовой конфигурации;
- создание процедуры для расширения по измененной и оригинальной версиям кода.
Обработка отправляет тексты процедур в выбранную нейросеть и получает готовый результат для дальнейшего переноса в расширение. После получения результата автоматически формируется таблица построчного сравнения всех трёх текстов.
Требования
- Платформа: 1С:Предприятие 8.3.23 и выше.
- Доступ к интернету для обращения к API провайдера.
- API-ключ одного из поддерживаемых провайдеров.
Запуск обработки
- Откройте 1С:Предприятие в режиме «Предприятие».
- Выберите Файл → Открыть или нажмите
Ctrl+O. - Укажите файл
ОбновлениеПроцедурРасширения.epf. - После открытия появится основная форма обработки.
Элементы формы
Форма обработки состоит из двух вкладок: «Процедуры» (основная работа) и «Сравнение» (таблица diff-сравнения).
Вкладка «Процедуры»
| Элемент | Описание |
|---|---|
| Режим работы | Переключатель между двумя режимами: «Обновление процедуры» и «Создание процедуры для Расширения». |
| Левое поле | Исходный текст процедуры. Заголовок поля меняется в зависимости от выбранного режима: — Обновление процедуры: «Текущая процедура расширения» — Создание для расширения: «Изменённая процедура (конфигурация)» |
| Среднее поле | Целевая версия процедуры. Заголовок также зависит от режима: — Обновление процедуры: «Новая типовая процедура» — Создание для расширения: «Оригинальная процедура (поставщик)» |
| Кнопки «Заполнить» | Расположены над левым и средним полями. Позволяют загрузить текст процедуры из файла на диске (поддерживаемые форматы: .txt, .bsl, любые текстовые файлы). |
| Результат | Поле, в котором отображается итоговый код процедуры после обработки нейросетью. |
| Чат | Необязательное поле для дополнительных инструкций нейросети. |
| Провайдер | Выбор провайдера: OpenRouter, GigaChat или YandexGPT. При переключении провайдера автоматически подставляется ранее сохранённый ключ для выбранного провайдера. |
| Модель | Выбор конкретной модели ИИ из списка доступных для провайдера. Поле поддерживает ручной ввод произвольного имени модели. |
| API-ключ | Ключ доступа выбранного провайдера. Поле отображается в режиме пароля (символы скрыты). Заголовок меняется в зависимости от провайдера. |
| Каталог Yandex Cloud | Поле folder-id, отображается только при выборе провайдера YandexGPT. |
| Max tokens | Максимальное количество токенов в ответе модели. Если не задано (0), используется значение по умолчанию провайдера: 128 000 для OpenRouter, 16 000 для GigaChat и YandexGPT. |
| Выполнить запрос | Кнопка отправки запроса на обработку. |
| Статистика | Надпись под кнопкой «Выполнить запрос». После успешного выполнения отображает количество входных, выходных и общих токенов, а также стоимость запроса в долларах (если провайдер возвращает данные). |
Вкладка «Сравнение»
| Элемент | Описание |
|---|---|
| Таблица сравнения | Построчное сравнение (diff) трёх текстов: текущей процедуры, результата ИИ и новой процедуры. Строки выровнены по алгоритму LCS для наглядного сопоставления. Подробнее — в разделе Таблица сравнения. |
Настройка провайдера
OpenRouter
- Зарегистрируйтесь на сайте openrouter.ai.
- Создайте API-ключ в личном кабинете.
- В обработке выберите провайдер OpenRouter.
- Вставьте ключ в поле API-ключа.
- Выберите модель. Рекомендуемый вариант:
anthropic/claude-sonnet-4.
Доступные модели по умолчанию: anthropic/claude-sonnet-4, openai/gpt-4o, google/gemini-2.5-flash-lite. Можно ввести любой идентификатор модели вручную.
GigaChat
- Зарегистрируйтесь на developers.sber.ru.
- Создайте проект и получите Authorization Key для GigaChat API.
- В обработке выберите провайдер GigaChat.
- Вставьте ключ в поле Ключ авторизации GigaChat.
- Выберите модель. Рекомендуемый вариант:
GigaChat-Pro.
Доступные модели: GigaChat-Pro, GigaChat, GigaChat-Max.
YandexGPT
- Зарегистрируйтесь в Yandex Cloud.
- Создайте каталог и получите его
folder-id. - Создайте API-ключ сервисного аккаунта.
- В обработке выберите провайдер YandexGPT.
- Укажите API-ключ и
folder-id. - Выберите модель. Рекомендуемый вариант:
yandexgpt/latest.
Доступные модели: yandexgpt/latest, yandexgpt-lite/latest.
Режим 1: Обновление процедуры расширения
Когда использовать: если у вас уже есть процедура расширения, и нужно перенести её доработки в новую типовую версию процедуры.
- Выберите режим «Обновление процедуры».
- В левое поле вставьте текст текущей процедуры расширения со всеми аннотациями и вставками (или нажмите «Заполнить» для загрузки из файла).
- В среднее поле вставьте текст новой типовой процедуры из обновленной конфигурации (или загрузите из файла).
- При необходимости добавьте пояснения в поле Чат.
- Нажмите «Выполнить запрос».
- Проверьте результат в правом поле и перенесите его в модуль расширения.
- Перейдите на вкладку «Сравнение» для построчного сопоставления всех трёх текстов.
В этом режиме нейросеть:
- берет новую типовую процедуру как основу;
- находит кастомные вставки и удаления из текущего расширения;
- переносит их в актуальную версию процедуры;
- сохраняет аннотации расширения.
Пример
Текущая процедура расширения:
&ИзменениеИКонтроль("НекаяПроцедура")
Процедура ск_НекаяПроцедура(Параметр1)
ТиповаяПеременная = 1;
#Удаление
ВызовУдалённогоКода();
#КонецУдаления
#Вставка
ДополнительнаяПеременная = 2;
#КонецВставки
Возврат ТиповаяПеременная;
КонецПроцедуры
Новая типовая процедура:
Процедура НекаяПроцедура(Параметр1)
ТиповаяПеременная = 1;
ВызовУдалённогоКода();
ТиповаяПеременная = 4;
Возврат ТиповаяПеременная;
КонецПроцедуры
Режим 2: Создание процедуры для расширения
Когда использовать: если нужно перенести доработанную процедуру из основной конфигурации в расширение с корректной разметкой изменений.
- Выберите режим «Создание процедуры для Расширения».
- В левое поле вставьте изменённую процедуру из основной конфигурации (или нажмите «Заполнить»).
- В среднее поле вставьте оригинальную процедуру поставщика (или загрузите из файла).
- При необходимости добавьте уточнения в поле Чат.
- Нажмите «Выполнить запрос».
- Проверьте итоговую процедуру и перенесите её в расширение.
- Перейдите на вкладку «Сравнение» для визуальной проверки.
В этом режиме нейросеть:
- сравнивает изменённую и оригинальную процедуры;
- добавляет аннотацию
&ИзменениеИКонтроль; - переименовывает процедуру с префиксом
ск_; - обрамляет добавленный код блоками
#Вставка/#КонецВставки; - обрамляет удалённый код блоками
#Удаление/#КонецУдаления; - переносит все комментарии из изменённой процедуры.
Пример
Изменённая процедура:
Процедура НекаяПроцедура(Параметр1)
ТиповаяПеременная = 1;
ДополнительнаяПеременная = 2;
Возврат ТиповаяПеременная;
КонецПроцедуры
Оригинальная процедура поставщика:
Процедура НекаяПроцедура(Параметр1)
ТиповаяПеременная = 1;
ВызовУдалённогоКода();
Возврат ТиповаяПеременная;
КонецПроцедуры
Результат:
&ИзменениеИКонтроль("НекаяПроцедура")
Процедура ск_НекаяПроцедура(Параметр1)
ТиповаяПеременная = 1;
#Вставка
ДополнительнаяПеременная = 2;
#КонецВставки
#Удаление
ВызовУдалённогоКода();
#КонецУдаления
Возврат ТиповаяПеременная;
КонецПроцедуры
Таблица сравнения (Diff-view)
После успешного выполнения запроса обработка автоматически формирует построчную таблицу сравнения трёх текстов. Таблица расположена на второй вкладке «Сравнение».
Структура таблицы
| Колонка | Содержимое |
|---|---|
| № | Номер строки в таблице сравнения. |
| Текущая процедура | Строки из левого поля (текущая процедура расширения или изменённая процедура). |
| Результат | Строки из результата, полученного от ИИ. |
| Новая процедура | Строки из среднего поля (новая типовая или оригинальная процедура). |
Алгоритм выравнивания
Обработка использует алгоритм LCS (Longest Common Subsequence) для попарного сравнения текстов. Одинаковые строки выравниваются на одном уровне, что позволяет визуально увидеть, какие строки добавлены, удалены или изменены.
Условное оформление
- Аннотации расширения (
#Вставка,#КонецВставки,#Удаление,#КонецУдаления) — выделяются цветом #993366 во всех трёх колонках. - Строки с различиями — если строка присутствует только в одной колонке (другие две пусты), фон строки окрашивается серебряным цветом, что позволяет быстро найти отличия.
Дополнительные инструкции (Чат)
Поле «Чат» используется для передачи дополнительного контекста модели. Например:
Переменная СтараяПеременная была переименована в НоваяПеременная.Сохрани комментарии из текущей процедуры.Не переноси блок с временной отладочной логикой.Размести вставку после инициализации переменной Результат.
Статистика токенов и стоимость
После успешного выполнения запроса под кнопкой «Выполнить запрос» отображается строка статистики:
- Токены входных — количество токенов, потраченных на отправку запроса (prompt).
- Токены выходных — количество токенов, потраченных на генерацию ответа (completion).
- Всего — суммарное количество токенов.
- Стоимость — стоимость запроса в долларах США (отображается, если провайдер возвращает данные о стоимости; доступно для OpenRouter).
Эта информация помогает контролировать расходы и оценивать сложность обработки.
Сохранение настроек
После успешного выполнения запроса обработка сохраняет:
- выбранного провайдера;
- API-ключи для каждого провайдера отдельно;
- текущую модель;
folder-idдля YandexGPT;- значение Max tokens.
При следующем открытии обработки эти настройки восстанавливаются автоматически. API-ключи хранятся в ХранилищеОбщихНастроек, что означает их привязку к конкретному пользователю информационной базы.
Рекомендации
- Всегда проверяйте результат вручную перед переносом в расширение. Используйте вкладку «Сравнение» для быстрой визуальной проверки.
- Для сложных процедур используйте более сильные модели (например,
GigaChat-Maxилиanthropic/claude-sonnet-4). - Если процедура очень большая, увеличьте значение Max tokens, чтобы избежать обрезки ответа.
- Используйте кнопки «Заполнить» для загрузки текста из файлов — это удобнее, чем копировать большие процедуры через буфер обмена.
- Используйте поле Чат, если в новой версии изменились названия переменных, структура процедуры или порядок вызовов.
- Если ответ модели вас не устраивает, повторите запрос с другой моделью или более точными дополнительными инструкциями.
- Не передавайте файл обработки с сохранёнными ключами третьим лицам.
Вступайте в нашу телеграмм-группу Инфостарт