Замена иконок в 1С: от ярлыка на рабочем столе до картинок конфигурации

· 9 мин

Содержание

«Иконка в 1С» — это три разные вещи, и способ замены у каждой свой. Значок ярлыка на рабочем столе меняется в свойствах ярлыка Windows. Картинки подсистем, команд и кнопок в интерфейсе «Такси» меняются в конфигураторе, в свойстве Картинка. Значки внутри самой платформы (файлы 1cv8.exe, 1cv8c.exe) трогать не нужно: при обновлении платформы всё вернётся.

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

Какую иконку вы хотите заменить

Сначала определите объект. От этого зависит, где вообще искать настройку.

Что меняемГде живёт картинкаЧем меняемРиск
Значок ярлыка запускаЯрлык WindowsСвойства ярлыкаМинимальный
Картинка подсистемы в панели разделовСвойство Картинка подсистемыКонфигураторСредний: нужна правка конфигурации
Картинка команды или кнопки формыСвойство Картинка командыКонфигуратор или кодСредний
Картинка в общем хранилищеВетка «Общие картинки»КонфигураторСредний
Картинка в типовой конфигурации на поддержкеТо же, но в расширенииРасширение конфигурацииНизкий: типовая остаётся нетронутой
Что именно вы хотите изменить?

Значок ярлыка на рабочем столе

Самый простой случай. Нужен, когда на компьютере несколько баз и ярлыки неотличимы: рабочая, тестовая, копия за прошлый год.

  1. Щёлкните ярлык базы правой кнопкой и выберите Свойства.
  2. Откройте вкладку Ярлык и нажмите Сменить значок.
  3. Укажите файл с расширением .ico или выберите значок из набора, который предлагает Windows.
  4. Подтвердите ОК в обоих окнах.

Файл .ico проще всего получить из PNG любым конвертером. Для чёткого значка в нём должны лежать несколько размеров: Windows сама выберет подходящий для рабочего стола и для панели задач.

Храните свои значки не на рабочем столе, а в постоянной папке, например C:\Icons\1C. Если файл удалить, ярлык покажет стандартный значок.

Менять значок в самом 1cv8.exe не стоит. Это ресурс исполняемого файла платформы: следующая установка или обновление платформы перезапишет файл, а изменённый файл может перестать пройти проверки, если у вас стоит контроль целостности. Ярлык делает то же самое безопасно.

Общие картинки: заменяем в конфигураторе

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

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

Порядок действий:

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

Какие файлы брать. Растровые форматы (PNG, GIF, JPEG, BMP) платформа принимает. Лучше PNG с прозрачным фоном: на цветной панели такая картинка не рисует белый квадрат вокруг значка. Векторный SVG поддерживается в актуальных релизах 8.3. Он не мутнеет при масштабировании, но проверьте, что ваш релиз платформы его открывает.

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

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

Картинка подсистемы и команды

Общая картинка сама по себе ничего не меняет: её нужно подключить. Для этого у объекта есть свойство Картинка.

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

Команда. Команды бывают общие (ветка Общие → Общие команды) и принадлежащие объекту, например справочнику. У каждой есть свойство Картинка. Выбор такой же.

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

Что даёт какое место:

  • 🧭 Подсистема: значок в панели разделов, виден постоянно.
  • ⚡ Общая команда: значок в панели действий и в командном интерфейсе.
  • 🔘 Команда формы или объекта: значок на кнопке.

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

Программная замена из кода

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

Первый вариант: взять картинку из библиотеки. Все общие картинки доступны через БиблиотекаКартинок.

&НаКлиенте
Процедура ОбновитьИконкуСтатуса()
	Если Объект.Проведен Тогда
		Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.ИконкаГотово;
	Иначе
		Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.ИконкаЧерновик;
	КонецЕсли;
КонецПроцедуры

Имена ИконкаГотово и ИконкаЧерновик здесь условные: подставьте имена своих общих картинок. Если такой картинки в конфигурации нет, обращение вызовет ошибку при выполнении.

