<< All versions

Skill v1.0.0

currentAutomated scan100/100
korolevpavel/xbsl-ai-skills/xbsl-file-add
──Details
PublishedOctober 25, 2026 at 02:24 PM
Content Hashsha256:2e22793201dbf2d4...
Git SHA53361600b709
──Files
Files (1 file, 5.0 KB)
SKILL.md5.0 KBactive
SKILL.md · 79 lines · 5.0 KB

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


На target 10.0+ перед сценарием загрузки/выгрузки файла прочитай references/file-names-10.md: недопустимые символы в имени обрабатываются режимом всего приложения. Глобальный режим меняй только по явному запросу; при НеИсправлять предусмотрена ошибка имени.

Во всех командах ниже {python} означает python в Windows и python3 в macOS/Linux/WSL. Выбирай команду сразу по текущей ОС, не запускай оба варианта.

Алгоритм

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

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

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

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

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

bash
{python} 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: файл объекта + файл формы
All versions