Своя иконка или логотип в 1С 8.3: общие картинки в Конфигураторе и их использование в коде

· 9 мин

Содержание

Картинку загружают в библиотеку картинок 1С через Конфигуратор: в дереве конфигурации откройте ветку Общие → Общие картинки, добавьте новый объект, загрузите в него файл (PNG, SVG, JPEG и другие форматы) и выполните Конфигурация → Обновить конфигурацию базы данных (F7). После этого изображение доступно в коде как БиблиотекаКартинок.ИмяКартинки и в свойствах форм, кнопок и команд.

Это механизм платформы 1С:Предприятие 8.3, поэтому порядок одинаков для Бухгалтерии, ЗУП, УТ и самописных конфигураций. Для типовой базы на поддержке удобнее добавлять картинку не в основную конфигурацию, а в расширение — так она переживёт обновления.

Как подготовить файл изображения до загрузки

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

Какой формат выбрать:

ФорматКогда братьЧто учесть
PNGиконки кнопок, команд, пиктограммы в спискахподдерживает прозрачность, лучший выбор для мелких иконок
SVGиконки, которые должны быть чёткими при любом масштабе экранаподдерживается в актуальных версиях платформы; проверьте отображение в веб-клиенте
JPEGфотографии, фоны, заставкипрозрачности нет, на мелких размерах появляются артефакты
GIFпростая анимация, старые наборы иконокпалитра 256 цветов
BMP, ICOнаследие старых конфигурацийBMP много весит, прозрачность ограничена

Размеры, на которые стоит ориентироваться:

  • 🔹 16×16 пикселей — стандарт для кнопок командной панели, команд в меню, пиктограмм в строках списка;
  • 🔹 32×32 пикселя — крупные кнопки и команды на начальной странице;
  • 🔹 больше 64 пикселей — логотипы и декорации на формах, где картинка показывается как самостоятельный элемент.

Если пользователи работают на мониторах с масштабом 125–200%, мелкий PNG 16×16 будет растянут и станет мутным. Векторный SVG этой проблемы не имеет.

Перед загрузкой проверьте ещё три вещи:

  1. Фон действительно прозрачный, а не белый. Откройте файл в графическом редакторе на тёмном фоне.
  2. Вес файла разумный. Иконка — это единицы килобайт. Фотография на 5 МБ попадёт в каждую выгрузку .cf и .dt.
  3. Имя файла не важно, а вот имя объекта в конфигурации понадобится в коде. Придумайте его заранее: латиница или кириллица без пробелов, начинается с буквы, например ЛоготипКомпании или ИконкаОтправкиЗаявки.

Как называть картинки, чтобы потом их найти

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

Простая схема, которая работает в небольших командах:

  • 🏷️ общий префикс для всех своих картинок, например Наш_ или сокращение компании, — тогда они стоят рядом в списке;
  • 🏷️ в имени — назначение, а не внешний вид: ОтправитьЗаявку, а не ЗелёнаяСтрелка;
  • 🏷️ размер в конце имени, если одна иконка есть в двух размерах: ОтправитьЗаявку16 и ОтправитьЗаявку32;
  • 🏷️ в синониме — человеческое описание, в комментарии объекта — откуда взят исходник и кто автор.

Исходные файлы иконок храните рядом с выгрузкой конфигурации в системе контроля версий или в общей папке отдела. Так их проще перерисовать и заменить.

Где в Конфигураторе находится библиотека картинок

Термин «библиотека картинок» в 1С объединяет две вещи:

  • 📚 стандартные картинки платформы — встроенный набор иконок (печать, запись, удаление, поиск и десятки других), их не нужно загружать;
  • 🖼️ общие картинки конфигурации — то, что добавил разработчик. Именно сюда попадают ваши изображения.

В коде оба набора видны через одно и то же глобальное свойство БиблиотекаКартинок. Отличаются они только тем, откуда взялись.

