XBSL Skills AI-инструменты для 1С:Элемент
Скиллpython3

xbsl-file-add

Добавление файловых вложений (компонент СписокФайлов) к существующему объекту конфигурации 1С:Элемент. Поддерживает 4 паттерна: P1 — стандартные вложения через встроенный реквизит Файлы (новых реквизитов нет); P2 — одиночный файл (ДвоичныйОбъект.Ссылка?, макс. 1); P3 — категория файлов (Массив<ДвоичныйОбъект.Ссылка> с лимитами и фильтрами); P4 — несколько категорий (несколько P3). Вызывай когда пользователь хочет добавить вложения, загрузку файлов, скан договора, логотип, прикреплённые документы к справочнику или документу. НЕ для работы с изображениями (используй xbsl-image-add).

Алгоритм

Шаг 1 — Определить паттерн (P1–P4)

Прочитай references/patterns.md и выбери паттерн по описанию пользователя:

Паттерн Реквизит Когда
P1 встроенный Файлы произвольные вложения без ограничений по типу/количеству
P2 ДвоичныйОбъект.Ссылка? ровно один файл (скан, логотип, один обязательный документ)
P3 Массив<ДвоичныйОбъект.Ссылка> именованная категория файлов с лимитами и/или фильтром
P4 несколько реквизитов P3 объект с несколькими категориями документов

Шаг 2 — Анализ объекта (параллельно с шагом 1)

Вызови скилл xbsl-form-info:

python3 .claude/skills/xbsl-form-info/scripts/form_info.py --name <ИмяОбъекта> --root .

Используй результат: - object_path — путь к папке подсистемы - object_file — имя YAML-файла объекта (object_path/object_file) - fields — проверь конфликт имён реквизитов (для P2–P4) - existing_forms — найди YAML форм для шага 5

Если скрипт вернул error — сообщи пользователю и остановись.

Шаг 3 — UUID

  • P1: UUID не нужен
  • P2 или P3: вызови скилл xbsl-uuid → 1 UUID
  • P4: вызови скилл xbsl-uuid → N UUID (по количеству новых реквизитов)

Шаг 4 — Обновить YAML объекта (только P2–P4)

Открой object_path/object_file. Добавь новые реквизиты в конец секции Реквизиты.

Шаблоны из references/patterns.md: - P2: реквизит ДвоичныйОбъект.Ссылка? - P3: реквизит Массив<ДвоичныйОбъект.Ссылка> - P4: несколько реквизитов P3

Для P1 шаг 4 пропустить — реквизит Файлы уже присутствует в объекте.

Шаг 5 — Обновить форму

Найди YAML-файл формы из existing_forms["ФормаОбъекта"].

Если форма не найдена: сообщи пользователю и предложи сначала вызвать скилл xbsl-form-add.

Если форма найдена: добавь компонент СписокФайлов по шаблону из references/patterns.md. Место вставки — в конец Содержимое формы (после последнего поля/группы, перед закрытием блока).

Шаг 6 — Итог

Перечисли изменённые файлы: - P1: только файл формы - P2–P4: файл объекта + файл формы