К статье
Практический материал

Разработка и Конфигурация · 11 мин

Коллекция картинок в 1С: создание и использование

Как создать коллекцию картинок в конфигураторе 1С, добавить изображения, обратиться к ним из кода и использовать в формах, кнопках и отчётах.

Коллекция картинок в 1С — это объект конфигурации «Общая картинка» либо библиотека картинок, в которой хранятся изображения для кнопок, команд, элементов форм и отчётов. Вместо того чтобы загружать один и тот же значок в каждую форму, разработчик один раз добавляет картинку в общую коллекцию и затем ссылается на неё по имени из любого места конфигурации.

Такой подход решает сразу несколько задач: интерфейс выглядит единообразно, обновление значка выполняется в одном месте, а размер конфигурации не раздувается дублирующимися файлами. Ниже разобрано, как создать общую картинку в конфигураторе, как обратиться к ней из встроенного языка, какие форматы поддерживаются и какие ошибки встречаются чаще всего.

Где в конфигураторе хранятся картинки

В дереве конфигурации изображения могут находиться в двух местах. Первое — ветка «Общие → Общие картинки»: здесь создаются именованные объекты, доступные всей конфигурации. Именно эту ветку принято называть коллекцией (библиотекой) картинок прикладного решения.

Второе место — свойства отдельных объектов: у кнопки формы, команды, элемента управления может быть собственная картинка, загруженная напрямую. Такой вариант оправдан только для уникальных изображений, которые нигде больше не используются. Для повторяющихся значков всегда предпочтительнее общая картинка.

Кроме того, платформа содержит встроенную библиотеку стандартных картинок (значки «Записать», «Провести», «Справка» и другие). Их не нужно создавать — они доступны сразу через ту же конструкцию БиблиотекаКартинок.

Как создать общую картинку пошагово

Создание выполняется в конфигураторе и занимает меньше минуты. Откройте дерево конфигурации (меню «Конфигурация → Открыть конфигурацию»), раскройте ветку «Общие», найдите пункт «Общие картинки» и через контекстное меню выберите «Добавить».

В палитре свойств нового объекта задайте имя — оно станет идентификатором для обращения из кода, поэтому используйте понятные имена без пробелов, например «СтатусОплачен» или «ЛоготипКомпании». Затем в свойстве «Картинка» нажмите кнопку выбора и загрузите файл с диска. После сохранения конфигурации изображение попадёт в информационную базу.

Порядок действий
  1. 1
    Откройте конфигуратор и дерево конфигурации
  2. 2
    Раскройте «Общие → Общие картинки», добавьте новый объект
  3. 3
    Задайте имя без пробелов и спецсимволов
  4. 4
    В свойстве «Картинка» загрузите файл изображения
  5. 5
    Сохраните конфигурацию и обновите конфигурацию базы данных
  6. 6
    Проверьте доступность картинки из кода или формы

Если картинок много, их удобно группировать по смыслу с помощью префиксов в именах: «Статус_Новый», «Статус_ВРаботе», «Статус_Закрыт». Встроенной группировки в подсистемы у общих картинок нет, поэтому дисциплина именования — единственный способ не потеряться в большой коллекции.

Поддерживаемые форматы и требования к файлам

Платформа 1С работает с распространёнными растровыми форматами: PNG, JPEG, GIF, BMP, а также с иконками ICO. Для интерфейсных значков предпочтителен PNG с прозрачным фоном — он корректно отображается на кнопках и в таблицах независимо от цвета темы.

Коллекция картинок поддерживает и вариант с набором размеров: один объект может содержать несколько версий изображения для разных разрешений экрана. Это полезно для интерфейсов, которые запускаются и на обычных мониторах, и на дисплеях с высокой плотностью пикселей.

Практические ограничения просты: не загружайте фотографии весом в несколько мегабайт там, где нужен значок 16×16. Каждая общая картинка хранится в конфигурации, и десятки тяжёлых файлов заметно увеличат размер поставки и время обновления. Перед загрузкой уменьшайте изображения до реально используемого размера.

