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