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

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

Где в 1С хранятся картинки номенклатуры

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

Вопрос о том, где в 1С хранятся картинки номенклатуры, возникает в двух типичных ситуациях: когда нужно массово выгрузить изображения товаров для сайта или маркетплейса и когда требуется разобраться, почему база «раздулась» или, наоборот, почему картинки перестали отображаться после переноса базы. Ответ зависит от конфигурации и настроек: в типовых решениях на управляемых формах (УТ 11, КА 2, ERP 2, Розница 2/3) используется механизм присоединенных файлов, и картинки могут лежать либо внутри самой базы, либо в томах на диске.

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

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

Как устроено хранение изображений в типовых конфигурациях

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

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

В старых конфигурациях на обычных формах, например УТ 10.3, применяется другой механизм: справочник «Хранилище дополнительной информации», где картинка лежит в реквизите типа «ХранилищеЗначения» непосредственно в базе. Томов на диске там нет, поэтому база с большим каталогом товаров заметно растет в размере.

Два режима хранения: в базе и в томах на диске

Режим хранения определяется настройкой «Хранить файлы в томах на диске» в разделе администрирования. Если она выключена, двоичные данные каждой картинки помещаются в информационную базу — в клиент-серверном варианте это таблицы СУБД, в файловом — данные внутри файла 1Cv8.1CD. Плюс подхода: база самодостаточна, при переносе ничего не теряется. Минус: файл базы растет, резервные копии становятся тяжелее, а выгрузка в dt занимает больше времени.

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

Сравнение вариантов хранения

Хранение в базе

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

Тома на диске

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

Как определить, где хранятся картинки в вашей базе

Самый быстрый способ — открыть настройки хранения файлов. В УТ 11, КА 2 и ERP 2 путь такой: «НСИ и администрирование» → «Настройка НСИ и разделов» → «Общие настройки» (в некоторых релизах — «Администрирование» → «Общие настройки»). Найдите блок «Файлы» и флаг «Хранить файлы в томах на диске». Если флаг установлен, рядом будет ссылка на список томов с их путями.

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

Третий, косвенный признак — размер файловой базы. Если файл 1Cv8.1CD весит на порядок больше, чем ожидается от объема документов, скорее всего, картинки лежат внутри базы. Точную картину по таблицам в клиент-серверном варианте дает просмотр размеров таблиц средствами СУБД.

Как найти место хранения картинок
  1. 1
    Откройте «НСИ и администрирование» → «Общие настройки» и найдите блок «Файлы».
  2. 2
    Проверьте флаг «Хранить файлы в томах на диске».
  3. 3
    Если тома включены — откройте список томов и запишите полные пути к папкам.
  4. 4
    Откройте карточку товара с изображением и перейдите к присоединенным файлам, чтобы подтвердить режим хранения.
  5. 5
    Проверьте, что по указанному пути на диске реально лежат файлы с датами в именах подкаталогов.

Где искать папку с томами на диске

Путь к тому задается в справочнике «Тома хранения файлов» и бывает двух видов: полный путь на сервере (для клиент-серверного режима) и путь на компьютере пользователя. В файловой базе чаще всего используется локальный или сетевой путь вида \\server\share\1c_files\ или локальная папка вроде D:\1C_Files\. Внутри тома 1С создает вложенную структуру подкаталогов — обычно по дате добавления файла (год, месяц, день), а сами файлы получают служебные имена с GUID, поэтому по имени файла понять, что это за товар, невозможно.

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

Если путь к тому прописан как сетевой ресурс, проверьте, что у пользователя, под которым работает сервер 1С (обычно USR1CV8), есть права на чтение и запись в эту папку. Отсутствие прав — частая причина ошибок «Не удалось записать файл» при добавлении картинок.

Как выгрузить картинки номенклатуры из базы

Штатного массового экспорта «в один клик» в типовых конфигурациях нет, поэтому на практике применяют несколько подходов. Самый простой — открыть карточку товара и сохранить картинку вручную через меню присоединенного файла («Сохранить как»). Это приемлемо для единичных товаров, но не для каталога.

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