Как обратиться к картинке из кода

Во встроенном языке вся коллекция доступна через свойство глобального контекста БиблиотекаКартинок. Обращение выполняется по имени объекта: БиблиотекаКартинок.СтатусОплачен. Результат — значение типа «Картинка», которое можно присвоить свойствам элементов формы, использовать в табличном документе или передать в методы, ожидающие изображение.

Типичный сценарий — установка картинки кнопке программно. Например, в модуле формы: Элементы.КнопкаОплата.Картинка = БиблиотекаКартинок.СтатусОплачен;. Аналогично картинка назначается декорации, ячейке табличного документа (через область рисунка) или команде панели навигации.

Если картинка нужна динамически — например, значок зависит от статуса документа — имя можно сформировать строкой и получить объект через вычисление: БиблиотекаКартинок["Статус" + ИмяСтатуса]. Такой приём удобен, но требует строгого контроля имён: обращение к несуществующему имени вызовет ошибку выполнения.

bsl
// Установка картинки кнопке формы
Элементы.КнопкаОплата.Картинка = БиблиотекаКартинок.СтатусОплачен;

// Динамический выбор по имени
ИмяКартинки = "Статус" + Строка(ТекущийСтатус);
Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок[ИмяКартинки];

Использование в формах, командах и отчётах

В управляемых формах картинка чаще всего назначается без кода — через палитру свойств. У кнопки формы есть свойство «Картинка», где из выпадающего списка выбирается либо стандартная картинка платформы, либо любая общая картинка конфигурации. То же свойство есть у команд, декораций и полей картинки.

Для команд глобального интерфейса и подсистем картинка задаётся в свойствах самой команды или объекта метаданных. Например, у справочника и документа есть свойства «Картинка», которые определяют значок объекта в панелях разделов и списках. Это делает навигацию нагляднее без единой строки кода.

В отчётах на СКД и табличных документах общие картинки вставляются как рисунки: в макете добавляется элемент «Картинка», и в его свойстве указывается источник из библиотеки. Для печатных форм с логотипом это стандартный приём — логотип хранится один раз в общей картинке и подставляется во все макеты.

Сравнение вариантов хранения

Общая картинка конфигурации

Подходит для значков, используемых в нескольких местах. Централизованное обновление, доступ по имени из кода.

Картинка в свойстве элемента

Подходит для уникального изображения одной формы. Недоступна из других объектов, дублирует данные при повторном использовании.

Стандартная картинка платформы

Подходит для типовых действий (записать, провести, удалить). Не требует создания, но не поддаётся изменению дизайна.

Хранение в базе данных (значение в реквизите)

Подходит для пользовательских изображений — фото товаров, сканов. Загружается пользователем, а не разработчиком.

Типичные ошибки и ограничения

Самая частая проблема — обращение к картинке, которой нет в библиотеке. Ошибка возникает при переименовании объекта без исправления всех мест использования или при опечатке в динамически формируемом имени. Перед переименованием общей картинки выполните поиск имени по всей конфигурации (Правка → Найти) и исправьте каждое вхождение.

Вторая группа ошибок связана с отображением: картинка «не видна» на кнопке, хотя назначена. Проверьте свойство «Отображение» кнопки — если стоит «Надпись», картинка не выводится. Также убедитесь, что файл действительно загружен в объект, а не только выбран в диалоге без сохранения.

Третья ошибка — использование общих картинок для пользовательского контента. Если изображения должен загружать пользователь (фото товара, скан договора), общая картинка не подходит: она меняется только в конфигураторе. Для таких данных используйте реквизиты типа «ХранилищеЗначения» или присоединённые файлы.

Типичные ошибки
01
Переименование общей картинки без поиска использований — обращения по старому имени падают с ошибкой
02
Загрузка тяжёлых изображений — раздувает конфигурацию и замедляет обновление
03
Свойство «Отображение» кнопки установлено в «Надпись» — назначенная картинка не видна
04
Хранение пользовательских фото в общих картинках — их нельзя изменить без конфигуратора
05
JPEG для значков с прозрачностью — формат не поддерживает альфа-канал, фон становится сплошным

