Пиктограммы в 1С 8.3: добавление иконок вручную и через код
Содержание
Пиктограмма в 1С — это картинка (иконка), которую платформа показывает рядом с командой, у подсистемы, на кнопке формы или в колонке списка. Чтобы создать свою пиктограмму, её загружают в ветку Общие → Общие картинки Конфигуратора, а затем назначают нужному объекту: либо мышью в свойстве Картинка, либо программно через объект БиблиотекаКартинок.
Платформа 8.3 с интерфейсом «Такси» сама масштабирует иконки и подбирает вариант под тёмную тему — но только если файл подготовлен правильно. Ниже — как добавить картинку обоими способами, какие форматы и размеры подходят, где взять готовые наборы и как не испортить вид конфигурации при обновлении.
Где хранятся иконки и к чему их можно привязать
Все собственные картинки конфигурации лежат в одном месте — ветка Общие → Общие картинки в дереве Конфигуратора. Каждая загруженная картинка становится отдельным объектом метаданных с именем, по которому к ней потом обращаются.
Привязать пиктограмму можно к большинству элементов интерфейса:
- 🔹 к команде (
Картинкав свойствах команды) — иконка появится в меню и на кнопке командной панели; - 🔹 к подсистеме — картинка рисуется в панели разделов;
- 🔹 к реквизиту формы типа
Картинкаи к декорации-картинке; - 🔹 к колонке динамического списка или таблицы значений;
- 🔹 к элементам дерева значений и строкам таблицы — через индекс картинки.
Отдельной иконки «у документа» или «у справочника» в списке объектов конфигурации платформа не рисует — там картинка задаётся на уровне команды открытия или формы списка, а не самого объекта.
Как добавить свою иконку через «Общие картинки»
Ручная загрузка — основной способ. Порядок действий в Конфигураторе:
- Откройте конфигурацию на редактирование (нужен монопольный доступ не обязателен — хватает обычного режима редактирования, если вы работаете в своём расширении или главной конфигурации).
- В дереве найдите ветку
Общие→Общие картинки, нажмите на ней правой кнопкой →Добавить. - В открывшейся карточке задайте
Имялатиницей без пробелов — напримерПечатьДокумента. Под этим именем картинка будет видна в коде. - Нажмите кнопку выбора изображения и укажите файл
.pngна диске. - Сохраните конфигурацию и обновите конфигурацию базы данных (
F7илиКонфигурация→Обновить конфигурацию базы данных).
После этого откройте нужную команду, найдите свойство Картинка, нажмите кнопку выбора — в открывшемся окне ваша картинка будет в разделе общих картинок конфигурации рядом со стандартной библиотекой платформы.
Если после назначения иконка не появилась в режиме 1С:Предприятие — почти всегда забыли обновить конфигурацию базы данных. Сохранение файла конфигурации (Ctrl+S) не то же самое, что обновление базы.
Одна общая картинка может хранить несколько изображений — для разных масштабов экрана и для светлой/тёмной темы. Это задаётся прямо в карточке картинки: вы добавляете вариант и указываете, для какого режима он предназначен. Платформа сама выберет подходящий файл при отрисовке.
Если менять основную конфигурацию нельзя (типовая на поддержке), добавьте картинку в расширение конфигурации . Порядок тот же: в дереве расширения создаёте общую картинку, загружаете файл, затем в расширении же добавляете команду или переопределяете форму, которой эту иконку назначаете. Расширение подключается без снятия конфигурации с поддержки, и обновления типовой его не затирают.
Монопольный доступ к базе для добавления картинки не нужен — он требуется только при обновлении структуры данных, загрузке .dt или тестировании. Добавление картинки структуру не меняет, поэтому обновление пройдёт в обычном режиме.
Как задать картинку программно
Когда иконка должна меняться по условию (статус документа, результат проверки), её назначают из кода. Доступ к общим картинкам даёт глобальный объект БиблиотекаКартинок:
// Назначить декорации-картинке на форме готовую общую картинку
Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.ОтметкаВыполнено;
Имя после точки — это Имя объекта из ветки «Общие картинки». Опечатка в имени вызовет ошибку при компиляции модуля, поэтому имена удобно вставлять через контекстную подсказку (Ctrl+Пробел).
Картинку можно собрать и на лету — из двоичных данных или из файла:
// Из двоичных данных (например, из реквизита типа ХранилищеЗначения)
Картинка = Новый Картинка(ДвоичныеДанные);
// Из файла на диске (с учётом прав и места выполнения кода)
Картинка = Новый Картинка("C:\icons\logo.png");
Для строк динамического списка и таблиц картинку подставляют через условное оформление: в настройке списка добавляют элемент оформления, в поле оформления выбирают картинку, а в отборе задают условие (например, «Проведён = Ложь» → серая иконка). Так строки получают разные значки без перебора в цикле.
Если нужно показать индикатор прямо в колонке, добавьте в таблицу колонку типа Картинка и заполняйте её индексом из заранее заданного набора. Это быстрее, чем назначать картинку каждой строке по отдельности.
Важно, где выполняется код. Конструктор Новый Картинка("путь") на сервере читает файловую систему сервера, а на клиенте — машину пользователя. В веб-клиенте прямого доступа к файлу по пути нет: там картинку получают из помещённого на сервер файла или из двоичных данных.
Когда пользователь загружает собственную картинку (логотип в печатную форму, фото в карточку), её хранят в реквизите типа ХранилищеЗначения: при сохранении кладут туда двоичные данные, при открытии формы восстанавливают картинку из хранилища и назначают элементу. Так изображение остаётся в базе и не зависит от путей на диске.
Размеры, форматы и стиль: что подойдёт
Платформа умеет масштабировать картинки, но лучший результат даёт файл, подготовленный под нужный размер. Ориентиры:
| Где используется | Рекомендуемый размер | Формат |
|---|---|---|
| Команда, кнопка командной панели | 16×16 px | PNG с прозрачностью |
| Подсистема, панель разделов | 32×32 px | PNG с прозрачностью |
| Декорация, крупный элемент формы | 32×32 или больше | PNG, при необходимости SVG |
| Экраны высокой плотности (hiDPI) | удвоенный размер (32×32 для «16-ки») | PNG |
Почему именно PNG: формат поддерживает альфа-канал (полупрозрачность), поэтому края иконки будут мягкими, а фон — прозрачным. JPEG прозрачность не хранит — вокруг значка появится белый прямоугольник.
По стилю держитесь интерфейса «Такси»: плоские однотонные иконки без объёмных теней и градиентов, с заметным контуром. Пёстрая реалистичная картинка рядом с системными значками платформы выглядит чужеродно и хуже читается в мелком размере.
Форматы GIF и BMP платформа принимает, но пользы от них нет: GIF ограничен палитрой и даёт грубые края, BMP не хранит прозрачность и весит много. ICO имеет смысл только для значка приложения. Для всего остального — PNG или вектор.
Учитывайте масштаб интерфейса: пользователь может увеличить его в настройках приложения до 125–150 %. Иконка 16×16 при этом растянется, и если исходник был ровно 16 пикселей, края замылятся. Поэтому для ключевых команд разумно сразу дать удвоенный вариант или вектор.
Где взять готовые иконки
Не каждую иконку нужно рисовать. Порядок поиска — от простого к сложному:
- 🔹 Стандартная библиотека платформы. При выборе картинки для команды открывается окно, где кроме общих картинок конфигурации доступны встроенные значки платформы (печать, сохранение, обмен, фильтр и десятки других). Это самый безопасный вариант: такие иконки уже в фирменном стиле и масштабируются корректно.
- 🔹 Свободные наборы иконок. В сети есть библиотеки плоских PNG/SVG-иконок под свободными лицензиями. Проверяйте условия использования: часть наборов требует указания автора, часть запрещает коммерческое применение.
- 🔹 Собственная отрисовка. Для фирменного набора проще сделать иконки в векторном редакторе и выгрузить в PNG нужных размеров (16, 32 и удвоенные под hiDPI).
Если под одну команду нужна иконка «как в платформе», но её нет в стандартной библиотеке, подберите близкую по смыслу из встроенного набора — это надёжнее, чем вставлять яркую картинку из интернета.
Полезно собрать все иконки проекта в едином размерном ряду (16 и 32 пикселя, при необходимости удвоенные) и в одной цветовой гамме. Тогда панель команд выглядит целостно, а не как набор случайных значков. Исходники (векторные файлы) лучше хранить в репозитории рядом с конфигурацией — так их легко перегенерировать под новый размер или тему.
Динамические иконки, тёмная тема и векторный формат
Три приёма, которые отличают аккуратную конфигурацию от сделанной «на скорую руку».
Смена иконки по состоянию. Храните две-три общих картинки (например, «ожидание», «успех», «ошибка») и переключайте их в коде при пересчёте состояния. Так пользователь видит статус, не открывая документ.
Поддержка тёмной темы. Тёмно-серая иконка на тёмном фоне исчезает. Чтобы этого не было, в карточке общей картинки добавьте отдельный вариант для тёмного оформления (светлый контур). Платформа подставит его автоматически, когда пользователь включит тёмную тему.
Векторный формат. Современные версии платформы 8.3 позволяют хранить в общей картинке векторное изображение (SVG). Плюс вектора — он не теряет резкость при любом масштабе и на экранах высокой плотности, поэтому не нужно готовить отдельные растровые версии под каждый размер. Если ваша минимально поддерживаемая версия платформы вектор не умеет — оставайтесь на PNG в нескольких размерах.
Иконки в мобильном приложении 1С
Мобильная платформа использует те же общие картинки, что и десктоп, но экраны телефонов и планшетов имеют высокую плотность точек. Поэтому:
- готовьте картинки с запасом по разрешению — удвоенный и утроенный размер, иначе иконка будет размытой;
- используйте вариант картинки для разных масштабов или векторный формат — это снимает проблему резкости на всех устройствах сразу;
- не перегружайте интерфейс мелкими деталями: на маленьком экране читается только простая форма;
- проверяйте вид и в светлой, и в тёмной теме — на телефоне её переключают чаще.
Отдельный значок самого мобильного приложения (который виден на рабочем столе устройства) задаётся не в «Общих картинках», а в настройках сборки мобильного приложения. Там для него нужен набор размеров под требования магазина приложений, и одним файлом 16×16 здесь не обойтись — потребуется крупный исходник, из которого собираются все варианты.
Проверяйте иконки на реальном устройстве, а не только в эмуляторе: плотность экрана телефона и планшета отличается, и то, что чётко на компьютере, на телефоне может оказаться мелким или смазанным.
Как проверить иконки перед релизом
Перед тем как отдавать конфигурацию в работу, прогоните иконки по короткому списку. Это дешевле, чем ловить жалобы «кнопка без значка» от пользователей.
Ниже — частые сбои и что с ними делать. Это не повтор шагов выше, а отдельная диагностика по симптому.
F7) и перезапустите приложение.Ctrl+Пробел.Частые вопросы
Можно ли добавить иконку без прав на изменение конфигурации?
В каком формате хранить иконку — PNG или SVG?
Сколько весит общая картинка и влияет ли это на размер базы?
Как сделать так, чтобы иконка менялась в зависимости от статуса записи?
Картинка из кода через БиблиотекаКартинок.