Урок

Урок 4. Создаём расширение и дорабатываем заказ

Результат: в учебной УНФ появляется расширение с новым реквизитом заказа, отдельной печатной командой и выгрузкой одного заказа в XML. Основную конфигурацию ты не меняешь.

Время
Самостоятельная практика
Артефакт
Расширение УНФ с реквизитом, печатной командой и XML-выгрузкой заказа
Контрольная точка
Результат проверен по шагам в учебной УНФ без изменения основной конфигурации

Результат: в учебной УНФ появляется расширение с новым реквизитом заказа, отдельной печатной командой и выгрузкой одного заказа в XML. Основную конфигурацию ты не меняешь.

Нужна своя учебная УНФ или похожая 1С-конфигурация, с которой тебе разрешено работать. В примере ниже документ назван ЗаказПокупателя; в твоём релизе имя и устройство форм могут отличаться. Сначала найди фактический объект, затем подставь его имя в запросы к агенту. Все заказы для проверки вымышленные.

1. Подготовь базу и папку

Убедись, что учебную базу можно восстановить, и посмотри версию платформы, конфигурации и список уже установленных расширений. Рабочую базу для урока не используй. Если исходники своей конфигурации нельзя передавать выбранному ИИ-сервису, выполняй практику в разрешённом учебном контуре.

Создай папку курса, например C:\AI-Course-Work\UNF-Agent-Lab. В ней понадобятся src\base для разрешённой XML-выгрузки конфигурации и src\extension для XML-исходников нового расширения. Файл информационной базы, .dt, журналы, секреты и клиентские данные в эту папку не клади. Открой агенту только эту папку.

В конфигураторе учебной базы создай пустое расширение AI_Course_Orders. Найди в дереве основной конфигурации ЗаказПокупателя или аналог заказа. Заимствуй документ в расширение; форму заимствуй только тогда, когда выяснишь, что для нового поля или команды она нужна. Выгрузи исходники расширения в файлы в src\extension. Если разрешено, выгрузи туда же для чтения исходники основной конфигурации в src\base. Это разные наборы исходников: .cfe собирается и проверяется позже, он не заменяет XML-выгрузку. Команды «Добавить в расширение» и «Выгрузить конфигурацию в файлы» показаны в руководстве 1С по расширениям и руководстве разработчика; расположение пунктов сверь со своей версией конфигуратора.

Если не получается получить разрешённые исходники, остановись здесь и разберись с доступом. Агент не должен угадывать устройство твоей УНФ по чужому релизу.

2. Попроси агента сначала разобраться

Открой папку как проект Codex и начни новую задачу «Реквизит заказа». Исследование и добавление поля ниже проведи в этом диалоге. Отправь:

Работаем с учебной УНФ в этой папке. Ничего пока не меняй.
Найди в XML-исходниках документ ЗаказПокупателя (или его аналог),
форму, точки расширения и существующий способ печати. Укажи реальные
пути и имена объектов. Проверь, что src/extension — исходники
расширения, а src/base — только справочные исходники типовой конфигурации.
Предложи минимальный план: реквизит, отдельная печатная команда,
выгрузка одного заказа в XML. Покажи, что для каждого шага надо заимствовать.
Если нужных исходников нет, перечисли недостающее и остановись.

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

3. Добавь одно поле

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

Добавь в расширение реквизит заказа AI_КомментарийДляПечати,
строка до 100 символов, необязательный. Покажи его на подходящей форме
заказа, если это поддерживает найденный механизм расширения.
Меняй только src/extension. Сначала покажи операции и diff, затем
сделай изменение и проверь структуру расширения и BSL.
Не меняй основную конфигурацию и не загружай ничего в базу.

В diff должны быть только исходники расширения. После проверки исходников собери .cfe поддерживаемым у тебя способом, затем установи этот файл в учебную базу и открой заказ. Эти действия с базой выполняй отдельно после точки восстановления; агенту не нужно давать доступ к рабочему контуру. Проверь два заказа: у нового значение сохраняется после закрытия и открытия, у старого оно пустое. Если поле не появилось, уточни заимствование формы и режим совместимости, а не проси переписать всё расширение.

4. Сделай отдельную печатную команду

После проверки поля начни новую задачу в том же проекте: «Печатная карточка заказа». Агент увидит текущие исходники расширения; в запросе напомни, какой реквизит уже добавлен. Пусть новая команда печатает маленькую карточку: номер, дату и AI_КомментарийДляПечати. При пустом комментарии место остаётся пустым. Стандартные печатные формы не меняем.

Найди механизм печати выбранного документа в этой версии УНФ.
Предложи отдельную команду «Карточка заказа (учебная)» в расширении:
номер, дата, AI_КомментарийДляПечати. Сначала объясни, какие формы,
команды и макеты нужны; покажи preview изменений. После моего просмотра
изменяй только src/extension. Проверь ссылки на реквизиты и макет.
Не заменяй существующие печатные команды.

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

5. Выгрузи один заказ в XML

После проверки печати открой ещё одну задачу проекта: «XML одного заказа». Последнее действие — отдельная команда, которая предлагает выбрать локальный файл и выгружает один открытый заказ. Согласованный формат для упражнения:

<OrderExport version="1">
  <Number>УЧ-001</Number>
  <Date>2026-09-24</Date>
  <PrintComment>Тест &amp; проверка</PrintComment>
</OrderExport>

Здесь дата в формате YYYY-MM-DD, кодировка UTF-8; пустой комментарий даёт пустой элемент. Существующий файл не перезаписывается без выбора пользователя. Отправки по сети нет.

Добавь в расширение отдельную команду «Выгрузить заказ в XML».
Выгружай только открытый заказ: номер, дату и AI_КомментарийДляПечати
в формате из урока. Используй штатные средства XML платформы,
экранируй специальные символы, обработай отмену выбора файла и ошибку
записи. Сначала покажи пример результата и preview diff.
После моего просмотра меняй только src/extension; проверь BSL и структуру.
В базу не загружай и по сети ничего не отправляй.

После сборки и установки точного .cfe открой экспортированный файл независимым XML-парсером. Сравни три значения с заказом, проверь & и < в комментарии, пустой комментарий и отказ перезаписи. Если XML валиден, но значение не совпало, задача ещё не решена.

Что получилось

В учебной базе должны работать три действия: поле сохраняется, новая карточка печатается, XML читается парсером и содержит значения заказа. Проверь, что типовая конфигурация осталась прежней, а в папке агента нет данных базы. Если сборка или нативная проверка недоступны, у тебя пока есть только проверенные исходники: вернись к поведению, когда появится рабочий учебный контур.