Загрузка и прикрепление изображений в базе 1С

· 10 мин

Содержание

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

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

Пути ниже даны для типовых конфигураций на управляемых формах («Такси») — Бухгалтерия 3.0, УТ 11, ЗУП 3.1. Названия разделов в вашей базе могут отличаться на один уровень — ориентируйтесь по смыслу.

Пять способов добавить изображение и когда какой нужен

Прежде чем кликать, определитесь, где картинка должна появиться. От этого зависит механизм.

  • 📎 Присоединённый файл — универсальный способ. Подходит для любого справочника и документа: скан, фото, PDF висят рядом с объектом. Основной инструмент для первички.
  • 🖼 Картинка в карточке — отдельное поле «изображение» у номенклатуры и физлиц. Именно это фото попадёт в прайс, на ценник, выгрузится на сайт.
  • 📄 Фото на документе — тот же механизм присоединённых файлов, но привязанный к конкретному документу (накладной, авансовому отчёту).
  • 📦 Массовая загрузка — когда картинок сотни: подбор по коду/артикулу или пакетное добавление файлов.
  • ⌨️ Программно — для разработчика: запись изображения в реквизит или присоединённый файл из обработки.

Выберите сценарий — дальше показано, что нажимать.

Куда нужно добавить фото?

Фото в карточке справочника: номенклатура и физлица

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

  1. Откройте раздел Справочники (в УТ 11 — НСИ и администрирование → Номенклатура).
  2. Зайдите в карточку товара.
  3. Найдите область с картинкой — обычно это квадрат-плейсхолдер в правой части формы или отдельная закладка/ссылка «Картинки».
  4. Нажмите добавление файла и выберите изображение с диска.
  5. Если картинок несколько, одну отметьте основной — она пойдёт в печать и выгрузку.

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

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

Для фотографии человека механизм другой. В справочнике физических лиц (он общий для Бухгалтерии и ЗУП) отдельного поля «фото» в карточке обычно нет — снимок прикрепляют как присоединённый файл. Это следующий раздел.

Не путайте справочник «Сотрудники» и «Физические лица». Фото логично держать на физлице: один человек может быть оформлен несколькими сотрудниками (основное место, совместительство), а физлицо одно.

Присоединённые файлы: скан и фото к любому объекту

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

Как добавить:

  1. Откройте нужный элемент — карточку физлица, контрагента, договора.
  2. В панели навигации формы (список ссылок слева или сверху) найдите команду «Присоединённые файлы». Иногда она вынесена кнопкой-скрепкой на командную панель.
  3. Нажмите «Добавить» → «Файл с диска» и выберите изображение.
  4. Файл загрузится и будет храниться вместе с объектом.

Тем же способом картинку можно не выбирать с диска, а:

  • 📷 получить со сканера — если сканер подключён и настроен, в меню добавления есть пункт сканирования;
  • 📋 вставить из буфера — скопировали скриншот, нажали «Создать из буфера обмена»;
  • 🖱 перетащить мышью — ряд форм принимает файл, брошенный прямо в область присоединённых файлов.

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

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

Прикрепление изображения к документу

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

Типовые случаи:

  • скан бумажной накладной или акта — к документу поступления/реализации;
  • чеки и фото авансовых расходов — к авансовому отчёту;
  • фото брака или комплектации — к документу приёмки.

Порядок действий:

  1. Проведите и запишите документ (к непроведённому новому документу прикрепить файл не всегда возможно — сначала запишите).
  2. Откройте команду «Присоединённые файлы» в навигации формы документа.
  3. Добавьте фото с диска, из буфера или со сканера — как описано выше.

Если скан нужен как официальное приложение к электронному документу, это уже не присоединённый файл, а вложение в ЭДО. Присоединённые файлы — для внутреннего хранения, они не уходят контрагенту.

Массовая загрузка фотографий товаров

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

Просто сложить пачку файлов к одному объекту. В форме присоединённых файлов выделите в диалоге выбора сразу несколько изображений (с Ctrl или Shift) либо перетащите группу мышью. Все добавятся за один раз.

Привязать картинки к товарам по имени файла. Это уже подбор: файл арт-10234.jpg должен лечь в карточку товара с артикулом 10234. Штатно такой автоподбор есть не в каждой конфигурации, поэтому варианта два:

  • если в вашей конфигурации (чаще УТ, Розница, управление сайтом) есть обработка загрузки изображений — назовите файлы по коду или артикулу и запустите её, указав папку;
  • если встроенной обработки нет — задачу решают внешней обработкой под вашу базу (способ для разработчика, см. ниже).

Подготовьте файлы заранее:

Перед массовой загрузкой
Выполнено: 0 / 5

