Картинки товаров в базе 1С 8.3: от подготовки файла до показа в списке и печатной форме
Содержание
Загрузить изображение в 1С проще всего из карточки элемента: откройте номенклатуру, нажмите на пустую область картинки (или на значок скрепки «Присоединенные файлы»), выберите файл на диске и отметьте его как основное изображение. Так это работает в Бухгалтерии 3.0, Управлении торговлей 11 и других конфигурациях на БСП: картинка становится присоединённым файлом элемента и показывается в карточке.
Частое заблуждение — «картинку надо куда-то вставить в макет». Нет: в справочник её не вставляют, а прикрепляют как файл. Где этот файл физически хранится — в самой базе или в папке на диске, — решает администратор. От этого зависит размер базы, скорость резервного копирования и то, увидит ли картинку пользователь веб-клиента.
Подготовка картинок к загрузке в 1С
Платформа примет почти любой снимок, но тяжёлые и «странные» файлы потом создают проблемы: база пухнет, списки тормозят, часть картинок не открывается. Пять минут подготовки окупаются.
Формат файла
| Формат | Когда брать | Комментарий |
|---|---|---|
| JPEG (.jpg) | фото товара | лучший баланс качества и веса |
| PNG (.png) | логотипы, схемы, прозрачный фон | для фото тяжелее JPEG в разы |
| GIF, BMP | только если другого нет | BMP без сжатия, весит много |
| HEIC (iPhone), WebP (сайты) | не загружать как есть | переконвертируйте в JPEG |
Снимки с телефона и картинки, скачанные с сайтов поставщика, — главный источник «пустых» карточек. Файл загружается, но не отображается. Перед загрузкой сохраните их в JPEG любым редактором.
Размер и вес
- 📐 Для карточки и печатных форм хватает 800–1200 пикселей по длинной стороне.
- 💾 Ориентир по весу — 100–300 КБ на картинку. Фото 6000×4000 пикселей весит 5–8 МБ и ничего не добавляет к качеству на экране.
- 🧮 Простая арифметика: 2 000 товаров × 5 МБ = около 10 ГБ в базе. Те же 2 000 товаров × 200 КБ = около 400 МБ.
Имена файлов для массовой загрузки
Если картинок много, договоритесь о правиле имён заранее. Самый надёжный вариант — имя файла равно артикулу: A-1024.jpg, A-1025.jpg. Название товара в имени файла не подходит: в нём кавычки, слеши, лишние пробелы, а при поиске по наименованию легко попасть не в тот элемент.
Если у одного товара несколько фото, добавьте суффикс: A-1024_1.jpg, A-1024_2.jpg. Обработка возьмёт артикул до символа подчёркивания.
Где хранить изображения: в базе или в томах на диске
По умолчанию присоединённые файлы лежат внутри информационной базы. Для пары сотен картинок это нормально. Для тысяч — база растёт, выгрузка в .dt и резервное копирование
идут дольше.
Альтернатива — тома хранения файлов: в базе остаётся только ссылка, а сам файл лежит в папке на диске или в сетевом ресурсе. Включается это в разделе Администрирование → Общие настройки, в группе настроек работы с файлами: флажок хранения файлов в томах на диске и ссылка на список томов. Для каждого тома указывают полный путь, отдельно для Windows и для Linux, если серверы разные.
| Вариант | Плюсы | Минусы |
|---|---|---|
| В информационной базе | один файл бэкапа, ничего не потеряется | база растёт, копирование дольше |
| В томах на диске | база компактная | папку тома нужно бэкапить отдельно |
Папка тома должна быть доступна на запись тому пользователю, под которым работает сервер 1С (в клиент-серверном варианте) или пользователь (в файловом). Если права есть только у вас, у коллег загрузка будет падать с ошибкой записи.
Том на диске — это часть данных базы. Если копируете базу, а папку тома забыли, все картинки в копии пропадут.
Там же, в настройках работы с файлами, задают максимальный размер загружаемого файла и список запрещённых расширений. Если картинки не грузятся у всех пользователей сразу, первым делом смотрите сюда.
Пошаговая загрузка изображения в карточку номенклатуры
Порядок одинаковый для БП 3.0 и УТ 11, различается только расположение элементов формы.
| Конфигурация | Где открыть карточку | Где картинка на форме |
|---|---|---|
| Бухгалтерия 3.0 | Справочники → Товары и услуги → Номенклатура | область изображения в карточке, плюс скрепка «Присоединенные файлы» в командной панели |
| Управление торговлей 11 | НСИ и администрирование → НСИ → Номенклатура | область изображения в правой части карточки |
Шаг 1. Откройте элемент
Найдите товар в списке и откройте карточку двойным щелчком. Если элемент новый, сначала запишите его кнопкой Записать: прикрепить файл
к незаписанному элементу нельзя, программа попросит его сохранить.
Шаг 2. Добавьте файл
Щёлкните по пустой области изображения. Откроется выбор файла — укажите картинку на диске. Второй путь — через скрепку «Присоединенные файлы»: откроется список файлов элемента, там команда Создать (или добавление файла с диска), затем выбор файла.
Через список присоединённых файлов удобно прикреплять сразу несколько фото, сертификаты, паспорта изделия в PDF.
Шаг 3. Назначьте основное изображение
Если файлов несколько, в карточке показывается одно — основное. Выделите нужный файл в списке присоединённых файлов и выберите команду назначения основным изображением. Через щелчок по пустой области картинки файл становится основным сразу.
Шаг 4. Запишите элемент
Нажмите Записать и закрыть. Откройте карточку снова — картинка должна отображаться.
Как заменить или убрать картинку
- 🔁 Замена: щёлкните по изображению правой кнопкой (или через меню над картинкой) и выберите другой файл, либо назначьте основным другой присоединённый файл.
- 🗑️ Удаление: в списке присоединённых файлов файл помечают на удаление. Физически он исчезнет после удаления помеченных объектов:
Администрирование → Обслуживание → Удаление помеченных объектов.
Тот же механизм работает для контрагентов, сотрудников, основных средств — везде, где у справочника есть присоединённые файлы. Фото сотрудника в ЗУП 3.1, например, добавляют из карточки сотрудника.
Массовая загрузка картинок номенклатуры из папки
Сто карточек руками — это вечер. Тысяча — неделя. Варианты автоматизации:
- Обмен с сайтом в формате CommerceML. Если товары и фото уже есть в интернет-магазине, при загрузке каталога 1С подтягивает и картинки из пакета обмена. Работает, только если обмен настроен в обе стороны и сайт выгружает изображения.
- Внешняя обработка. Самый частый путь: обработка проходит по папке, по имени файла находит товар по артикулу и прикрепляет картинку. Готовые обработки распространяются бесплатно, но берите их из проверенных источников и запускайте сначала на копии.
- Своя обработка или расширение. Пишется за час, если в конфигурации есть БСП (подсистема «Работа с файлами»).
Перед запуском любой обработки:
Пример кода для своей обработки
Ниже — серверная процедура для конфигураций на БСП 3.x. Она берёт все JPEG из каталога на сервере, ищет номенклатуру по артикулу и, если у товара ещё нет основной картинки, прикрепляет файл и делает его основным.
&НаСервере
Процедура ЗагрузитьКартинкиНаСервере(Каталог)
Файлы = НайтиФайлы(Каталог, "*.jpg");
Загружено = 0;
Для Каждого Файл Из Файлы Цикл
// Артикул — часть имени до "_" (A-1024_1.jpg -> A-1024)
Артикул = Файл.ИмяБезРасширения;
Позиция = СтрНайти(Артикул, "_");
Если Позиция > 0 Тогда
Артикул = Лев(Артикул, Позиция - 1);
КонецЕсли;
Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Товар.Пустая() Тогда
Сообщить(СтрШаблон("Не найден товар с артикулом %1", Артикул));
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Товар.ФайлКартинки) Тогда
Продолжить; // картинка уже есть
КонецЕсли;
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Файл.ПолноеИмя));
ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыФайла.ВладелецФайлов = Товар;
ПараметрыФайла.ИмяБезРасширения = Файл.ИмяБезРасширения;
ПараметрыФайла.РасширениеБезТочки = Сред(Файл.Расширение, 2);
СсылкаНаФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, Адрес);
ТоварОбъект = Товар.ПолучитьОбъект();
ТоварОбъект.ФайлКартинки = СсылкаНаФайл;
ТоварОбъект.Записать();
Загружено = Загружено + 1;
КонецЦикла;
Сообщить(СтрШаблон("Загружено картинок: %1 из %2", Формат(Загружено, "ЧГ=0"), Формат(Файлы.Количество(), "ЧГ=0")));
КонецПроцедуры
Что учесть:
- 📁 Путь
Каталог— путь на сервере 1С, а не на компьютере пользователя. В файловой базе это одно и то же, в клиент-серверной — нет. - 🔤 Маска
*.jpgв Windows найдёт и.JPG, в Linux — нет. На Linux-сервере добавьте второй вызов с*.JPG. - 🧾 Реквизит
ФайлКартинкиесть у номенклатуры в БП 3.0 и УТ 11. В другой конфигурации проверьте имя реквизита в конфигураторе. - ⚠️ Если артикулы в базе повторяются,
НайтиПоРеквизитувернёт первый найденный элемент. Дубли артикулов почистите до загрузки.
Технические ограничения платформы 1С 8.3
Картинка в 1С — это объект типа Картинка. Платформа уверенно показывает растровые BMP, GIF, JPEG, PNG, TIFF и ICO, а также векторные WMF и EMF. Всё остальное — на свой риск.
Что ограничивает загрузку на практике:
- 📏 Максимальный размер файла — настройка работы с файлами в конфигурации. Файл больше лимита не загрузится, программа сообщит о превышении.
- 🚫 Запрещённые расширения — там же. Обычно туда попадают исполняемые файлы, но администратор мог добавить и графические.
- 🌐 Веб-клиент и тонкий клиент через интернет — каждая картинка едет по сети. Карточка с фото на 8 МБ открывается секунды, список с превью — заметно медленнее.
- 🗄️ Файловая база — все картинки внутри одного файла
1Cv8.1CD. Чем он больше, тем дольше копирование и тестирование базы . - 🔄 Обмены — при синхронизации с другой базой файлы могут передаваться вместе с данными. Тяжёлые картинки раздувают пакеты обмена.
Если картинок больше пары тысяч, включайте тома на диске до загрузки, а не после. Перенос уже загруженных файлов из базы в тома делают отдельной командой в настройках томов, и на большой базе он идёт долго.
Показ изображений в списках, отчётах и печатных формах
Сама по себе загрузка картинки ещё не значит, что её видно везде.
В списке номенклатуры
В УТ 11 у списка номенклатуры есть панель с изображением выбранного товара: выделяете строку — справа видно фото. Если панели нет, проверьте настройки формы через Ещё → Изменить форму: возможно, элемент картинки скрыт.
В Бухгалтерии 3.0 список номенклатуры картинки не показывает: фото видно только в карточке. Вывести колонку с превью можно доработкой формы в расширении.
В печатных формах
Типовые печатные формы, где картинка уместна, — коммерческие предложения, прайс-листы, ценники — в части конфигураций умеют выводить фото. Если на форме печати или в настройках макета есть флажок вывода изображений — включите его. Если нет, своя печатная форма с картинкой делается через расширение или внешнюю печатную форму: в макет добавляют рисунок и заполняют его из присоединённого файла.
В отчётах на СКД
Стандартный отчёт пользовательскими настройками не выведет фото товара. Нужна доработка: программист добавляет в набор данных поле с двоичными данными картинки и настраивает его вывод. Для пользователя это выглядит как новый вариант отчёта.
Почему картинка не загружается или не отображается в 1С
| Что видите | Вероятная причина | Что сделать |
|---|---|---|
| Сообщение о превышении размера файла | файл больше лимита в настройках | уменьшить картинку или поднять лимит в настройках работы с файлами |
| Сообщение, что расширение запрещено | расширение в списке запрещённых | убрать его из списка или сохранить файл в другом формате |
| Файл загрузился, а в карточке пусто | формат HEIC, WebP или повреждённый файл | переконвертировать в JPEG и загрузить снова |
| Фото с неправильными цветами | JPEG сохранён в цветовой модели CMYK (из типографии) | пересохранить в RGB |
| Картинка есть в файлах, но не в карточке | файл не назначен основным изображением | назначить его основным в списке присоединённых файлов |
| Ошибка записи файла при загрузке | у сервера 1С нет прав на папку тома | выдать права на запись пользователю службы сервера 1С |
| После копирования базы картинки пропали | файлы были в томах на диске, папку не скопировали | скопировать папку тома и поправить путь к тому в копии |
| В веб-клиенте не открывается выбор файла | не установлено расширение для работы с файлами в браузере | установить его по предложению программы |
Права на папку тома меняют на сервере, а не на рабочем месте. Служба сервера 1С подхватывает новые права без перезапуска; если всё же решили перезапустить службу — делайте это вне рабочего времени, у всех пользователей оборвутся сеансы.