Пиктограммы в 1С 8.3: добавление иконок вручную и через код

· 9 мин

Содержание

Пиктограмма в 1С — это картинка (иконка), которую платформа показывает рядом с командой, у подсистемы, на кнопке формы или в колонке списка. Чтобы создать свою пиктограмму, её загружают в ветку Общие → Общие картинки Конфигуратора, а затем назначают нужному объекту: либо мышью в свойстве Картинка, либо программно через объект БиблиотекаКартинок.

Платформа 8.3 с интерфейсом «Такси» сама масштабирует иконки и подбирает вариант под тёмную тему — но только если файл подготовлен правильно. Ниже — как добавить картинку обоими способами, какие форматы и размеры подходят, где взять готовые наборы и как не испортить вид конфигурации при обновлении.

Где хранятся иконки и к чему их можно привязать

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

Привязать пиктограмму можно к большинству элементов интерфейса:

  • 🔹 к команде (Картинка в свойствах команды) — иконка появится в меню и на кнопке командной панели;
  • 🔹 к подсистеме — картинка рисуется в панели разделов;
  • 🔹 к реквизиту формы типа Картинка и к декорации-картинке;
  • 🔹 к колонке динамического списка или таблицы значений;
  • 🔹 к элементам дерева значений и строкам таблицы — через индекс картинки.

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

Как добавить свою иконку через «Общие картинки»

Ручная загрузка — основной способ. Порядок действий в Конфигураторе:

  1. Откройте конфигурацию на редактирование (нужен монопольный доступ не обязателен — хватает обычного режима редактирования, если вы работаете в своём расширении или главной конфигурации).
  2. В дереве найдите ветку Общие → Общие картинки, нажмите на ней правой кнопкой → Добавить.
  3. В открывшейся карточке задайте Имя латиницей без пробелов — например ПечатьДокумента. Под этим именем картинка будет видна в коде.
  4. Нажмите кнопку выбора изображения и укажите файл .png на диске.
  5. Сохраните конфигурацию и обновите конфигурацию базы данных (F7 или Конфигурация → Обновить конфигурацию базы данных).

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

Если после назначения иконка не появилась в режиме 1С:Предприятие — почти всегда забыли обновить конфигурацию базы данных. Сохранение файла конфигурации (Ctrl+S) не то же самое, что обновление базы.

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

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

Монопольный доступ к базе для добавления картинки не нужен — он требуется только при обновлении структуры данных, загрузке .dt или тестировании. Добавление картинки структуру не меняет, поэтому обновление пройдёт в обычном режиме.

Как задать картинку программно

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

// Назначить декорации-картинке на форме готовую общую картинку
Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.ОтметкаВыполнено;

Имя после точки — это Имя объекта из ветки «Общие картинки». Опечатка в имени вызовет ошибку при компиляции модуля, поэтому имена удобно вставлять через контекстную подсказку (Ctrl+Пробел).

Картинку можно собрать и на лету — из двоичных данных или из файла:

// Из двоичных данных (например, из реквизита типа ХранилищеЗначения)
Картинка = Новый Картинка(ДвоичныеДанные);

// Из файла на диске (с учётом прав и места выполнения кода)
Картинка = Новый Картинка("C:\icons\logo.png");

Для строк динамического списка и таблиц картинку подставляют через условное оформление: в настройке списка добавляют элемент оформления, в поле оформления выбирают картинку, а в отборе задают условие (например, «Проведён = Ложь» → серая иконка). Так строки получают разные значки без перебора в цикле.

Если нужно показать индикатор прямо в колонке, добавьте в таблицу колонку типа Картинка и заполняйте её индексом из заранее заданного набора. Это быстрее, чем назначать картинку каждой строке по отдельности.

Важно, где выполняется код. Конструктор Новый Картинка("путь") на сервере читает файловую систему сервера, а на клиенте — машину пользователя. В веб-клиенте прямого доступа к файлу по пути нет: там картинку получают из помещённого на сервер файла или из двоичных данных.

Когда пользователь загружает собственную картинку (логотип в печатную форму, фото в карточку), её хранят в реквизите типа ХранилищеЗначения: при сохранении кладут туда двоичные данные, при открытии формы восстанавливают картинку из хранилища и назначают элементу. Так изображение остаётся в базе и не зависит от путей на диске.

Размеры, форматы и стиль: что подойдёт

Платформа умеет масштабировать картинки, но лучший результат даёт файл, подготовленный под нужный размер. Ориентиры:

Где используетсяРекомендуемый размерФормат
Команда, кнопка командной панели16×16 pxPNG с прозрачностью
Подсистема, панель разделов32×32 pxPNG с прозрачностью
Декорация, крупный элемент формы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 здесь не обойтись — потребуется крупный исходник, из которого собираются все варианты.

Проверяйте иконки на реальном устройстве, а не только в эмуляторе: плотность экрана телефона и планшета отличается, и то, что чётко на компьютере, на телефоне может оказаться мелким или смазанным.

Как проверить иконки перед релизом

Перед тем как отдавать конфигурацию в работу, прогоните иконки по короткому списку. Это дешевле, чем ловить жалобы «кнопка без значка» от пользователей.

Проверка пиктограмм перед публикацией
Выполнено: 0 / 6

Ниже — частые сбои и что с ними делать. Это не повтор шагов выше, а отдельная диагностика по симптому.

Диагностика: выберите симптом

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

Можно ли добавить иконку без прав на изменение конфигурации?
Нет. Общие картинки — часть конфигурации, их добавляют в Конфигураторе. Если нельзя менять основную конфигурацию, создайте расширение и добавьте картинку в него.
В каком формате хранить иконку — PNG или SVG?
PNG подходит всегда и работает на любых версиях платформы. SVG удобнее для масштабирования и hiDPI-экранов, но его поддерживают только современные версии платформы 8.3 — ориентируйтесь на минимальную версию, с которой работают пользователи.
Сколько весит общая картинка и влияет ли это на размер базы?
Картинки хранятся в конфигурации, а не в данных, поэтому на объём базы данных почти не влияют. Но десятки больших файлов раздувают сам файл конфигурации и замедляют её открытие — держите иконки небольшими.
Как сделать так, чтобы иконка менялась в зависимости от статуса записи?
Для строк списка используйте условное оформление с отбором по состоянию. Для отдельного элемента формы меняйте свойство Картинка из кода через БиблиотекаКартинок.
Почему моя картинка не выбирается при назначении команде?
Проверьте, что картинка создана именно в ветке «Общие картинки», сохранена и конфигурация обновлена. Картинки из других мест (реквизиты, макеты) в этом окне выбора не показываются.