Массовая загрузка пишет в базу сотни объектов. Перед запуском сделайте резервную копию — откатить одну неудачную пакетную операцию проще, чем чистить вручную.

Программная загрузка изображения для разработчика

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

Прочитать файл с диска и получить двоичные данные:

ДвоичныеДанные = Новый ДвоичныеДанные("C:\photo\tovar.jpg");

Дальше вариантов два.

Записать в реквизит типа «Хранилище значения». Если у объекта есть реквизит для картинки (тип ХранилищеЗначения), данные кладут в него:

Объект.Фото = Новый ХранилищеЗначения(ДвоичныеДанные);
Объект.Записать();

Чтобы показать такую картинку на форме, используют элемент «Поле картинки», связанный с реквизитом, и тип Картинка:

Картинка = Новый Картинка(ДвоичныеДанные);

Добавить как присоединённый файл. В конфигурациях на Библиотеке стандартных подсистем присоединёнными файлами управляет отдельная подсистема «Работа с файлами». Добавление файла к объекту выполняется её серверными методами — точные сигнатуры смотрите в синтакс-помощнике и общем модуле работы с файлами вашего релиза, чтобы не угадывать имена параметров.

Для картинки в печатной форме двоичные данные грузят в макет через тип Картинка и выводят в область макета. Отдельно в карточку её при этом класть не нужно.

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

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

Оптимизация хранения: тома на диске вместо тела базы

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

Решение штатное — хранение файлов в томах на диске. База хранит только ссылку, а сами файлы лежат в каталоге файловой системы.

Где включить (в Бухгалтерии 3.0 и УТ 11): Администрирование → Настройки работы с файлами. Там:

  • включите хранение в томах на диске и задайте каталог тома;
  • задайте максимальный размер файла, чтобы случайно не залили гигабайтный ролик;
  • при необходимости включите автоматическое сжатие.
ХранениеПлюсМинус
В базе данныхничего не настраивать, всё в одной копиибаза быстро растёт, дольше бэкап
В томах на дискебаза лёгкая, файлы отдельнотом нужно бэкапить отдельно и следить за доступом

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

Для веса фото правило простое: товарные картинки сжимайте до 800–1200 px по длинной стороне. Разницы на экране не видно, а место и трафик экономятся в разы.

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

Типичные ошибки при добавлении фото

Эти промахи всплывают чаще всего — и большинство видно ещё до загрузки.

  • 🧩 Картинка не отображается после загрузки. Обычно причина в формате. 1С уверенно показывает JPG, PNG, GIF, BMP. Экзотику (HEIC с айфона, RAW) конвертируйте в JPG.
  • 📦 Файл не грузится — «превышен размер». Сработало ограничение из настроек работы с файлами. Либо сожмите фото, либо поднимите лимит в настройках.
  • 🔒 Нет кнопки добавления или команды присоединённых файлов. У пользователя нет прав на работу с файлами либо роль не включает присоединённые файлы. Решается в правах доступа, а не в карточке.
  • 🖼 Фото добавили, а в прайсе его нет. Снимок положили в присоединённые файлы, а в печать идёт картинка из карточки номенклатуры. Это разные места — перенесите в карточку.
  • 💾 База внезапно выросла на гигабайты. Фото копятся внутри базы. Переведите хранение в тома на диске.

Если фото открывается криво или не целиком, дело часто не в 1С, а в самом файле — он битый. Откройте его просмотрщиком вне 1С: не открылся там — не откроется и здесь.

Частые вопросы

Какие форматы изображений поддерживает 1С?
Надёжно отображаются JPG, PNG, GIF и BMP. Прочие форматы лучше заранее конвертировать в JPG или PNG — так точно откроется и на тонком, и на веб-клиенте.
Где физически хранятся загруженные фото?
По умолчанию — внутри базы данных. Если в настройках работы с файлами включены тома на диске, файлы лежат в заданном каталоге, а в базе остаётся только ссылка.
Можно ли добавить фото сразу со сканера или камеры?
Со сканера — да, если он подключён и настроен: пункт сканирования есть в меню добавления присоединённого файла. Прямой съёмки с камеры в типовых конфигурациях нет, фото делают отдельно и загружают файлом.
Как удалить или заменить ранее добавленное фото?
Откройте список присоединённых файлов (или область картинок в карточке), выделите файл и удалите его. Для замены удобнее загрузить новый и отметить его основным, а старый убрать.
Уйдёт ли присоединённое фото контрагенту при обмене?
Нет. Присоединённые файлы — внутреннее хранилище. Чтобы изображение попало партнёру, его прикладывают вложением в электронном документообороте, а не через присоединённые файлы.