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

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

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

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

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

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

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

Где в 1С хранятся коллекции картинок

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

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

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

Создание общей картинки в конфигураторе

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

В палитре свойств новой картинки найдите свойство «Картинка» и нажмите кнопку выбора. Откроется редактор картинок: нажмите «Загрузить из файла» и укажите подготовленный файл. Платформа корректно работает с PNG (в том числе с прозрачностью), BMP, а также с наборами картинок. Для интерфейсных иконок предпочтителен PNG с прозрачным фоном.

После загрузки сохраните конфигурацию (Ctrl+S) и обновите конфигурацию базы данных (F7), если конфигурация находится на поддержке с изменениями. Без обновления новая картинка не появится в режиме предприятия и в диалогах выбора.

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

Выбор картинки из стандартной библиотеки

Если собственной иконки нет, используйте библиотеку платформы. В свойстве «Картинка» кнопки или команды нажмите кнопку выбора и перейдите на вкладку «Из библиотеки картинок» (в некоторых версиях — «Стандартная картинка»). Откроется список пиктограмм, сгруппированных по смыслу: действия с документами, навигация, состояния.

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

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

Программное обращение к коллекции картинок

Во встроенном языке доступ к коллекциям реализован через два механизма. Глобальное свойство БиблиотекаКартинок возвращает стандартные картинки платформы. Функция БиблиотекаКартинок не покрывает общие картинки конфигурации — для них используется метод ПолучитьОбщуюКартинку() либо обращение через менеджер картинок.

Типовой пример — присвоение картинки элементу формы или области табличного документа. Для табличного документа картинку можно получить из общего макета методом ПолучитьОбщийМакет("Логотип"), если макет создан с типом «Графическая схема» или двоичными данными изображения, а затем вставить в рисунок области.

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

Элементы.КнопкаСохранить.Картинка = БиблиотекаКартинок.СохранитьФайл;

// Картинка из общего макета для табличного документа

Рисунок = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);

Рисунок.Картинка = ПолучитьОбщийМакет("ЛоготипКомпании");

Рисунок.Разместить(ТабДок.Область("R1C1"));

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

Картинки в макетах и печатных формах

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

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

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

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

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

Подходят для иконок кнопок и команд. Ограничение: изменение требует обновления конфигурации базы данных.

Библиотека платформы

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

Общие макеты

Подходят для печатных форм и программного вывода. Ограничение: доступ только из кода.

Реквизиты базы (ХранилищеЗначения)

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

Типичные ошибки и их устранение

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

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

Третья группа проблем — визуальные: иконка с белым фоном вместо прозрачного «квадратит» на серой командной панели, крупное изображение обрезается в кнопке. Готовьте PNG с альфа-каналом и разумными размерами (для кнопок обычно достаточно 16×16 или 32×32 пикселя), проверяйте отображение на реальной форме, а не только в редакторе картинок.

Типичные ошибки
01
Картинка добавлена, но конфигурация базы данных не обновлена — в режиме предприятия изображение отсутствует
02
Обращение к общей картинке через БиблиотекаКартинок — свойство возвращает только стандартные пиктограммы платформы
03
JPG без прозрачности вместо PNG — на командной панели появляется белый квадрат вокруг иконки
04
Хранение больших фотографий в общих картинках — размер конфигурации растёт, обновление замедляется; фото данных нужно хранить в реквизитах базы

Проверка результата

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

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

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

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

Кнопка на форме в режиме предприятия
Норма

Иконка видна, фон прозрачный, размер соответствует кнопке

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

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

Печатная форма с логотипом
Норма

Логотип выводится в заданной области без искажений

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

Пустая область или ошибка при вызове ПолучитьОбщийМакет

Проверка конфигурации
Норма

Нет сообщений о ссылках на несуществующие картинки

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

Ошибки вида «объект не найден» на удалённые картинки

Часто задаваемые вопросы

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

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

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

PNG с прозрачным фоном — оптимальный выбор для кнопок и командной панели. JPG не поддерживает прозрачность и даёт видимый фон на серых панелях. Для печатных форм допустимы BMP и PNG; важнее следить за разрешением, чтобы логотип не выглядел размытым при печати.

Как вывести фото товара из базы на форму элемента справочника?

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

Почему картинка не отображается на кнопке в группе «Важное» или подменю?

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

Можно ли добавить свои картинки в стандартную библиотеку платформы?

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

Увеличивают ли картинки размер базы данных?

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

Итог

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

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