Чтобы попасть к общим картинкам:

  1. Запустите базу в режиме Конфигуратор.
  2. Откройте дерево: Конфигурация → Открыть конфигурацию.
  3. Разверните ветку Общие и найдите в ней Общие картинки.

Если ветка не редактируется (кнопка добавления неактивна), конфигурация стоит на поддержке без возможности изменений. Здесь два пути:

  • создать расширение и добавлять картинки в него — способ по умолчанию для типовых решений;
  • включить возможность изменения в настройках поддержки — только если вы сознательно ведёте доработанную типовую и готовы к сравнению-объединению при каждом обновлении.

Перед изменением конфигурации рабочей базы сделайте резервную копию: выгрузку информационной базы в .dt или копию каталога файловой базы. Добавление картинки — безопасная операция, но обновление конфигурации базы данных затрагивает всю базу.

Загрузка изображения в общие картинки по шагам

Вариант 1. В основную конфигурацию

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

Вариант 2. В расширение конфигурации

  1. Откройте Конфигурация → Расширения конфигурации и создайте новое расширение или откройте существующее.
  2. В дереве расширения перейдите в Общие → Общие картинки и добавьте объект так же, как в основной конфигурации.
  3. Загрузите файл, задайте имя. Префикс расширения добавляется к имени объекта, поэтому в коде обращайтесь по полному имени с префиксом.
  4. Обновите конфигурацию базы данных расширения и перезапустите сеанс пользователя.

Расширения появились в платформе 8.3.6, а набор объектов, которые в них можно добавлять, со временем рос. Если команда добавления общей картинки в расширении недоступна, обновите платформу до актуального релиза.

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

Общие картинки, макеты и символы: что выбрать для задачи

Изображение в конфигурации может жить в разных местах. От этого зависит, как его достать и обновить.

Где хранитьДля чего подходитКак получить в коде
Общая картинкаиконки команд, кнопок, логотип в интерфейсеБиблиотекаКартинок.ИмяКартинки
Стандартная картинка платформытиповые действия: печать, поиск, удалениеБиблиотекаКартинок.Печать и другие встроенные имена
Макет типа «Двоичные данные»файлы для выгрузки, шаблоны, изображения, которые нужны как файлПолучитьОбщийМакет("Имя") или ПолучитьМакет у объекта
Рисунок внутри табличного макеталоготип в печатной формечерез коллекцию Рисунки области макета
Символ шрифта в текстепростые значки внутри надписейобычная строка с символом Юникода

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

Символы Юникода (стрелки, галочки, предупреждающий знак) удобны в заголовках и надписях: они масштабируются вместе со шрифтом и не требуют объекта конфигурации. Но цвет и вид такого значка зависят от шрифта операционной системы, поэтому для фирменных иконок они не годятся.

Как вывести загруженную картинку в форме, команде и печатной форме

В свойствах без кода

  • 🖱️ Кнопка или команда формы — свойство Картинка, в окне выбора переключитесь на библиотеку и найдите свою общую картинку по имени. Чтобы на кнопке была только иконка, задайте свойство отображения «Картинка».
  • 🖼️ Декорация-картинка на управляемой форме — свойство Картинка, тот же выбор.
  • 📋 Общая команда или команда объекта — свойство Картинка в палитре свойств команды. Иконка появится везде, где команда выводится.

Из кода

Назначить картинку кнопке во время работы формы:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Элементы.КнопкаОтправить.Картинка = БиблиотекаКартинок.ИконкаОтправкиЗаявки;
КонецПроцедуры

Показать иконку внутри форматированной строки, например в надписи с подсказкой:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Подсказка = Новый ФорматированнаяСтрока(
        БиблиотекаКартинок.ЛоготипКомпании, " Заявка будет отправлена менеджеру");
КонецПроцедуры

Реквизит формы Подсказка в этом примере имеет тип ФорматированнаяСтрока и выведен на форму полем надписи.

