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

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

Как обратиться к общей картинке в 1С

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

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

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

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

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

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

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

Обращение к картинке из встроенной библиотеки платформы

Стандартные иконки (сохранить, провести, удалить, печать и другие) получают обращением к свойству объекта БиблиотекаКартинок. Платформа сама подставит подходящий вариант под текущий масштаб интерфейса, если такие варианты предусмотрены.

// Пример: назначить стандартную картинку кнопке формы

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

// Пример: получить картинку в переменную

КартинкаОповещения = БиблиотекаКартинок.Информация;

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

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

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

// Обращение по имени через коллекцию

Элементы.ДекорацияЛоготип.Картинка = ОбщиеКартинки.ЛоготипКомпании;

// Обращение через функцию со строковым именем

ИмяКартинки = "Статус_Оплачен";

КартинкаСтатуса = ПолучитьОбщуюКартинку(ИмяКартинки);

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

bsl
Картинка = ОбщиеКартинки.ЛоготипКомпании;
Если Картинка.Вид = ВидКартинки.Пустая Тогда
    Сообщить("Общая картинка не найдена");
КонецЕсли;

Назначение картинки элементу формы без кода

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

Для кнопок командной панели дополнительно проверьте свойство «Отображение»: если там стоит значение «Надпись», картинка не будет видна, даже когда она корректно назначена. Установите «Картинка» или «НадписьКартинка» в зависимости от нужного вида кнопки.

Картинка для колонки табличной части

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

Порядок действий
  1. 1
    Добавьте картинку в ветку «Общие» → «Общие картинки» и задайте ей понятное имя
  2. 2
    Откройте форму, выделите нужный элемент и в палитре свойств найдите «Картинка»
  3. 3
    Нажмите кнопку выбора и укажите источник: библиотека платформы или общие картинки
  4. 4
    Для кнопки проверьте свойство «Отображение» — выберите «Картинка» или «НадписьКартинка»
  5. 5
    Запустите режим предприятия и убедитесь, что картинка отображается корректно

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

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

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

Типичные ошибки
01
Опечатка в имени общей картинки: исключения нет, но элемент формы остаётся без изображения
02
Использование картинки из библиотеки новой платформы на старой версии — картинка не отображается
03
Свойство «Отображение» кнопки установлено в «Надпись», поэтому назначенная картинка не видна
04
Встраивание картинки из файла прямо в форму вместо общей картинки — форма раздувается, а замена изображения требует правки каждой формы
05
Обращение к ОбщиеКартинки в клиентском контексте тонкого клиента без учёта серверных вызовов при динамической загрузке

Ограничения и рекомендации по использованию

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

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

Маршрут решения

Как выбрать источник картинки

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

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

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

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

Почему обращение к общей картинке не вызывает ошибку, но изображение не показывается?

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

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

Да, для этого служит функция ПолучитьОбщуюКартинку("ИмяКартинки"). Она удобна, когда имя формируется динамически, например по статусу документа. Обращение через ОбщиеКартинки.Имя требует литерального имени в коде.

Работают ли общие картинки в веб-клиенте и на мобильной платформе?

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

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

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

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

Да. Получите объект картинки через ОбщиеКартинки.Имя или ПолучитьОбщуюКартинку и вызовите метод Записать с указанием пути к файлу. Это удобно для экспорта изображений во внешние системы или формирования вложений.

Итог

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

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