Как проверить результат

После создания картинки проверьте её доступность до обновления рабочей базы. Быстрый способ — открыть любую форму в режиме предприятия на тестовой копии и убедиться, что значок отображается. Для программной проверки можно выполнить обращение к БиблиотекаКартинок через консоль кода: если имя существует, вернётся объект типа «Картинка», если нет — платформа сообщит об ошибке.

Дополнительно пройдитесь по сценариям, где картинка должна меняться динамически: разные статусы, разные состояния документа. Убедитесь, что для каждого варианта имя формируется корректно и соответствующий объект существует в коллекции.

Контрольные точки

Как проверить результат

Обращение из кода
Норма

Возвращается объект типа «Картинка», ошибок нет

Тревожный признак

Ошибка «Поле объекта не обнаружено» — имени нет в библиотеке

Отображение на кнопке
Норма

Значок виден рядом с надписью или вместо неё

Тревожный признак

Кнопка пустая — проверить свойство «Отображение» и загрузку файла

Прозрачный фон значка
Норма

Фон кнопки просвечивает сквозь картинку

Тревожный признак

Белый или чёрный прямоугольник — формат без альфа-канала

Обновление конфигурации
Норма

После обновления картинка доступна в режиме предприятия

Тревожный признак

Изменения видны только в конфигураторе — база не обновлена

Частые вопросы

Можно ли создать общую картинку программно, без конфигуратора?

Нет. Общие картинки — это объекты метаданных, они создаются и изменяются только в конфигураторе или при загрузке конфигурации из файлов. Если изображения должны добавляться в режиме предприятия, используйте реквизиты с хранилищем значений или механизм присоединённых файлов.

Чем общая картинка отличается от стандартной библиотеки платформы?

Стандартные картинки встроены в платформу и доступны всегда, но их набор фиксирован и изменить их нельзя. Общие картинки создаёт разработчик под задачи своей конфигурации: любые файлы, любые имена, полный контроль над содержимым.

Почему картинка видна в конфигураторе, но не отображается у пользователей?

Чаще всего конфигурация базы данных не обновлена после изменения: объект существует в конфигураторе, но в рабочей базе его ещё нет. Выполните «Обновить конфигурацию базы данных». Если обновление выполнено, проверьте свойство «Отображение» элемента формы и корректность имени в коде.

Какой размер и формат выбрать для значков кнопок?

Стандартная практика — PNG с прозрачным фоном, размер в пределах 16×16 или 24×24 пикселя для обычных кнопок. Большие изображения не дают выигрыша в качестве на панелях команд, но увеличивают конфигурацию. Для экранов с высокой плотностью пикселей можно добавить в объект вариант большего размера.

Как найти все места, где используется конкретная картинка?

В конфигураторе выполните глобальный поиск (Правка → Найти) по имени картинки по всей конфигурации, включая модули и формы. Для объектов метаданных также доступен пункт «Поиск ссылок на объект» в контекстном меню — он покажет ссылки из свойств других объектов.

Можно ли хранить в общей картинке несколько размеров одного изображения?

Да, объект общей картинки поддерживает набор вариантов для разных разрешений. Платформа автоматически выбирает подходящий вариант в зависимости от масштаба интерфейса. Это избавляет от необходимости создавать отдельные объекты «Картинка16», «Картинка32» и подобные.

Итог

Что важно запомнить

Коллекция картинок создаётся в ветке «Общие → Общие картинки» конфигуратора: добавьте объект, задайте имя, загрузите PNG-файл. Обращение из кода — БиблиотекаКартинок.ИмяКартинки, в формах — свойство «Картинка». Перед переименованием или удалением всегда ищите использования по всей конфигурации, а пользовательские изображения храните не в метаданных, а в данных.