Урок
Урок 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>Тест & проверка</PrintComment>
</OrderExport>
Здесь дата в формате YYYY-MM-DD, кодировка UTF-8; пустой комментарий даёт пустой элемент. Существующий файл не перезаписывается без выбора пользователя. Отправки по сети нет.
Добавь в расширение отдельную команду «Выгрузить заказ в XML».
Выгружай только открытый заказ: номер, дату и AI_КомментарийДляПечати
в формате из урока. Используй штатные средства XML платформы,
экранируй специальные символы, обработай отмену выбора файла и ошибку
записи. Сначала покажи пример результата и preview diff.
После моего просмотра меняй только src/extension; проверь BSL и структуру.
В базу не загружай и по сети ничего не отправляй.
После сборки и установки точного .cfe открой экспортированный файл независимым XML-парсером. Сравни три значения с заказом, проверь & и < в комментарии, пустой комментарий и отказ перезаписи. Если XML валиден, но значение не совпало, задача ещё не решена.
Что получилось
В учебной базе должны работать три действия: поле сохраняется, новая карточка печатается, XML читается парсером и содержит значения заказа. Проверь, что типовая конфигурация осталась прежней, а в папке агента нет данных базы. Если сборка или нативная проверка недоступны, у тебя пока есть только проверенные исходники: вернись к поведению, когда появится рабочий учебный контур.