Разбор от сообщества: Поиск и сохранение векторных иконок [Август 2026]
Контекст и ситуация
Векторные иконки (SVG, EMF) стали стандартом де-факто для современных интерфейсов 1С. Они масштабируются без потери качества, выглядят одинаково на разных разрешениях экрана и занимают меньше места, чем растровые аналоги. Однако платформа 1С:Предприятие 8.3 не предоставляет встроенного инструмента для поиска иконок по семантике (например, «найти все иконки, похожие на галочку»). Разработчики вынуждены либо перебирать сотни файлов вручную, либо использовать сторонние утилиты.
Проблема усугубляется тем, что стандартная библиотека иконок 1С (поставляемая с платформой) имеет ряд особенностей:
- Иконки хранятся в сжатом формате
.icf(Icon Container File), который не поддерживается стандартными просмотрщиками Windows. - Внутри
.icfиконки могут быть как в векторном (EMF), так и в растровом (PNG) формате, причём без явного указания типа. - Имена иконок внутри контейнера не всегда соответствуют их визуальному содержанию (например, иконка с именем «CheckMark» может оказаться крестиком).
Ключевой тезис: Стандартный механизм поиска иконок в 1С — это «чёрный ящик». Вы не можете гарантированно найти нужную иконку, не открыв её визуально. Публикация на Infostart предлагает обходной путь, но он требует понимания внутреннего устройства .icf.
Технический разбор
Автор публикации предлагает использовать COM-объект WIA.ImageFile (Windows Image Acquisition) для извлечения метаданных из файлов .icf. Однако этот подход имеет серьёзные ограничения:
- COM-объект доступен только на Windows.
- Он не умеет читать векторные иконки (EMF) — только растровые (PNG, JPEG).
- Для работы требуется установленная библиотека WIA (входит в состав Windows, но может быть отключена в некоторых сборках).
Более надёжный способ — использовать встроенные средства платформы для разбора .icf как бинарного файла. Формат .icf — это по сути ZIP-архив с определённой структурой заголовков. Мы можем извлечь из него отдельные файлы иконок, не прибегая к COM.
// Пример извлечения иконок из .icf файла с использованием ЧтениеZipФайла
Процедура ИзвлечьИконкиИзICF(ПутьКФайлу, КаталогНазначения)
ЧтениеZip = Новый ЧтениеZipФайла(ПутьКФайлу);
Для Каждого Элемент Из ЧтениеZip.Элементы Цикл
Если Элемент.Расширение = "emf" Или Элемент.Расширение = "png" Тогда
// Извлекаем только векторные и растровые иконки
ЧтениеZip.Извлечь(Элемент, КаталогНазначения + Элемент.Имя);
КонецЕсли;
КонецЦикла;
ЧтениеZip.Закрыть();
КонецПроцедуры
Обратите внимание: .icf может содержать иконки с одинаковыми именами, но разными расширениями (например, save.emf и save.png). При извлечении в одну папку возникнет конфликт имён. Решение — переименовывать файлы, добавляя суффикс типа (save_vector.emf, save_raster.png).
Практическое руководство
Если вам нужно найти и сохранить векторную иконку из стандартной библиотеки 1С, следуйте этому чек-листу. Он сэкономит вам часы ручного перебора.
Чек-лист: Поиск и сохранение векторной иконки
- Определите, какая библиотека иконок используется в вашей конфигурации. Обычно это
Common.icfилиIcons.icfв каталогеExt/Images/вашей конфигурации. Если конфигурация типовая (БП, УТ, ЗУП), иконки могут быть в общих макетах. - Скопируйте файл
.icfв отдельную папку. Не работайте с оригиналом — всегда делайте резервную копию. - Используйте утилиту для распаковки
.icf. Подойдёт любой архиватор, поддерживающий ZIP (7-Zip, WinRAR). Просто переименуйте.icfв.zipи распакуйте. - Отфильтруйте файлы по расширению
.emf. Это и есть векторные иконки. Растровые (.png) отбрасывайте, если вам нужен именно вектор. - Просмотрите иконки визуально. Стандартный проводник Windows не показывает превью для EMF-файлов. Используйте любой просмотрщик изображений (IrfanView, XnView) или откройте файл в Word/Excel (вставка как рисунок).
- Скопируйте нужную иконку в папку вашей конфигурации. Обычно это
Ext/Images/или каталог макетов. Убедитесь, что имя файла уникально. - Подключите иконку в конфигураторе. В свойствах элемента управления (кнопка, команда) укажите путь к файлу иконки. Для векторных иконок используйте формат
EMF.
Важное предупреждение: Не все версии платформы 1С корректно отображают EMF-иконки. Начиная с версии 8.3.10, поддержка EMF была улучшена, но на старых релизах (8.3.6 и ниже) возможны артефакты. Если ваша конфигурация работает на старой платформе, конвертируйте EMF в PNG перед использованием.
Типичные ошибки
- Ошибка 1: Путаница между
.icfи.mf..icf— это контейнер,.mf— это одиночный макет иконки (также может быть векторным). Не пытайтесь открыть.icfкак макет — платформа выдаст ошибку. - Ошибка 2: Использование неподдерживаемого формата. Платформа 1С не поддерживает SVG напрямую. Если вы нашли SVG-иконку, её нужно конвертировать в EMF (через CorelDRAW, Inkscape или онлайн-конвертер).
- Ошибка 3: Игнорирование лицензионных ограничений. Иконки из стандартной библиотеки 1С можно использовать только в решениях на платформе 1С:Предприятие. Вы не имеете права распространять их отдельно от конфигурации.
- Ошибка 4: Сохранение иконки с кириллическим именем. Платформа 1С может некорректно обрабатывать имена файлов с кириллицей в некоторых версиях. Используйте только латиницу и цифры.
Что делать прямо сейчас
Если вы столкнулись с необходимостью найти конкретную векторную иконку, не тратьте время на ручной перебор. Вот алгоритм действий, который сработает в 90% случаев:
- Откройте конфигурацию в режиме «Конфигуратор».
- Перейдите в «Общие макеты» и найдите макет с именем, содержащим «Icons» или «Images».
- Если макет имеет тип «Картинка» — это одиночная иконка. Если тип «Двоичные данные» — это, скорее всего, контейнер
.icf. - Сохраните макет на диск (через контекстное меню «Сохранить как...»).
- Распакуйте
.icfкак ZIP (см. выше). - Отфильтруйте EMF-файлы и просмотрите их в любом просмотрщике.
- Найдя нужную иконку, скопируйте её в папку
Ext/Images/вашей конфигурации. - В конфигураторе добавьте новый общий макет типа «Картинка» и укажите путь к скопированному файлу.
- Используйте этот макет в свойствах команд и элементов формы.
Совет профессионала: Если вы часто работаете с иконками, создайте отдельную обработку для поиска и извлечения иконок из.icf. Это окупится уже после второго-третьего использования. В публикации на Infostart приведён пример такой обработки с использованиемЧтениеZipФайлаиТаблицаЗначенийдля каталогизации найденных иконок.
Заключение
Поиск и сохранение векторных иконок в экосистеме 1С — это задача, которая на первый взгляд кажется простой, но на практике требует знания внутреннего устройства платформы и форматов файлов. Публикация на Infostart предлагает рабочий, хотя и не лишённый недостатков, подход. Мы дополнили его практическими рекомендациями и предостережениями, основанными на реальном опыте разработки.
Главный вывод: не пытайтесь «угадать» иконку по имени файла. Всегда проверяйте её визуально. Используйте автоматизацию (распаковка .icf как ZIP) и не забывайте про лицензионные ограничения. И помните: даже в 2026 году платформа 1С не предоставляет встроенного семантического поиска иконок — эту задачу приходится решать самостоятельно.
Попробовать НОПик →
Проверить свой уровень бесплатно →