Замена иконок в 1С: от ярлыка на рабочем столе до картинок конфигурации
Содержание
«Иконка в 1С» — это три разные вещи, и способ замены у каждой свой. Значок ярлыка на рабочем столе меняется в свойствах ярлыка Windows. Картинки подсистем, команд и кнопок в интерфейсе «Такси» меняются в конфигураторе, в свойстве Картинка. Значки внутри самой платформы (файлы 1cv8.exe, 1cv8c.exe) трогать не нужно: при обновлении платформы всё вернётся.
Если вы хотите заменить картинку у пункта меню или кнопки, вам нужен конфигуратор и право менять конфигурацию. Если нужно просто отличать базы на рабочем столе, хватит ярлыка. Ниже каждый путь разобран отдельно, от безопасного к тому, что требует вмешательства в конфигурацию. Речь о платформе 8.3 с интерфейсом «Такси»; названия 8.2 здесь не используются.
Какую иконку вы хотите заменить
Сначала определите объект. От этого зависит, где вообще искать настройку.
| Что меняем | Где живёт картинка | Чем меняем | Риск |
|---|---|---|---|
| Значок ярлыка запуска | Ярлык Windows | Свойства ярлыка | Минимальный |
| Картинка подсистемы в панели разделов | Свойство Картинка подсистемы | Конфигуратор | Средний: нужна правка конфигурации |
| Картинка команды или кнопки формы | Свойство Картинка команды | Конфигуратор или код | Средний |
| Картинка в общем хранилище | Ветка «Общие картинки» | Конфигуратор | Средний |
| Картинка в типовой конфигурации на поддержке | То же, но в расширении | Расширение конфигурации | Низкий: типовая остаётся нетронутой |
Картинка у подсистемы или команды.Картинка из кода: берём картинку из библиотеки или из двоичных данных.Значок ярлыка на рабочем столе
Самый простой случай. Нужен, когда на компьютере несколько баз и ярлыки неотличимы: рабочая, тестовая, копия за прошлый год.
- Щёлкните ярлык базы правой кнопкой и выберите
Свойства. - Откройте вкладку
Ярлыки нажмитеСменить значок. - Укажите файл с расширением
.icoили выберите значок из набора, который предлагает Windows. - Подтвердите
ОКв обоих окнах.
Файл .ico проще всего получить из PNG любым конвертером. Для чёткого значка в нём должны лежать несколько размеров: Windows сама выберет подходящий для рабочего стола и для панели задач.
Храните свои значки не на рабочем столе, а в постоянной папке, например C:\Icons\1C. Если файл удалить, ярлык покажет стандартный значок.
Менять значок в самом 1cv8.exe не стоит. Это ресурс исполняемого файла платформы: следующая установка или обновление платформы
перезапишет файл, а изменённый файл может перестать пройти проверки, если у вас стоит контроль целостности. Ярлык делает то же самое безопасно.
Общие картинки: заменяем в конфигураторе
Все картинки, которыми пользуется конфигурация, удобно держать в ветке Общие → Общие картинки. Подсистемы, команды и кнопки потом ссылаются на неё. Поэтому заменив картинку один раз, вы получите её везде, где она подключена.
Прежде чем менять собственную или доработанную конфигурацию, сохраните её копию: выгрузите конфигурацию в файл .cf или убедитесь, что есть свежая копия базы.
Порядок действий:
- Откройте базу в режиме
Конфигуратор. - В дереве конфигурации раскройте
Общиеи найдитеОбщие картинки. - Если картинка уже есть, откройте её двойным щелчком. Если нет, добавьте новую кнопкой
Добавитьв контекстном меню ветки и дайте ей понятное имя без пробелов, напримерИконкаОтчетыРуководителя. - В редакторе картинки загрузите файл с диска и сохраните.
- Закройте редактор и выполните
Конфигурация → Сохранить конфигурацию, затем обновите конфигурацию базы данных (F7). - Запустите 1С:Предприятие и проверьте результат.
Какие файлы брать. Растровые форматы (PNG, GIF, JPEG, BMP) платформа принимает. Лучше PNG с прозрачным фоном: на цветной панели такая картинка не рисует белый квадрат вокруг значка. Векторный SVG поддерживается в актуальных релизах 8.3. Он не мутнеет при масштабировании, но проверьте, что ваш релиз платформы его открывает.
Формы значка. Делайте его квадратным и однотонным, без мелких деталей. Растровая картинка, которую платформа растягивает, выглядит размытой, поэтому берите размер с запасом, а не пиксель в пиксель.
Если конфигурация стоит на поддержке 1С, прямая правка типовых объектов превратит их в изменённые. При следующем обновлении придётся сливать изменения вручную. Для типовых конфигураций используйте расширение (раздел ниже).
Картинка подсистемы и команды
Общая картинка сама по себе ничего не меняет: её нужно подключить. Для этого у объекта есть свойство Картинка.
Подсистема. Откройте подсистему (Подсистемы в дереве), в палитре свойств найдите Картинка и нажмите кнопку выбора. В окне выберите нужную общую картинку. После обновления конфигурации базы данных значок изменится в панели разделов.
Команда. Команды бывают общие (ветка Общие → Общие команды) и принадлежащие объекту, например справочнику. У каждой есть свойство Картинка. Выбор такой же.
Кнопка на форме. Откройте форму, выделите кнопку и в её свойствах задайте Картинка. Если кнопка связана с командой формы, картинку можно задать у самой команды: кнопка возьмёт её оттуда.
Что даёт какое место:
- 🧭 Подсистема: значок в панели разделов, виден постоянно.
- ⚡ Общая команда: значок в панели действий и в командном интерфейсе.
- 🔘 Команда формы или объекта: значок на кнопке.
Если картинка не поменялась после обновления, проверьте три вещи. Первая: свойство Картинка действительно ссылается на заменённый объект, а не на другую похожую картинку. Вторая: база обновлена (F7), а не только сохранена конфигурация. Третья: клиент хранит кэш интерфейса, и в старом сеансе старый значок остаётся до перезапуска.
Программная замена из кода
Код нужен, когда картинка зависит от условия: статус документа, роль пользователя, результат проверки. Свойство Картинка у элементов управляемой формы можно присвоить во время работы.
Первый вариант: взять картинку из библиотеки. Все общие картинки доступны через БиблиотекаКартинок.
&НаКлиенте
Процедура ОбновитьИконкуСтатуса()
Если Объект.Проведен Тогда
Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.ИконкаГотово;
Иначе
Элементы.ДекорацияСтатус.Картинка = БиблиотекаКартинок.ИконкаЧерновик;
КонецЕсли;
КонецПроцедуры
Имена ИконкаГотово и ИконкаЧерновик здесь условные: подставьте имена своих общих картинок. Если такой картинки в конфигурации нет, обращение вызовет ошибку при выполнении.
Второй вариант: создать картинку из двоичных данных, например из файла или реквизита справочника.
&НаСервере
Функция ПолучитьКартинкуИзДанных(ДвоичныеДанные)
Возврат Новый Картинка(ДвоичныеДанные);
КонецФункции
Функцию вызывают с клиента, а результат присваивают свойству Картинка нужного элемента. Так делают, когда пользователь сам загружает значок или логотип.
Для декорации с логотипом организации удобнее хранить файл в справочнике и подставлять через Новый Картинка. Менять конфигурацию при каждой смене логотипа тогда не придётся.
Если хотите, чтобы значок кнопки менялся на клиенте без обращения к серверу, держите все варианты в общих картинках и присваивайте их напрямую, как в первом примере. Обращаться к серверу ради присвоения картинки из библиотеки не нужно.
Типовая конфигурация: делаем через расширение
Если у вас Бухгалтерия, ЗУП или другая типовая конфигурация на поддержке, правка подсистем и команд напрямую создаст лишние расхождения с поставщиком. Расширение решает проблему: оно лежит поверх конфигурации и не меняет её.
Расширения конфигурации появились в платформе 8.3.6, поэтому в любой современной версии 8.3 они есть.
- В конфигураторе откройте
Конфигурация → Расширения конфигурациии создайте новое расширение. Дайте ему понятное имя, напримерМоиИконки. - Добавьте в расширение свою общую картинку: ветка
Общие картинкив самом расширении. - Заимствуйте из основной конфигурации нужную подсистему или команду. Заимствованный объект появляется в дереве расширения.
- У заимствованного объекта в свойствах задайте
Картинка, указав картинку из расширения. - Обновите конфигурацию базы данных (
F7). Для проверки запустите 1С:Предприятие. Загрузка расширения из файла.cfeи обновление конфигурации БД — отдельные шаги, не пропускайте второй.
В палитре свойств заимствованного объекта не все свойства доступны для изменения. Если Картинка у конкретного объекта недоступна, смените подход: создайте в расширении собственную команду или подсистему с нужной картинкой.
Плюс расширения: при обновлении типовой конфигурации менять ничего не нужно. Минус: расширение надо поддерживать при крупных обновлениях, потому что заимствованные объекты могут измениться у поставщика. Расширение, подключённое к базе, можно отключить: если значок отобразился неверно, это быстрый откат.
Расширения применяются к базе, а не к конфигурации в целом. При переносе базы в другую убедитесь, что расширение подключено и там.
Файлы платформы: что менять нельзя
Иногда советуют найти значок в каталоге установки 1С и подменить файл. Для интерфейса конфигурации это не работает
: картинки подсистем и команд лежат внутри самой конфигурации, в базе, а не отдельными файлами рядом с платформой. Для ресурсов платформы (значки 1cv8.exe, 1cv8c.exe, 1cv8s.exe) подмена неэффективна и вредна:
- обновление платформы перезапишет изменённые файлы;
- в организации с централизованной установкой изменённые файлы могут сработать на проверки безопасности;
- если подмена пойдёт не так, придётся переустанавливать платформу, а работающие пользователи потеряют доступ к базе.
Если задача в том, чтобы разные базы выглядели по-разному, используйте значок ярлыка. Если нужно изменить внешний вид интерфейса, то картинки конфигурации. Файлы платформы остаются как есть.
Если значок не поменялся
Большинство неудач объясняется несколькими причинами.
- 🔄 Старый клиентский кэш. Закройте все окна 1С и запустите программу заново. Если это не помогло, очистите кэш клиента: запустите
1cv8.exeс параметром/ClearCache. Кэш клиента относится только к вашему компьютеру, на других пользователей это не влияет. - 💾 Не обновлена база. Конфигурацию сохранили, но не применили к базе. Выполните
Конфигурация → Обновить конфигурацию базы данных. - 🔗 Картинка не подключена. В общей картинке файл заменён, но свойство
Картинкау подсистемы или команды смотрит на другую. - 🖼️ Белый квадрат вокруг значка. Файл без прозрачности. Загрузите PNG с прозрачным фоном.
- 🔍 Значок размытый. Файл слишком мал для места, где он рисуется. Возьмите картинку большего размера или SVG.
- 🧩 Расширение не подключено. Если картинка задана в расширении, проверьте, что оно включено в базе и что база обновлена после его загрузки.
Картинка ссылается на удалённую или переименованную общую картинку. Откройте свойства кнопки и выберите нужную картинку заново.Картинка заимствованного объекта не переопределено или база не обновлена после загрузки расширения. Проверьте оба условия.