Второй вариант: создать картинку из двоичных данных, например из файла или реквизита справочника.

&НаСервере
Функция ПолучитьКартинкуИзДанных(ДвоичныеДанные)
	Возврат Новый Картинка(ДвоичныеДанные);
КонецФункции

Функцию вызывают с клиента, а результат присваивают свойству Картинка нужного элемента. Так делают, когда пользователь сам загружает значок или логотип.

Для декорации с логотипом организации удобнее хранить файл в справочнике и подставлять через Новый Картинка. Менять конфигурацию при каждой смене логотипа тогда не придётся.

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

Типовая конфигурация: делаем через расширение

Если у вас Бухгалтерия, ЗУП или другая типовая конфигурация на поддержке, правка подсистем и команд напрямую создаст лишние расхождения с поставщиком. Расширение решает проблему: оно лежит поверх конфигурации и не меняет её.

Расширения конфигурации появились в платформе 8.3.6, поэтому в любой современной версии 8.3 они есть.

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

В палитре свойств заимствованного объекта не все свойства доступны для изменения. Если Картинка у конкретного объекта недоступна, смените подход: создайте в расширении собственную команду или подсистему с нужной картинкой.

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

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

Файлы платформы: что менять нельзя

Иногда советуют найти значок в каталоге установки 1С и подменить файл. Для интерфейса конфигурации это не работает : картинки подсистем и команд лежат внутри самой конфигурации, в базе, а не отдельными файлами рядом с платформой. Для ресурсов платформы (значки 1cv8.exe, 1cv8c.exe, 1cv8s.exe) подмена неэффективна и вредна:

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

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

Если значок не поменялся

Большинство неудач объясняется несколькими причинами.

  • 🔄 Старый клиентский кэш. Закройте все окна 1С и запустите программу заново. Если это не помогло, очистите кэш клиента: запустите 1cv8.exe с параметром /ClearCache. Кэш клиента относится только к вашему компьютеру, на других пользователей это не влияет.
  • 💾 Не обновлена база. Конфигурацию сохранили, но не применили к базе. Выполните Конфигурация → Обновить конфигурацию базы данных.
  • 🔗 Картинка не подключена. В общей картинке файл заменён, но свойство Картинка у подсистемы или команды смотрит на другую.
  • 🖼️ Белый квадрат вокруг значка. Файл без прозрачности. Загрузите PNG с прозрачным фоном.
  • 🔍 Значок размытый. Файл слишком мал для места, где он рисуется. Возьмите картинку большего размера или SVG.
  • 🧩 Расширение не подключено. Если картинка задана в расширении, проверьте, что оно включено в базе и что база обновлена после его загрузки.
Диагностика: выберите симптом

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

Можно ли поменять значок самой программы 1С на панели задач?
Значок на панели задач берётся из ярлыка, которым вы запустили 1С. Смените значок в свойствах ярлыка, и запущенная программа покажет его после перезапуска.
Нужна ли для замены картинки в интерфейсе лицензия разработчика?
Отдельной лицензии не требуется, но нужны права на изменение конфигурации. Типовые конфигурации на поддержке защищены от правок, поэтому проще работать через расширение.
Какой формат картинки лучше для значка?
PNG с прозрачным фоном подходит в большинстве случаев. Для чёткого вида на разных экранах попробуйте SVG, если ваш релиз платформы его поддерживает.
Почему картинка у пользователей не поменялась, хотя конфигуратор показывает новую?
Новая версия конфигурации не применена к базе или клиент хранит старый кэш. Обновите конфигурацию базы данных, затем перезапустите 1С у пользователя.
Можно ли менять значки в облачной или клиент-серверной базе?
Да. Конфигурация хранится в базе, поэтому правка действует для всех пользователей этой базы. Для обновления может потребоваться монопольный доступ, значит, делайте это в нерабочее время.