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