Справочники и Данные · 10 мин
Как загрузить картинку из Excel в 1С
Способы загрузки картинок и фото товаров из Excel в 1С: через обработку, универсальный обмен и код. Проверка результата, типичные ошибки и FAQ.
Задача загрузить картинку из Excel в 1С возникает чаще всего при переносе номенклатуры: у поставщика есть прайс с фотографиями товаров, а в карточках 1С изображений нет. Важно понимать ключевую особенность: Excel хранит картинки двумя разными способами — как вставленные поверх ячеек объекты и как ссылки на файлы или пути на диске. От этого зависит, какой способ загрузки подойдёт именно вам.
Если в файле указаны только пути к файлам (например, «D:\Фото\артикул123.jpg»), задача решается относительно просто: 1С читает таблицу, находит файл по пути и прикрепляет его к элементу справочника. Если же картинки «вшиты» в сам файл Excel как плавающие объекты, их сначала нужно извлечь — штатными средствами 1С это сделать напрямую нельзя.
Ниже разобраны все рабочие сценарии: подготовка файла, извлечение встроенных изображений, загрузка типовыми средствами, загрузка через внешнюю обработку и программный вариант для разработчика. Для каждого способа указаны условия применимости и типичные ошибки.
Определите, как картинки хранятся в вашем файле Excel
Откройте файл и кликните по изображению. Если оно выделяется рамкой и его можно свободно перетаскивать мышью — это плавающий объект, вставленный поверх листа. Такая картинка не привязана к значению ячейки, и при чтении файла табличным документом 1С она не попадёт в данные.
Второй вариант — в ячейке записан текст: имя файла, относительный или полный путь, либо ссылка URL. Это самый удобный случай: 1С прочитает ячейку как обычную строку, и дальше останется только найти файл на диске и прикрепить его к карточке товара.
Третий, более редкий случай — картинки вставлены в примечания ячеек или в «тяжёлые» элементы управления. Такие вставки тоже не читаются как данные и требуют предварительного извлечения.
Потребуется извлечение из файла перед загрузкой
Подходит для прямой загрузки в 1С
Файлы нужно скачать, затем загрузить локально
Извлекается только скриптом или вручную
Извлеките встроенные картинки из файла Excel
Файл формата xlsx — это по сути zip-архив. Чтобы достать из него все встроенные изображения, сделайте копию файла, измените расширение копии с .xlsx на .zip и откройте архив. Внутри найдите папку xl/media — в ней лежат все картинки в исходном качестве, обычно с именами image1.png, image2.jpeg и так далее.
Проблема в том, что имена файлов не связаны с товарами. Чтобы сопоставить изображения с артикулами, откройте исходный Excel рядом с извлечёнными картинками и вручную или полуавтоматически переименуйте файлы по артикулу или коду товара. Для сотен позиций это трудоёмко, поэтому при больших объёмах разумнее попросить у поставщика отдельный архив фото с именами по артикулам — большинство поставщиков такие архивы предоставляют.
Альтернативный ручной способ для небольшого количества позиций: кликнуть правой кнопкой по картинке в Excel и выбрать «Сохранить как рисунок», сразу задавая имя по артикулу. После этого составьте в Excel таблицу из двух колонок: артикул и имя файла — она станет основой для загрузки.
Подготовьте файлы и таблицу соответствия
Перед загрузкой соберите все изображения в одну папку на диске, доступную с компьютера, где работает 1С. Если 1С работает в клиент-серверном режиме, учтите: обработка, выполняемая на сервере, не увидит диск вашего локального компьютера. В этом случае папку размещают на сетевом ресурсе, доступном серверу 1С, либо используют обработку, которая передаёт файлы с клиента.
Таблица соответствия должна содержать минимум две колонки: ключ поиска элемента в 1С (артикул, код, штрихкод или наименование) и полное имя файла с расширением. Убедитесь, что ключи в таблице совпадают с данными в 1С посимвольно: лишние пробелы и разный регистр — самая частая причина «незаполненных» карточек после загрузки.
Проверьте форматы файлов: 1С корректно работает с jpg, png, bmp и gif. Файлы webp, heic и некоторые другие форматы типовые механизмы могут не принять — их стоит заранее конвертировать в jpg или png. Также желательно уменьшить слишком большие фото: десятки мегабайт на каждую карточку заметно раздувают базу.
Загрузите картинки типовой обработкой
В типовых конфигурациях на управляемых формах (Управление торговлей 11, Комплексная автоматизация, ERP) есть штатный механизм работы с изображениями номенклатуры. В карточке товара нажмите «Добавить изображение» и выберите файл — для одиночных позиций этого достаточно.
Для массовой загрузки в ряде конфигураций доступна обработка «Помощник продаж» или специализированные обработки подбора изображений, а также механизм загрузки данных из табличного документа: «НСИ и администрирование» → «Загрузка данных из файла». Этот инструмент умеет читать Excel, сопоставлять колонки с реквизитами и, в поддерживаемых конфигурациях, прикреплять файлы изображений по указанному пути.
Порядок действий в общем виде: откройте обработку загрузки, выберите вид данных (номенклатура), укажите файл Excel с таблицей соответствия, сопоставьте колонки — ключ поиска и путь к файлу изображения, — запустите загрузку и дождитесь отчёта о результатах. В отчёте обращайте внимание на строки со статусом ошибки: обычно это ненайденный элемент или недоступный файл.
- 1Сделайте резервную копию базы и подготовьте папку с картинками
- 2Сформируйте Excel-таблицу: артикул + полное имя файла
- 3Откройте обработку загрузки данных из файла в 1С
- 4Сопоставьте колонки таблицы с реквизитами и полем файла
- 5Выполните пробную загрузку на нескольких позициях
- 6Проверьте карточки вручную, затем загрузите весь объём
Используйте универсальную обработку или собственный код
Если типовых средств недостаточно, применяют внешнюю обработку «Универсальный обмен данными в формате XML» с подготовленными правилами или специализированные обработки загрузки изображений, которые открывают через «Файл» → «Открыть». Такие обработки позволяют гибко настроить поиск элемента и правило формирования пути к файлу.
Для разработчика задача решается небольшим фрагментом кода: чтение Excel через табличный документ или COM-объект, поиск элемента справочника по артикулу и запись файла в присоединённые файлы. В конфигурациях на БСП для этого существует программный интерфейс работы с файлами.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("D:\Фото\Соответствие.xlsx");
Для Ном = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(Ном, 1).Текст);
ИмяФайла = СокрЛП(ТабДок.Область(Ном, 2).Текст);
Элемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Не Элемент.Пустая() Тогда
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
// далее запись в присоединённые файлы средствами БСП
КонецЕсли;
КонецЦикла;Пример выше — упрощённый каркас: в реальной обработке добавляют проверку существования файла, обработку ошибок, транзакцию и журнал загруженных позиций. Если в конфигурации используется хранение файлов в томах на диске, а не в базе, логика записи отличается — это нужно учитывать при разработке.
Сравнение вариантов
Подходит до нескольких десятков позиций; не требует настроек, но медленно
Подходит для массовой загрузки по таблице соответствия; зависит от конфигурации
Гибкие настройки поиска и путей; требует права открытия внешних обработок
Любые правила сопоставления; нужен разработчик и тестирование
Проверьте результат и исправьте пропуски
После загрузки откройте несколько карточек товаров из разных частей списка и убедитесь, что изображение отображается, соответствует товару и не растянуто до нечитаемости. Проверьте хотя бы одну позицию из начала, середины и конца таблицы — ошибки сопоставления часто проявляются неравномерно.
Составьте список позиций, для которых картинка не загрузилась. Причины почти всегда одни и те же: элемент не найден по ключу, файл отсутствует по указанному пути, недопустимый формат, нет прав на запись элемента. Устраните причину по каждой строке и повторите загрузку только для проблемных позиций.
Частые вопросы
Можно ли загрузить картинки напрямую из ячеек Excel без извлечения?
Штатными средствами — нет: плавающие объекты Excel не являются данными ячеек и при чтении файла табличным документом теряются. Сначала извлеките изображения (например, через переименование xlsx в zip), затем загружайте их как отдельные файлы по таблице соответствия.
Какой формат картинок лучше использовать для 1С?
Наиболее совместимы jpg и png. Форматы webp и heic типовые механизмы могут не поддерживать. Для каталога товаров обычно достаточно jpg с размером файла в сотни килобайт — этого хватает для отображения в карточке и печатных формах.
Почему обработка не видит папку с картинками?
Чаще всего причина в клиент-серверном режиме: код выполняется на сервере 1С, а путь указывает на локальный диск вашего компьютера. Разместите файлы в сетевой папке, доступной серверу, либо используйте обработку с передачей файлов с клиента.
Как не раздуть базу при загрузке тысяч фото?
Заранее уменьшите разрешение изображений до разумного для каталога уровня и конвертируйте в jpg. Если конфигурация поддерживает хранение файлов в томах на диске, включите этот режим — тогда сами файлы лежат вне базы, а в базе хранятся только ссылки.
Что делать, если часть товаров не нашлась по артикулу?
Выгрузите список ненайденных позиций и сверьте ключи: ищите лишние пробелы, разный регистр букв, похожие символы (латиница вместо кириллицы). После исправления таблицы повторите загрузку только для этих строк — дублирование уже загруженных картинок при этом не страшно, но лучше его избегать.
Что важно запомнить
Сначала определите, как хранятся картинки в Excel: пути к файлам загружаются напрямую, встроенные объекты нужно извлечь. Подготовьте таблицу «артикул — файл», сделайте копию базы, выполните пробную загрузку и только потом запускайте полный объём. После загрузки вручную проверьте выборку карточек и дозагрузите пропущенные позиции.