Вывести общую картинку в поле картинки (реквизит формы строкового типа, привязанный к элементу «Поле картинки»):

&НаСервере
Процедура ПоказатьЛоготип()
    ДанныеКартинки = БиблиотекаКартинок.ЛоготипКомпании.ПолучитьДвоичныеДанные();
    АдресЛоготипа = ПоместитьВоВременноеХранилище(ДанныеКартинки, УникальныйИдентификатор);
КонецПроцедуры

В печатной форме

Чтобы логотип попал в табличный документ, вставьте в макет рисунок, задайте ему имя (например, Логотип) и в коде формирования подставьте изображение:

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Рисунки.Логотип.Картинка = БиблиотекаКартинок.ЛоготипКомпании;
ТабличныйДокумент.Вывести(ОбластьШапка);

Если изображение лежит в макете типа «Двоичные данные», сначала превратите его в картинку:

ДанныеЛоготипа = ПолучитьОбщийМакет("ЛоготипДляПечати");
ОбластьШапка.Рисунки.Логотип.Картинка = Новый Картинка(ДанныеЛоготипа);

В Бухгалтерии предприятия 3.0 логотип для счетов и других печатных форм пользователь загружает без Конфигуратора: в карточке организации есть раздел «Логотип и печать». Если задача — просто напечатать логотип на счёте, начните с этого места, дорабатывать конфигурацию не нужно.

Когда пользователь загружает картинку сам, без Конфигуратора

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

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

  • 📎 в присоединённых файлах — в типовых конфигурациях на БСП это готовый механизм «Файлы» у карточек справочников;
  • 💾 в реквизите типа ХранилищеЗначения — для собственных справочников, где картинка должна храниться прямо в элементе;
  • 🗂️ в отдельном справочнике изображений, если одну картинку используют многие объекты.

Для вывода на форму такие данные помещают во временное хранилище и показывают через поле картинки — так же, как в примере с логотипом выше.

Проблемы после загрузки и как их убрать

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

Пара приёмов, которые экономят время при сопровождении:

  • 🔁 Замена иконки без правки кода. Загрузите новый файл в ту же общую картинку — все кнопки и команды подхватят изменение, имя объекта остаётся прежним.
  • 💾 Выгрузка исходника. Через контекстное меню области картинки можно сохранить изображение в файл. Пригодится, если исходники иконок потерялись, а дизайнеру нужно сделать новую в том же стиле.
  • 🧹 Поиск неиспользуемых картинок. Перед удалением общей картинки вызовите для неё поиск ссылок на объект в контекстном меню дерева. Если ссылок нет и в коде имя не встречается (Правка → Глобальный поиск, Ctrl+Shift+F), объект можно удалить.

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

Можно ли загрузить сразу несколько картинок за один раз?
Через интерфейс Конфигуратора каждую общую картинку добавляют отдельно. Массово объекты загружают через выгрузку конфигурации в файлы XML, добавление файлов и загрузку обратно, но это задача для разработчика.
Где посмотреть все стандартные картинки платформы?
В окне выбора картинки у любого свойства «Картинка» есть список библиотеки: там видны и стандартные иконки, и общие картинки конфигурации. Имя из этого списка подставляется после БиблиотекаКартинок в коде.
Слетит ли моя картинка при обновлении типовой конфигурации?
Если она в расширении — нет, расширение обновлению не мешает. Если в основной конфигурации на поддержке, при объединении её нужно сохранить, иначе она пропадёт вместе с другими доработками.
Можно ли менять картинку кнопки в зависимости от состояния документа?
Да. В обработчике формы присваивайте свойству Картинка элемента разные общие картинки, например при смене статуса документа.
Влияет ли количество общих картинок на скорость работы?
Десятки небольших иконок на скорость не влияют. Замедлить открытие форм и обновление может большой объём тяжёлых изображений, поэтому фотографии лучше хранить как данные.