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