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

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

Как загрузить картинку в библиотеку картинок 1С

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

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

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

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

Что такое библиотека картинок и где она находится

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

Такое хранение даёт два практических преимущества. Во-первых, изображения переносятся вместе с конфигурацией при обновлении, выгрузке в файлы .cf и .dt, — не нужно отдельно копировать графику на компьютеры пользователей. Во-вторых, доступ к картинкам контролируется стандартными механизмами прав на объекты метаданных.

Как добавить картинку через конфигуратор: пошагово

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

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

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

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

Требования к файлам: форматы, размеры, прозрачность

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

Строгих ограничений по размеру файла платформа не навязывает, но разумно держать иконки компактными: десятки килобайт, а не мегабайты. Крупные изображения увеличивают размер конфигурации и замедляют выгрузку-загрузку. Для пиктограмм команд обычно достаточно размера 16×16 или 32×32 пикселя.

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

Как обратиться к картинке из встроенного языка

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

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

bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.МояКартинка;
КонецПроцедуры

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

Альтернативы библиотеке: макеты и временное хранилище

Библиотека картинок — не единственный способ работы с изображениями. Если картинка нужна только внутри одного объекта (например, логотип в печатной форме конкретного документа), её можно разместить в макете этого объекта как двоичные данные и получить в коде методом ПолучитьМакет.

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

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

Общие картинки

Иконки интерфейса, доступные всей конфигурации. Требуют доработки конфигурации и обновления базы

Макет с двоичными данными

Изображение нужно только одному объекту, например логотип в печатной форме

Хранилище значения / присоединённые файлы

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

Проверка результата и типичные ошибки

После загрузки проверьте результат в двух местах: в конфигураторе (картинка отображается в редакторе и в списке выбора у команд) и в режиме Предприятия (изображение реально видно в интерфейсе у пользователя). Расхождение между этими проверками указывает на конкретный класс проблемы.

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

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

Картинка в редакторе конфигуратора
Норма

Изображение отображается в окне предпросмотра

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

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

Список выбора картинки у команды
Норма

Картинка есть в общем списке после обновления конфигурации БД

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

Картинки нет — конфигурация базы данных не обновлена

Отображение в режиме Предприятия
Норма

Иконка видна на кнопке или в форме

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

Пусто — проверьте имя в коде и права на объект метаданных

Типичные ошибки
01
Загрузили картинку, но не обновили конфигурацию базы данных — картинка не видна в режиме Предприятия
02
Опечатка в имени при обращении БиблиотекаКартинок.Имя — ошибка компиляции или пустое изображение
03
Использование библиотеки картинок для пользовательских файлов — конфигурация разрастается, обновления замедляются
04
Слишком большие файлы иконок — увеличивается размер конфигурации и время выгрузки
05
Имя картинки с пробелами или кириллицей — затруднено обращение из кода

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

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

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

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

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

Оптимален PNG с прозрачным фоном: он корректно отображается на любой цветовой схеме интерфейса и хорошо сжимается. JPEG для иконок не подходит, так как не поддерживает прозрачность.

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

Чаще всего не обновлена конфигурация базы данных (нужно нажать F7 в конфигураторе). Реже причина в правах на объект метаданных или в том, что пользователь работает в копии базы со старой конфигурацией.

Как использовать стандартные картинки платформы?

Они доступны через то же свойство БиблиотекаКартинок по имени стандартной картинки, например БиблиотекаКартинок.Сохранить. Полный список виден в палитре свойств при выборе картинки для команды или кнопки — стандартные изображения отображаются в отдельной вкладке.

Можно ли добавить картинку через расширение конфигурации?

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

Увеличит ли большая картинка размер базы данных?

Да, изображение хранится внутри конфигурации и попадает в каждую выгрузку .dt и .cf. Несколько крупных файлов заметно увеличат размер выгрузок, поэтому иконки стоит предварительно сжимать и не хранить в библиотеке фотографии.

Итог

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

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