<< All versions

Skill v1.0.0

currentAutomated scan100/100
korolevpavel/xbsl-ai-skills/xbsl-image-add
──Details
PublishedOctober 26, 2026 at 11:13 PM
Content Hashsha256:5d2c04d4ad3848f1...
Git SHA73524afa62f9
──Files
Files (1 file, 7.0 KB)
SKILL.md7.0 KBactive
SKILL.md · 109 lines · 7.0 KB

version: "1.0.0" name: xbsl-image-add description: > Добавление фото и изображений (аватар, фото товара, иконка) к объекту конфигурации 1С:Элемент. Поддерживает 2 паттерна: P5 — простое фото без обработки (ВыборФайлов + Картинка); P6 — фото с серверной обработкой (ресайз, обрезка по кругу через ОбрабатываемоеИзображение). Вызывай когда пользователь хочет добавить аватар сотрудника, фото товара, логотип компании, изображение профиля или любое одиночное изображение к справочнику или документу. НЕ для файловых вложений (используй xbsl-file-add). compatibility: Requires Python 3.


На target 10.0+ при загрузке фото и особенно при P6 прочитай ../xbsl-file-add/references/file-names-10.md. Используй имя загруженного объекта; режим исправления имён общий для приложения и не изменяется в обработчике фото.

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

Ключевое отличие от xbsl-file-add

ВыборФайлов не хранит файл автоматически — он вызывает обработчик ПриИзменении, который должен загрузить файл через ЗагрузкаФайлов и сохранить в реквизит. Это требует .xbsl файла обработчика — его нет в xbsl-file-add.

Перед созданием обработчика прочитай docs/xbsl-spec.md. Прочитай references/patterns.md перед выполнением — там YAML и XBSL шаблоны для обоих паттернов.


Алгоритм

Шаг 1 — Определить паттерн и placeholder

ПаттернКогда выбирать
P5 — Простое фотозагрузка без обработки, хранится как есть
P6 — Фото с обработкойнужен ресайз и/или обрезка по кругу (аватар профиля)

Placeholder-изображение (заглушка когда фото не загружено):

КонтекстPlaceholder
Фото/аватар аккаунта, пользователя, сотрудника, контактаРесурс{Аккаунт.svg}.Ссылка
Любое другое изображение (товар, документ, объект)Ресурс{Файл.svg}.Ссылка
Если пользователь просит «фото аккаунта», «аватар», «фото профиля» — используй Аккаунт.svg.
Во всех остальных случаях — Файл.svg.

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

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

Из результата взять:

  • object_path + object_file — путь к YAML объекта
  • fields — проверить наличие реквизита Фото
  • existing_forms — найти YAML формы объекта

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

Если реквизит Фото уже есть в fields — спроси пользователя:

  • Использовать существующий → пропустить шаги 3 и 4, имя реквизита Фото, имя метода ПриВыбореФото
  • Создать новый → спроси имя нового реквизита, продолжить со шага 3; имя метода — ПриВыборе<ИмяРеквизита>

Шаг 3 — UUID

Вызвать скилл xbsl-uuid → 1 UUID для реквизита изображения.

Шаг 4 — Обновить YAML объекта

Добавить в конец Реквизиты (шаблон из references/patterns.md, раздел «Реквизит»):

yaml
-
Ид: <UUID>
Имя: <ИмяРеквизита>
Тип: ДвоичныйОбъект.Ссылка?

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

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

Если форма не найдена: вызови скилл xbsl-form-add для создания формы объекта (и формы списка если нужна), затем продолжи выполнение этого скилла — не останавливайся, добавь изображение в только что созданную форму.

Если форма найдена: добавить группу с Картинка + ВыборФайлов по шаблону из references/patterns.md.

Место вставки группы фото:

  • Объект-человек (сотрудник, пользователь, контакт, аккаунт) → в начало формы, перед полями
  • Любой другой объект (документ, товар, задача и т.д.) → в конец формы, после полей

Шаг 6 — Добавить .xbsl обработчик

Файл называется по имени формы: <НазваниеФормы>.xbsl, рядом с YAML формы.

  • Если файл уже существует — дописать метод(ы) в конец
  • Если не существует — создать новый

Шаблоны из references/patterns.md:

  • P5: метод ПриВыбореФото
  • P6: метод ПриВыбореФото + статический серверный метод ОбработатьФото

Имя реквизита — Фото (по умолчанию). Имя метода — ПриВыборе<ИмяРеквизита> (например ПриВыбореФото, ПриВыбореАватара).

Шаг 7 — Итог

Перечислить изменённые/созданные файлы:

  • <ОбъектYAML> — добавлен реквизит ДвоичныйОбъект.Ссылка?
  • <ФормаYAML> — добавлены компоненты Картинка + ВыборФайлов
  • <ФормаXBSL> — создан/обновлён обработчик
All versions