Разработка и Конфигурация · 11 мин
Коллекция картинок в 1С: создание и использование
Как создать коллекцию картинок в конфигураторе 1С, добавить изображения, обратиться к ним из кода и использовать в формах, кнопках и отчётах.
Коллекция картинок в 1С — это объект конфигурации «Общая картинка» либо библиотека картинок, в которой хранятся изображения для кнопок, команд, элементов форм и отчётов. Вместо того чтобы загружать один и тот же значок в каждую форму, разработчик один раз добавляет картинку в общую коллекцию и затем ссылается на неё по имени из любого места конфигурации.
Такой подход решает сразу несколько задач: интерфейс выглядит единообразно, обновление значка выполняется в одном месте, а размер конфигурации не раздувается дублирующимися файлами. Ниже разобрано, как создать общую картинку в конфигураторе, как обратиться к ней из встроенного языка, какие форматы поддерживаются и какие ошибки встречаются чаще всего.
Где в конфигураторе хранятся картинки
В дереве конфигурации изображения могут находиться в двух местах. Первое — ветка «Общие → Общие картинки»: здесь создаются именованные объекты, доступные всей конфигурации. Именно эту ветку принято называть коллекцией (библиотекой) картинок прикладного решения.
Второе место — свойства отдельных объектов: у кнопки формы, команды, элемента управления может быть собственная картинка, загруженная напрямую. Такой вариант оправдан только для уникальных изображений, которые нигде больше не используются. Для повторяющихся значков всегда предпочтительнее общая картинка.
Кроме того, платформа содержит встроенную библиотеку стандартных картинок (значки «Записать», «Провести», «Справка» и другие). Их не нужно создавать — они доступны сразу через ту же конструкцию БиблиотекаКартинок.
Как создать общую картинку пошагово
Создание выполняется в конфигураторе и занимает меньше минуты. Откройте дерево конфигурации (меню «Конфигурация → Открыть конфигурацию»), раскройте ветку «Общие», найдите пункт «Общие картинки» и через контекстное меню выберите «Добавить».
В палитре свойств нового объекта задайте имя — оно станет идентификатором для обращения из кода, поэтому используйте понятные имена без пробелов, например «СтатусОплачен» или «ЛоготипКомпании». Затем в свойстве «Картинка» нажмите кнопку выбора и загрузите файл с диска. После сохранения конфигурации изображение попадёт в информационную базу.
- 1Откройте конфигуратор и дерево конфигурации
- 2Раскройте «Общие → Общие картинки», добавьте новый объект
- 3Задайте имя без пробелов и спецсимволов
- 4В свойстве «Картинка» загрузите файл изображения
- 5Сохраните конфигурацию и обновите конфигурацию базы данных
- 6Проверьте доступность картинки из кода или формы
Если картинок много, их удобно группировать по смыслу с помощью префиксов в именах: «Статус_Новый», «Статус_ВРаботе», «Статус_Закрыт». Встроенной группировки в подсистемы у общих картинок нет, поэтому дисциплина именования — единственный способ не потеряться в большой коллекции.
Поддерживаемые форматы и требования к файлам
Платформа 1С работает с распространёнными растровыми форматами: PNG, JPEG, GIF, BMP, а также с иконками ICO. Для интерфейсных значков предпочтителен PNG с прозрачным фоном — он корректно отображается на кнопках и в таблицах независимо от цвета темы.
Коллекция картинок поддерживает и вариант с набором размеров: один объект может содержать несколько версий изображения для разных разрешений экрана. Это полезно для интерфейсов, которые запускаются и на обычных мониторах, и на дисплеях с высокой плотностью пикселей.
Практические ограничения просты: не загружайте фотографии весом в несколько мегабайт там, где нужен значок 16×16. Каждая общая картинка хранится в конфигурации, и десятки тяжёлых файлов заметно увеличат размер поставки и время обновления. Перед загрузкой уменьшайте изображения до реально используемого размера.
Как обратиться к картинке из кода
Во встроенном языке вся коллекция доступна через свойство глобального контекста БиблиотекаКартинок. Обращение выполняется по имени объекта: БиблиотекаКартинок.СтатусОплачен. Результат — значение типа «Картинка», которое можно присвоить свойствам элементов формы, использовать в табличном документе или передать в методы, ожидающие изображение.
Типичный сценарий — установка картинки кнопке программно. Например, в модуле формы: Элементы.КнопкаОплата.Картинка = БиблиотекаКартинок.СтатусОплачен;. Аналогично картинка назначается декорации, ячейке табличного документа (через область рисунка) или команде панели навигации.
Если картинка нужна динамически — например, значок зависит от статуса документа — имя можно сформировать строкой и получить объект через вычисление: БиблиотекаКартинок["Статус" + ИмяСтатуса]. Такой приём удобен, но требует строгого контроля имён: обращение к несуществующему имени вызовет ошибку выполнения.
// Установка картинки кнопке формы
Элементы.КнопкаОплата.Картинка = БиблиотекаКартинок.СтатусОплачен;
// Динамический выбор по имени
ИмяКартинки = "Статус" + Строка(ТекущийСтатус);
Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок[ИмяКартинки];Использование в формах, командах и отчётах
В управляемых формах картинка чаще всего назначается без кода — через палитру свойств. У кнопки формы есть свойство «Картинка», где из выпадающего списка выбирается либо стандартная картинка платформы, либо любая общая картинка конфигурации. То же свойство есть у команд, декораций и полей картинки.
Для команд глобального интерфейса и подсистем картинка задаётся в свойствах самой команды или объекта метаданных. Например, у справочника и документа есть свойства «Картинка», которые определяют значок объекта в панелях разделов и списках. Это делает навигацию нагляднее без единой строки кода.
В отчётах на СКД и табличных документах общие картинки вставляются как рисунки: в макете добавляется элемент «Картинка», и в его свойстве указывается источник из библиотеки. Для печатных форм с логотипом это стандартный приём — логотип хранится один раз в общей картинке и подставляется во все макеты.
Сравнение вариантов хранения
Подходит для значков, используемых в нескольких местах. Централизованное обновление, доступ по имени из кода.
Подходит для уникального изображения одной формы. Недоступна из других объектов, дублирует данные при повторном использовании.
Подходит для типовых действий (записать, провести, удалить). Не требует создания, но не поддаётся изменению дизайна.
Подходит для пользовательских изображений — фото товаров, сканов. Загружается пользователем, а не разработчиком.
Типичные ошибки и ограничения
Самая частая проблема — обращение к картинке, которой нет в библиотеке. Ошибка возникает при переименовании объекта без исправления всех мест использования или при опечатке в динамически формируемом имени. Перед переименованием общей картинки выполните поиск имени по всей конфигурации (Правка → Найти) и исправьте каждое вхождение.
Вторая группа ошибок связана с отображением: картинка «не видна» на кнопке, хотя назначена. Проверьте свойство «Отображение» кнопки — если стоит «Надпись», картинка не выводится. Также убедитесь, что файл действительно загружен в объект, а не только выбран в диалоге без сохранения.
Третья ошибка — использование общих картинок для пользовательского контента. Если изображения должен загружать пользователь (фото товара, скан договора), общая картинка не подходит: она меняется только в конфигураторе. Для таких данных используйте реквизиты типа «ХранилищеЗначения» или присоединённые файлы.
Как проверить результат
После создания картинки проверьте её доступность до обновления рабочей базы. Быстрый способ — открыть любую форму в режиме предприятия на тестовой копии и убедиться, что значок отображается. Для программной проверки можно выполнить обращение к БиблиотекаКартинок через консоль кода: если имя существует, вернётся объект типа «Картинка», если нет — платформа сообщит об ошибке.
Дополнительно пройдитесь по сценариям, где картинка должна меняться динамически: разные статусы, разные состояния документа. Убедитесь, что для каждого варианта имя формируется корректно и соответствующий объект существует в коллекции.
Как проверить результат
Возвращается объект типа «Картинка», ошибок нет
Ошибка «Поле объекта не обнаружено» — имени нет в библиотеке
Значок виден рядом с надписью или вместо неё
Кнопка пустая — проверить свойство «Отображение» и загрузку файла
Фон кнопки просвечивает сквозь картинку
Белый или чёрный прямоугольник — формат без альфа-канала
После обновления картинка доступна в режиме предприятия
Изменения видны только в конфигураторе — база не обновлена
Частые вопросы
Можно ли создать общую картинку программно, без конфигуратора?
Нет. Общие картинки — это объекты метаданных, они создаются и изменяются только в конфигураторе или при загрузке конфигурации из файлов. Если изображения должны добавляться в режиме предприятия, используйте реквизиты с хранилищем значений или механизм присоединённых файлов.
Чем общая картинка отличается от стандартной библиотеки платформы?
Стандартные картинки встроены в платформу и доступны всегда, но их набор фиксирован и изменить их нельзя. Общие картинки создаёт разработчик под задачи своей конфигурации: любые файлы, любые имена, полный контроль над содержимым.
Почему картинка видна в конфигураторе, но не отображается у пользователей?
Чаще всего конфигурация базы данных не обновлена после изменения: объект существует в конфигураторе, но в рабочей базе его ещё нет. Выполните «Обновить конфигурацию базы данных». Если обновление выполнено, проверьте свойство «Отображение» элемента формы и корректность имени в коде.
Какой размер и формат выбрать для значков кнопок?
Стандартная практика — PNG с прозрачным фоном, размер в пределах 16×16 или 24×24 пикселя для обычных кнопок. Большие изображения не дают выигрыша в качестве на панелях команд, но увеличивают конфигурацию. Для экранов с высокой плотностью пикселей можно добавить в объект вариант большего размера.
Как найти все места, где используется конкретная картинка?
В конфигураторе выполните глобальный поиск (Правка → Найти) по имени картинки по всей конфигурации, включая модули и формы. Для объектов метаданных также доступен пункт «Поиск ссылок на объект» в контекстном меню — он покажет ссылки из свойств других объектов.
Можно ли хранить в общей картинке несколько размеров одного изображения?
Да, объект общей картинки поддерживает набор вариантов для разных разрешений. Платформа автоматически выбирает подходящий вариант в зависимости от масштаба интерфейса. Это избавляет от необходимости создавать отдельные объекты «Картинка16», «Картинка32» и подобные.
Что важно запомнить
Коллекция картинок создаётся в ветке «Общие → Общие картинки» конфигуратора: добавьте объект, задайте имя, загрузите PNG-файл. Обращение из кода — БиблиотекаКартинок.ИмяКартинки, в формах — свойство «Картинка». Перед переименованием или удалением всегда ищите использования по всей конфигурации, а пользовательские изображения храните не в метаданных, а в данных.