К статье
Практический материал

Справочники и Данные · 10 мин

Как из 1С выгрузить картинку

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

Картинки в 1С чаще всего хранятся в карточках номенклатуры, но могут быть прикреплены и к другим объектам: контрагентам, сотрудникам, документам. В зависимости от задачи — вытащить одно изображение или выгрузить тысячи файлов для сайта — подходят разные способы: от простого сохранения через интерфейс до обработки на встроенном языке.

Важно понимать, где физически лежит картинка. В типовых конфигурациях (УТ 11, ERP, Комплексная автоматизация, УНФ) изображения хранятся либо в самой информационной базе в виде двоичных данных, либо в томах на диске, а в базе остаётся только ссылка на файл. От этого зависит и способ выгрузки: файл из тома можно просто скопировать, а картинку из базы придётся извлекать программно или через интерфейс.

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

Где 1С хранит картинки и почему это важно

В конфигурациях на БСП (Библиотека стандартных подсистем) картинки обычно лежат в справочнике присоединенных файлов — например, «НоменклатураПрисоединенныеФайлы». Каждый элемент такого справочника ссылается на владельца (товар) и содержит либо сам файл в хранилище значений, либо путь к нему в томе хранения.

Режим хранения задаётся в настройках: «Администрирование → Настройка работы с файлами». Если включено «Хранить файлы в томах на диске», файлы лежат в обычных папках на сервере или компьютере, и выгрузка сводится к копированию. Если тома не используются, двоичные данные хранятся внутри базы, и достать их можно только средствами 1С.

Определить режим просто: откройте карточку номенклатуры с картинкой, перейдите по ссылке «Файлы» (или «Присоединенные файлы») и откройте элемент файла. Если в поле пути указана папка на диске — файлы в томах. Если поля пути нет, а есть только размер и расширение — данные внутри базы.

Как сохранить одну картинку через интерфейс

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

Сохранение картинки из карточки товара
  1. 1
    Откройте карточку номенклатуры и дважды щёлкните по области изображения, чтобы открыть его в полном виде
  2. 2
    Либо перейдите по ссылке «Файлы» и откройте нужный присоединенный файл
  3. 3
    В открывшемся окне изображения нажмите кнопку «Сохранить как» (иконка дискеты) или выберите пункт меню «Ещё → Сохранить как»
  4. 4
    Укажите папку и имя файла, подтвердите сохранение
  5. 5
    Откройте сохранённый файл и убедитесь, что он открывается и не обрезан

В некоторых интерфейсах работает и более простой путь: правый клик по картинке в карточке → «Сохранить картинку как». В тонком и веб-клиенте набор команд может отличаться, но пункт сохранения присутствует практически всегда.

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

Массовая выгрузка через типовые средства

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

Первый вариант — выгрузка через список присоединенных файлов. Откройте форму списка файлов (например, из карточки товара по ссылке «Файлы»), выделите несколько строк с зажатой клавишей Ctrl и используйте команду «Сохранить как» — платформа предложит папку и сохранит все выбранные файлы разом. Это работает, если нужные файлы относятся к одному объекту или их немного.

Второй вариант — универсальные обработки с ИТС или встроенные механизмы обмена. Например, обмен с сайтом (модуль обмена с 1С-Битрикс) выгружает картинки номенклатуры в папку вместе с товарами: файлы складываются в каталог обмена, откуда их можно забрать. Это удобно, если конечная цель — как раз сайт или маркетплейс.

Способы выгрузки картинок из 1С

Сохранение из интерфейса

Подходит для 1–10 файлов. Не требует прав разработчика, но не масштабируется и не сохраняет структуру по товарам автоматически

Выгрузка из тома на диске

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

Обработка на встроенном языке

Подходит для массовой выгрузки с переименованием по артикулу или наименованию. Требует прав и навыков либо готовой внешней обработки

Обмен с сайтом

Подходит, если цель — интернет-магазин. Выгружает картинки вместе с товарами, но настройка модуля обмена занимает время

Выгрузка картинок кодом на встроенном языке

Самый гибкий способ — небольшая обработка, которая перебирает присоединенные файлы и сохраняет их на диск. Ниже типовой шаблон для конфигураций на БСП, где используется программный интерфейс работы с присоединенными файлами.

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Файлы.Ссылка КАК Ссылка,

| Файлы.ВладелецФайла.Артикул КАК Артикул,

| Файлы.Расширение КАК Расширение

|ИЗ

| Справочник.НоменклатураПрисоединенныеФайлы КАК Файлы";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Данные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.Ссылка);

ИмяФайла = "D:\Картинки\"

