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