Если цель — передать картинки на сайт, правильнее настроить штатный обмен с сайтом (CommerceML): при выгрузке товаров изображения передаются автоматически вместе с предложениями. Также картинки можно получить программно через запрос к справочнику «НоменклатураПрисоединенныеФайлы» с отбором по владельцу и расширению (jpg, png, jpeg).

Перед массовой выгрузкой отфильтруйте присоединенные файлы по расширению и признаку «картинка»: к товарам часто привязаны PDF-инструкции и сертификаты, которые в папку с изображениями для сайта попадать не должны.
ПЗ
Практическое замечание

Типичные проблемы: картинки пропали, база раздулась, ошибки доступа

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

Обратная ситуация — база в файловом режиме выросла до десятков гигабайт. Если виноваты картинки, вариантов два: включить хранение в томах и перенести файлы из базы в тома (для этого есть штатная команда «Перенести файлы в тома» в списке томов или обработки конвертации), либо сжать и уменьшить изображения перед загрузкой. Исходные фото с фотоаппарата по 5–10 МБ для учетной системы избыточны — достаточно разрешения, нужного для карточки товара на сайте.

Третья группа проблем — права доступа. Ошибки при добавлении или открытии картинок в клиент-серверном режиме обычно означают, что у служебного пользователя сервера 1С нет прав на папку тома. Проверяется просто: попробуйте от имени этого пользователя создать файл в папке тома.

Типичные ошибки
01
Перенос базы без папки томов — картинки перестают открываться, хотя ссылки в карточках остаются.
02
Ручное переименование файлов в томах — 1С ищет файл по точному пути из базы и теряет его.
03
Загрузка фото в исходном разрешении — база раздувается, обмен с сайтом замедляется.
04
Изменение пути тома без физического переноса файлов — все старые изображения становятся недоступны.
05
Поиск картинок в справочнике «Номенклатура» — там только ссылка, сами файлы лежат в присоединенных файлах.

Перенос картинок при миграции между конфигурациями

При переходе, например, с УТ 10.3 на УТ 11 картинки мигрируют через штатные правила конвертации: данные из «Хранилища дополнительной информации» преобразуются в присоединенные файлы новой базы. Важно проверить после переноса, что у товаров корректно заполнен реквизит «Файл картинки» — именно он определяет основное изображение, которое уйдет на сайт.

Если миграция выполняется самописной обработкой, учитывайте, что в хранилище значений старой базы картинка может лежать не только как двоичные данные, но и как объект «Картинка» — перед записью в новую базу его нужно преобразовать в двоичные данные. Пропуск этого шага дает файлы, которые не открываются ни в 1С, ни внешними программами.

После любой миграции сделайте контрольную выборку: откройте 10–20 карточек товаров из разных групп и убедитесь, что изображения отображаются и открываются в полном размере. Это дешевле, чем обнаружить проблему после выгрузки каталога на сайт.

Контрольные точки

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

Отображение картинки в карточке товара
Норма

Изображение видно в форме номенклатуры и открывается в полный размер

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

Пустая рамка или ошибка «файл не найден» — проверяйте путь тома и наличие файла на диске

Папка томов после переноса
Норма

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

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

Папка пуста или путь недоступен с сервера 1С

Выгрузка на сайт
Норма

Картинки приходят вместе с товарами и отображаются в карточках

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

Товары выгружены без изображений — проверяйте заполнение «Файл картинки» и права на тома

Итоги и частые вопросы

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

Итог

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

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

Можно ли посмотреть картинки номенклатуры без запуска 1С?

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

Почему после переноса базы картинки не отображаются?

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

Как узнать, сколько места занимают картинки в базе?

В клиент-серверном режиме — через анализ размеров таблиц средствами СУБД (таблицы присоединенных файлов). В файловом режиме точного штатного способа нет; косвенно оценить можно по размеру файла 1Cv8.1CD до и после тестового переноса файлов в тома на копии базы.

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

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

Что будет, если удалить файл из папки тома вручную?

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

Влияет ли размер картинок на скорость работы 1С?

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