Разработка и Конфигурация · 10 мин
Как установить прозрачный фон в PNG для 1С 8
Как сделать прозрачный фон в PNG для 1С 8: подготовка картинки, добавление в конфигурацию, настройка кнопок и картинок формы, типичные ошибки и проверка результата.
Прозрачный фон в картинках PNG нужен в 1С 8 повсюду: пиктограммы кнопок командной панели, иконки подсистем, картинки на формах, изображения в печатных формах. Если фон не прозрачный, вместо аккуратной иконки пользователь видит белый или серый квадрат, который выбивается из цветовой схемы интерфейса и портит внешний вид конфигурации.
Сама платформа 1С:Предприятие 8 корректно отображает альфа-канал PNG, поэтому вся работа сводится к двум этапам: правильно подготовить файл с прозрачностью в графическом редакторе и правильно подключить его в конфигураторе. Ошибки обычно случаются именно на первом этапе — файл сохраняют в формате без альфа-канала или с «грязными» полупрозрачными краями.
Ниже разобран полный цикл: проверка исходного PNG, удаление фона в бесплатных редакторах, сохранение с альфа-каналом, добавление картинки в конфигурацию и встроенную библиотеку картинок, а также проверка результата в режиме предприятия.
Почему 1С показывает фон вместо прозрачности
Чаще всего проблема выглядит так: разработчик вставляет PNG на форму или в кнопку, а вокруг изображения виден белый прямоугольник. Причина почти всегда одна — в файле физически нет альфа-канала. Это происходит, если картинку сохранили в JPEG, в PNG-8 без прозрачности, либо «прозрачность» нарисована белым цветом, который совпадает с фоном редактора, но является обычным пикселем.
Вторая типовая ситуация — прозрачность есть, но края объекта обрезаны с белым ореолом. На белом фоне редактора это незаметно, а в интерфейсе 1С, особенно в тонком клиенте с нестандартной темой, ореол сразу бросается в глаза.
Третья причина — использование картинки из библиотеки картинок платформы или общей картинки, где прозрачность была потеряна при конвертации. Если PNG прогнали через конвертер, который сохранил его в 8-битной палитре, полупрозрачные пиксели могут превратиться в сплошной цвет.
Откройте PNG в редакторе и проверьте, отображается ли фон как шахматная доска
Увеличьте масштаб до 400–800% и посмотрите границу объекта
Проверьте глубину цвета в свойствах файла или пересохраните как PNG-24
Проверка PNG на наличие альфа-канала
Прежде чем что-то менять в конфигурации, убедитесь, что прозрачность есть в самом файле. Самый быстрый способ — открыть PNG в любом редакторе, который показывает прозрачность «шахматной доской»: Paint.NET, GIMP, Photoshop, Photopea в браузере. Если вместо шахматного узора виден белый или цветной фон — прозрачности нет, и её нужно создавать.
Дополнительно проверьте свойства файла. В Windows: правый клик по файлу → «Свойства» → вкладка «Подробно» → строка «Глубина цвета». Значение 32 означает наличие альфа-канала (24 бита цвет + 8 бит прозрачность). Значение 24 говорит о том, что альфа-канала нет.
Как проверить PNG перед загрузкой в 1С
Шахматная доска вокруг объекта
Сплошной белый или цветной фон
32 бита
24 или 8 бит без прозрачности
Плавный переход в прозрачность
Белая или цветная кайма по контуру
Как сделать фон прозрачным в графическом редакторе
Если альфа-канала нет, его нужно создать. Рассмотрим два бесплатных варианта, которые подходят для подготовки картинок под 1С.
Paint.NET — быстрый вариант
Откройте PNG в Paint.NET, выберите инструмент «Волшебная палочка», кликните по фону и нажмите Delete. Если фон неоднородный, уменьшите или увеличьте «Чувствительность» на верхней панели и повторите выделение. Затем сохраните файл через «Файл → Сохранить как → PNG», в диалоге сохранения выберите разрядность «32 бита» — именно она сохраняет прозрачность.
GIMP или Photopea — для сложных случаев
В GIMP: «Слой → Прозрачность → Добавить альфа-канал», затем выделите фон инструментом «Выделение по цвету» и удалите его клавишей Delete. Экспортируйте через «Файл → Экспортировать как → PNG», в настройках оставьте параметры по умолчанию. В браузерном Photopea логика та же: «Select → Similar» для выделения фона, Delete, затем «File → Export as → PNG».
- 1Откройте исходную картинку в Paint.NET, GIMP или Photopea
- 2Убедитесь, что у слоя есть альфа-канал (добавьте его, если редактор требует)
- 3Выделите фон волшебной палочкой или выделением по цвету и удалите его
- 4Проверьте края объекта на увеличении, при необходимости сотрите остатки фона ластиком
- 5Сохраните файл как PNG с 32-битной глубиной цвета
- 6Откройте сохранённый файл заново и убедитесь, что фон отображается шахматной доской
Добавление картинки в конфигурацию 1С
Когда файл готов, его нужно подключить к конфигурации. Стандартный путь — через общие картинки: в дереве конфигурации откройте ветку «Общие → Общие картинки», добавьте новый элемент, задайте имя и в поле «Картинка» загрузите подготовленный PNG. После этого картинка доступна из любого места конфигурации через библиотеку картинок.
Для кнопки формы: откройте форму в конфигураторе, выделите кнопку, в палитре свойств найдите «Картинка», нажмите кнопку выбора и укажите добавленную общую картинку. Для элемента формы типа «Поле картинки» логика аналогичная — картинка назначается через свойство «Картинка» либо программно.
Если картинка нужна только в одном месте и не должна попадать в общую библиотеку, можно загрузить её напрямую в свойство элемента формы — файл будет храниться в составе формы. Но для повторно используемых иконок общие картинки удобнее: изменение в одном месте обновит отображение везде.
// Программная установка картинки с прозрачным фоном на элемент формы
Элементы.ДекорацияЛоготип.Картинка = БиблиотекаКартинок.МояОбщаяКартинка;
// Загрузка PNG из файла в реквизит типа "Картинка"
ДвоичныеДанные = Новый ДвоичныеДанные("C:\Images\logo.png");
КартинкаИзФайла = Новый Картинка(ДвоичныеДанные);Особенности отображения в тонком и веб-клиенте
Тонкий клиент и веб-клиент по-разному масштабируют картинки. Если PNG имеет большой размер и уменьшается платформой, полупрозрачные края могут дать заметную «лесенку». Поэтому иконки для кнопок лучше готовить сразу в целевом размере — обычно 16×16 или 32×32 пикселя, а не масштабировать большую картинку вниз.
В веб-клиенте дополнительно проверьте отображение в разных браузерах. Современные версии корректно работают с альфа-каналом, но при использовании кэширования старая версия картинки может «залипнуть» — после замены PNG очистите кэш браузера или обновите страницу с принудительной перезагрузкой (Ctrl+F5).
Если конфигурация должна поддерживать толстый клиент в режиме обычного приложения, учтите, что там прозрачность в некоторых элементах интерфейса отображается иначе, чем в управляемых формах. Перед массовой заменой иконок проверьте несколько картинок во всех используемых режимах запуска.
Типичные ошибки и как их избежать
Самая частая ошибка — сохранение в PNG-8 с параметром «без прозрачности» или конвертация через онлайн-сервисы, которые сжимают файл и теряют альфа-канал. Если после «оптимизации» картинки фон стал белым — пересохраните её из исходника с 32-битной глубиной.
Вторая ошибка — использование JPEG где-то в цепочке. JPEG в принципе не поддерживает прозрачность: если PNG хоть раз сохранили как JPEG и обратно, прозрачность потеряна безвозвратно, и фон придётся удалять заново.
Третья ошибка — белый фон, нарисованный вручную. Иногда «прозрачную» картинку делают, заливая фон белым цветом под цвет интерфейса. Такая картинка выглядит нормально только на одном фоне и ломается при смене темы, печати или отображении на цветной панели.
Проверка результата в режиме предприятия
После подключения картинки обновите конфигурацию базы данных и запустите режим предприятия. Откройте форму с картинкой и оцените: фон вокруг объекта должен совпадать с фоном элемента, на котором она размещена, без рамок и квадратов.
Дополнительно проверьте картинку на элементах с разным фоном: командная панель, группа формы, табличное поле. Если картинка используется в печатной форме, сформируйте документ и посмотрите предварительный просмотр — при печати полупрозрачные области могут выглядеть иначе, чем на экране.
FAQ
Поддерживает ли 1С 8 прозрачность в формате GIF?
Да, платформа отображает простую прозрачность GIF, но этот формат поддерживает только один уровень: пиксель либо полностью прозрачный, либо полностью непрозрачный. Для иконок с плавными краями и тенями лучше использовать PNG с альфа-каналом.
Почему после замены картинки в конфигураторе в режиме предприятия видна старая?
Чаще всего не обновлена конфигурация базы данных (F7 в конфигураторе) или клиентский кэш держит старую версию. Перезапустите сеанс, а в веб-клиенте обновите страницу с Ctrl+F5. Если не помогло — очистите кэш метаданных клиента.
Какого размера делать иконки для кнопок в управляемых формах?
Ориентируйтесь на 16×16 пикселей для стандартных кнопок командных панелей и 32×32 для крупных кнопок. Платформа умеет масштабировать, но уменьшение большой картинки даёт худшее качество, чем иконка, нарисованная сразу в целевом размере.
Можно ли сделать прозрачный фон средствами самой 1С, без редактора?
Нет, встроенных инструментов редактирования альфа-канала в платформе нет. Объект «Картинка» позволяет загрузить, сохранить и преобразовать формат, но не удалить фон. Подготовку файла нужно выполнять во внешнем графическом редакторе.
Что делать, если прозрачная картинка при печати выходит с чёрным фоном?
Такое встречается при выводе в табличный документ через некоторые способы вставки. Попробуйте вставлять картинку через рисунок табличного документа с типом «Картинка» и проверьте, что файл сохранён именно как PNG-32. Если проблема сохраняется, замените полупрозрачные края на полностью прозрачные.
Влияет ли прозрачность на размер базы и скорость работы?
Альфа-канал немного увеличивает размер PNG-файла по сравнению с версией без прозрачности, но для иконок разница незначительна. На скорость отрисовки интерфейса прозрачность заметного влияния не оказывает; проблемы с производительностью обычно связаны с использованием очень больших изображений.
Что важно запомнить
Прозрачность задаётся не в 1С, а в самом PNG-файле: сохраняйте картинку как PNG с 32-битной глубиной цвета, проверяйте фон по «шахматной доске» в редакторе, подключайте файл через общие картинки и проверяйте результат во всех используемых клиентах.