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

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

Как установить картинку на кнопку в 1С

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

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

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

Что понадобится перед началом работы

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

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

Установка картинки через конфигуратор

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

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

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

Порядок действий в конфигураторе
  1. 1
    Откройте форму и выделите нужную кнопку
  2. 2
    Откройте палитру свойств (Alt+Enter)
  3. 3
    В свойстве «Картинка» выберите стандартную или общую картинку
  4. 4
    Установите свойство «Отображение» в значение «Картинка» или «НадписьКартинка»
  5. 5
    Обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия

Программная установка картинки в коде

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

Элементы.КнопкаОтправить.Картинка = БиблиотекаКартинок.ОтправитьЭлектронноеПисьмо;

Элементы.КнопкаОтправить.Отображение = ОтображениеКнопки.НадписьКартинка;

Обычно такой код размещают в обработчике «ПриСозданииНаСервере» для начальной установки или в обработчиках, реагирующих на изменение данных. В обычных формах синтаксис аналогичен, но обращение идёт через ЭлементыФормы.

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

Картинки для команд и командных панелей

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

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

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

Для собственных пиктограмм подходят файлы PNG с прозрачным фоном небольшого размера — как правило, 16×16 пикселей для командных панелей. Крупные изображения платформа сожмёт или обрежет, что испортит внешний вид. Чтобы добавить картинку, в дереве конфигурации раскройте ветку «Общие» → «Общие картинки», вызовите контекстное меню и выберите «Добавить», затем загрузите файл.

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

Перед добавлением собственной картинки проверьте библиотеку стандартных: в ней несколько сотен пиктограмм, и нужная часто уже есть. Это экономит время и сохраняет привычный для пользователей стиль.
ПЗ
Практическое замечание

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

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

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

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

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

Внешний вид кнопки в режиме предприятия
Норма

Пиктограмма видна, читаема, не перекрывает текст

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

Картинки нет, она обрезана или растянута

Недоступное состояние кнопки
Норма

Кнопка и картинка отображаются приглушённо

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

Кнопка выглядит активной, но не нажимается

Поведение при изменении данных
Норма

Картинка меняется согласно логике программного назначения

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

Картинка остаётся прежней или возникает ошибка

Ограничения и безопасные границы доработки

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

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

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

Почему картинка задана, но на кнопке не отображается?

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

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

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

Можно ли загрузить картинку из файла напрямую в коде?

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

Какой размер картинки оптимален для кнопки?

Для командных панелей стандартно используются пиктограммы около 16×16 пикселей в формате PNG с прозрачностью. Большие изображения платформа уменьшит или обрежет, поэтому готовьте файл сразу в нужном размере.

Как изменить картинку кнопки в зависимости от состояния документа?

Добавьте оба варианта в общие картинки, затем в обработчике, реагирующем на изменение данных (например, после записи), присваивайте нужную картинку: Элементы.Кнопка.Картинка = БиблиотекаКартинок.Имя или ОбщиеКартинки.Имя. Не вызывайте смену в часто срабатывающих обработчиках ожидания.

Работает ли этот способ в обычных формах?

Да, принцип тот же: у кнопки есть свойства «Картинка» и «Отображение», а в коде обращение идёт через ЭлементыФормы вместо Элементы. Различия касаются только синтаксиса доступа к элементам и модели выполнения кода.

Итог

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

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