| name | xbsl-file-add |
| description | Добавление файловых вложений (компонент СписокФайлов) к существующему объекту конфигурации 1С:Элемент. Поддерживает 4 паттерна: P1 — стандартные вложения через встроенный реквизит Файлы (новых реквизитов нет); P2 — одиночный файл (ДвоичныйОбъект.Ссылка?, макс. 1); P3 — категория файлов (Массив<ДвоичныйОбъект.Ссылка> с лимитами и фильтрами); P4 — несколько категорий (несколько P3). Вызывай когда пользователь хочет добавить вложения, загрузку файлов, скан договора, логотип, прикреплённые документы к справочнику или документу. НЕ для работы с изображениями (используй xbsl-image-add).
|
| compatibility | Requires Python 3. |
Во всех командах ниже {python} означает python в Windows и python3 в macOS/Linux/WSL. Выбирай команду сразу по текущей ОС, не запускай оба варианта.
Алгоритм
Шаг 1 — Определить паттерн (P1–P4)
Прочитай references/patterns.md и выбери паттерн по описанию пользователя:
| Паттерн | Реквизит | Когда |
|---|
| P1 | встроенный Файлы | произвольные вложения без ограничений по типу/количеству |
| P2 | ДвоичныйОбъект.Ссылка? | ровно один файл (скан, логотип, один обязательный документ) |
| P3 | Массив<ДвоичныйОбъект.Ссылка> | именованная категория файлов с лимитами и/или фильтром |
| P4 | несколько реквизитов P3 | объект с несколькими категориями документов |
Шаг 2 — Анализ объекта (параллельно с шагом 1)
Вызови скилл xbsl-form-info:
{python} .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: файл объекта + файл формы