Загрузка и прикрепление изображений в базе 1С
Содержание
Чаще всего фото в 1С добавляют не туда, где его потом ждут. Картинку кидают в комментарий документа, а она нужна в карточке товара — и в прайсе её нет. Или наоборот: скан акта вставляют в поле номенклатуры, хотя он должен висеть на самом документе.
Добавить изображение , загрузить фотографию, прикрепить картинку — в 1С:Предприятии 8.3 это три разных механизма под три разные задачи. Разберём все пять рабочих способов: от скрепки «Присоединённые файлы» до загрузки через код и переноса картинок в тома на диске, чтобы база не пухла.
Пути ниже даны для типовых конфигураций на управляемых формах («Такси») — Бухгалтерия 3.0, УТ 11, ЗУП 3.1. Названия разделов в вашей базе могут отличаться на один уровень — ориентируйтесь по смыслу.
Пять способов добавить изображение и когда какой нужен
Прежде чем кликать, определитесь, где картинка должна появиться. От этого зависит механизм.
- 📎 Присоединённый файл — универсальный способ. Подходит для любого справочника и документа: скан, фото, PDF висят рядом с объектом. Основной инструмент для первички.
- 🖼 Картинка в карточке — отдельное поле «изображение» у номенклатуры и физлиц. Именно это фото попадёт в прайс, на ценник, выгрузится на сайт.
- 📄 Фото на документе — тот же механизм присоединённых файлов, но привязанный к конкретному документу (накладной, авансовому отчёту).
- 📦 Массовая загрузка — когда картинок сотни: подбор по коду/артикулу или пакетное добавление файлов.
- ⌨️ Программно — для разработчика: запись изображения в реквизит или присоединённый файл из обработки.
Выберите сценарий — дальше показано, что нажимать.
Фото в карточке справочника: номенклатура и физлица
Самый частый запрос — поставить картинку товара. В карточке номенклатуры за это отвечает отдельная область с изображением, а не присоединённые файлы.
- Откройте раздел
Справочники(в УТ 11 —НСИ и администрирование → Номенклатура). - Зайдите в карточку товара.
- Найдите область с картинкой — обычно это квадрат-плейсхолдер в правой части формы или отдельная закладка/ссылка «Картинки».
- Нажмите добавление файла и выберите изображение с диска.
- Если картинок несколько, одну отметьте основной — она пойдёт в печать и выгрузку.
В Управлении торговлей и Рознице у номенклатуры можно хранить несколько изображений и выбирать главное. В Бухгалтерии карточка проще: как правило, одно изображение, которое используется в прайс-листе.
Основное изображение номенклатуры — это не просто украшение карточки. Оно подставляется в печатные формы прайса и ценников, а при подключённой выгрузке попадает на сайт или в личный кабинет. Поэтому для товаров держите фото именно здесь, а не в присоединённых файлах: иначе в прайсе будет пусто, хотя снимок в базе есть.
Для фотографии человека механизм другой. В справочнике физических лиц (он общий для Бухгалтерии и ЗУП) отдельного поля «фото» в карточке обычно нет — снимок прикрепляют как присоединённый файл. Это следующий раздел.
Не путайте справочник «Сотрудники» и «Физические лица». Фото логично держать на физлице: один человек может быть оформлен несколькими сотрудниками (основное место, совместительство), а физлицо одно.
Присоединённые файлы: скан и фото к любому объекту
Присоединённые файлы — штатная подсистема, которая работает почти для всех справочников и документов. Это главный способ приложить скан или фото, когда отдельного поля «картинка» у объекта нет.
Как добавить:
- Откройте нужный элемент — карточку физлица, контрагента, договора.
- В панели навигации формы (список ссылок слева или сверху) найдите команду «Присоединённые файлы». Иногда она вынесена кнопкой-скрепкой на командную панель.
- Нажмите «Добавить» → «Файл с диска» и выберите изображение.
- Файл загрузится и будет храниться вместе с объектом.
Тем же способом картинку можно не выбирать с диска, а:
- 📷 получить со сканера — если сканер подключён и настроен, в меню добавления есть пункт сканирования;
- 📋 вставить из буфера — скопировали скриншот, нажали «Создать из буфера обмена»;
- 🖱 перетащить мышью — ряд форм принимает файл, брошенный прямо в область присоединённых файлов.
Присоединённый файл по умолчанию хранится внутри базы данных. Десяток фото погоды не сделает, а вот тысячи сканов за год заметно раздуют базу. Как это обойти — в разделе про тома на диске.
У присоединённого файла есть версии и блокировка на редактирование: можно открыть, поправить, сохранить новую версию — прежние останутся в истории. Для фото это редко нужно, но знать полезно.
Прикрепление изображения к документу
Фото к документу прикрепляется тем же механизмом присоединённых файлов, что и к справочнику, — поэтому отдельного «особого» порядка здесь нет. Разница в одном: привязка идёт к конкретному документу.
Типовые случаи:
- скан бумажной накладной или акта — к документу поступления/реализации;
- чеки и фото авансовых расходов — к авансовому отчёту;
- фото брака или комплектации — к документу приёмки.
Порядок действий:
- Проведите и запишите документ (к непроведённому новому документу прикрепить файл не всегда возможно — сначала запишите).
- Откройте команду «Присоединённые файлы» в навигации формы документа.
- Добавьте фото с диска, из буфера или со сканера — как описано выше.
Если скан нужен как официальное приложение к электронному документу, это уже не присоединённый файл, а вложение в ЭДО. Присоединённые файлы — для внутреннего хранения, они не уходят контрагенту.
Массовая загрузка фотографий товаров
Когда фотографий сотни — по одной через карточку их не загружают. Есть два подхода, и выбор зависит от того, нужно ли привязать картинки к конкретным товарам.
Просто сложить пачку файлов к одному объекту. В форме присоединённых файлов выделите в диалоге выбора сразу несколько изображений (с Ctrl или Shift) либо перетащите группу мышью. Все добавятся за один раз.
Привязать картинки к товарам по имени файла. Это уже подбор: файл арт-10234.jpg должен лечь в карточку товара с артикулом 10234. Штатно такой автоподбор есть не в каждой конфигурации, поэтому варианта два:
- если в вашей конфигурации (чаще УТ, Розница, управление сайтом) есть обработка загрузки изображений — назовите файлы по коду или артикулу и запустите её, указав папку;
- если встроенной обработки нет — задачу решают внешней обработкой под вашу базу (способ для разработчика, см. ниже).
Подготовьте файлы заранее:
Массовая загрузка пишет в базу сотни объектов. Перед запуском сделайте резервную копию — откатить одну неудачную пакетную операцию проще, чем чистить вручную.
Программная загрузка изображения для разработчика
Если фото нужно загружать из обработки, обмена или по кнопке на форме, картинку добавляют кодом. В основе — двоичные данные файла.
Прочитать файл с диска и получить двоичные данные:
ДвоичныеДанные = Новый ДвоичныеДанные("C:\photo\tovar.jpg");
Дальше вариантов два.
Записать в реквизит типа «Хранилище значения». Если у объекта есть реквизит для картинки (тип ХранилищеЗначения), данные кладут в него:
Объект.Фото = Новый ХранилищеЗначения(ДвоичныеДанные);
Объект.Записать();
Чтобы показать такую картинку на форме, используют элемент «Поле картинки», связанный с реквизитом, и тип Картинка:
Картинка = Новый Картинка(ДвоичныеДанные);
Добавить как присоединённый файл. В конфигурациях на Библиотеке стандартных подсистем присоединёнными файлами управляет отдельная подсистема «Работа с файлами». Добавление файла к объекту выполняется её серверными методами — точные сигнатуры смотрите в синтакс-помощнике и общем модуле работы с файлами вашего релиза, чтобы не угадывать имена параметров.
Для картинки в печатной форме двоичные данные грузят в макет через тип Картинка и выводят в область макета. Отдельно в карточку её при этом класть не нужно.
Пара практических оговорок. Загружая двоичные данные из обработки, проверяйте, что путь к файлу доступен на том компьютере, где исполняется серверный код, — на сервере приложений диск C: клиента недоступен. При пакетной записи картинок в цикле не держите открытой транзакцию на весь проход: пишите объекты по одному, иначе долгая транзакция заблокирует других пользователей.
Не усложняйте: если изображение нужно один раз показать в карточке, хватит присоединённого файла без единой строки кода.
Оптимизация хранения: тома на диске вместо тела базы
Главная проблема с картинками не в том, как их добавить, а в том, что они делают с размером базы. Каждый файл внутри базы данных — это её вес, время резервного копирования и нагрузка на сервер.
Решение штатное — хранение файлов в томах на диске. База хранит только ссылку, а сами файлы лежат в каталоге файловой системы.
Где включить (в Бухгалтерии 3.0 и УТ 11): Администрирование → Настройки работы с файлами. Там:
- включите хранение в томах на диске и задайте каталог тома;
- задайте максимальный размер файла, чтобы случайно не залили гигабайтный ролик;
- при необходимости включите автоматическое сжатие.
| Хранение | Плюс | Минус |
|---|---|---|
| В базе данных | ничего не настраивать, всё в одной копии | база быстро растёт, дольше бэкап |
| В томах на диске | база лёгкая, файлы отдельно | том нужно бэкапить отдельно и следить за доступом |
Если включаете тома, когда в базе уже лежат сотни файлов, запланируйте перенос существующих файлов в тома (штатная операция в настройках работы с файлами). И не забудьте включить каталог тома в резервное копирование — иначе картинки в бэкапе базы не окажутся.
Для веса фото правило простое: товарные картинки сжимайте до 800–1200 px по длинной стороне. Разницы на экране не видно, а место и трафик экономятся в разы.
Отдельно стоит договориться о дисциплине внутри команды. Если каждый менеджер льёт фото телефоном без сжатия, база за год вырастет на десятки гигабайт даже с томами — просто вместо тела базы распухнет каталог тома. Полезно задать единый лимит размера файла в настройках и один раз показать сотрудникам, как уменьшить снимок перед загрузкой. Это дешевле, чем потом чистить тысячи тяжёлых картинок.
Типичные ошибки при добавлении фото
Эти промахи всплывают чаще всего — и большинство видно ещё до загрузки.
- 🧩 Картинка не отображается после загрузки. Обычно причина в формате. 1С уверенно показывает
JPG,PNG,GIF,BMP. Экзотику (HEIC с айфона, RAW) конвертируйте в JPG. - 📦 Файл не грузится — «превышен размер». Сработало ограничение из настроек работы с файлами. Либо сожмите фото, либо поднимите лимит в настройках.
- 🔒 Нет кнопки добавления или команды присоединённых файлов. У пользователя нет прав на работу с файлами либо роль не включает присоединённые файлы. Решается в правах доступа, а не в карточке.
- 🖼 Фото добавили, а в прайсе его нет. Снимок положили в присоединённые файлы, а в печать идёт картинка из карточки номенклатуры. Это разные места — перенесите в карточку.
- 💾 База внезапно выросла на гигабайты. Фото копятся внутри базы. Переведите хранение в тома на диске.
Если фото открывается криво или не целиком, дело часто не в 1С, а в самом файле — он битый. Откройте его просмотрщиком вне 1С: не открылся там — не откроется и здесь.