+ СтрЗаменить(СокрЛП(Выборка.Артикул), "/", "_")

+ "_" + Строка(Выборка.Ссылка.УникальныйИдентификатор())

+ "." + Выборка.Расширение;

Данные.Записать(ИмяФайла);

КонецЦикла;

Ключевые моменты кода. Функция РаботаСФайлами.ДвоичныеДанныеФайла() возвращает двоичные данные независимо от того, где лежит файл — в базе или в томе, поэтому обработка универсальна. Уникальный идентификатор в имени файла защищает от перезаписи, когда у одного товара несколько картинок или артикулы повторяются. Недопустимые для файловой системы символы (слеши, двоеточия) в артикуле нужно заменять.

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

Выгрузка, если файлы хранятся в томах на диске

Если в настройках включено хранение файлов в томах, задача упрощается до работы с файловой системой. Откройте «Администрирование → Настройка работы с файлами → Тома хранения файлов» и посмотрите полный путь к тому — обычно это выделенная папка на сервере.

Внутри тома файлы разложены по вложенным папкам (часто по дате добавления) и могут иметь служебные имена или сохранять исходные. Скопируйте нужные папки штатными средствами ОС. Минус подхода — потеря связи с товаром: чтобы понять, какая картинка к какому товару относится, придётся сопоставлять имена файлов со справочником присоединенных файлов через отчёт или консоль запросов.

Проверка результата и типичные ошибки

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

Типичные ошибки
01
Сохранение миниатюры предпросмотра вместо исходного файла — картинка получается маленькой и непригодной для сайта
02
Выгрузка без уникальных имён — файлы с одинаковыми артикулами перезаписывают друг друга, часть картинок теряется
03
Перемещение файлов из тома вместо копирования — в базе ломаются ссылки, картинки перестают открываться в карточках
04
Выгрузка под пользователем без прав на чтение присоединенных файлов — обработка отрабатывает без ошибок, но выгружает пустой результат
05
Игнорирование расширения файла — картинка сохраняется без .jpg/.png и не открывается двойным кликом
Контрольные точки

Как проверить результат

Количество файлов в папке выгрузки
Норма

Совпадает с числом выгруженных элементов справочника файлов

Тревожный признак

Файлов меньше — часть не выгрузилась или перезаписалась

Открытие случайных 5–10 файлов
Норма

Картинки открываются, соответствуют товарам, полного размера

Тревожный признак

Файл не открывается, пустой или это уменьшенный предпросмотр

Карточки товаров после работы с томами
Норма

Картинки в 1С по-прежнему открываются

Тревожный признак

Ошибка «файл не найден» — файлы в томе были перемещены или переименованы

FAQ

Как выгрузить картинку из 1С 7.7?

В 7.7 нет справочника присоединенных файлов: картинки обычно хранятся как OLE-объекты или лежат в папке, указанной в карточке товара. Если изображение встроено в базу, его извлекают обработкой с сохранением картинки из объекта «Картинка» на диск. Если в карточке хранится путь к файлу — просто скопируйте файлы из указанной папки.

Можно ли выгрузить картинки сразу с именами по артикулам?

Да, но только программным способом: в обработке имя файла формируется из артикула или наименования владельца. Типовое сохранение из интерфейса использует исходное имя файла, которое может не совпадать с артикулом. Учтите, что у одного товара может быть несколько картинок, поэтому к имени стоит добавлять порядковый номер или идентификатор.

Почему выгруженный файл не открывается?

Чаще всего не хватает расширения: в справочнике присоединенных файлов расширение хранится отдельным полем и не добавляется к имени автоматически. Допишите .jpg или .png вручную. Вторая причина — файл был повреждён при загрузке в базу; проверьте, открывается ли он в самой 1С.

Как выгрузить картинки только по одной папке номенклатуры?

В запросе обработки добавьте условие «ВладелецФайла В ИЕРАРХИИ(&Группа)» и передайте ссылку на нужную группу. При ручной выгрузке откройте список файлов с отбором по владельцу и сохраняйте выделенные строки.

Сколько места понадобится для выгрузки всех картинок?

Оценить можно по размеру базы или тома: если файлы в томах, посмотрите объём папки тома; если в базе — суммируйте значения поля «Размер» по справочнику присоединенных файлов через отчёт или консоль запросов. Заложите запас 10–15% сверх полученной цифры.

Итог

Что важно запомнить

Сначала определите, где хранятся картинки — в базе или в томах на диске. Одну картинку сохраняйте через интерфейс, открыв файл целиком; массовую выгрузку делайте обработкой с уникальными именами или копированием из тома. Из тома файлы только копируют, не перемещая, а результат всегда проверяют на выборке.