Почему не загружаются картинки номенклатуры в 1С:УНФ (Фреш) и как это исправить

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой
← На главную

При работе в облачном сервисе 1С:Фреш пользователи часто сталкиваются с проблемой: штатный механизм загрузки данных из внешних источников (например, из файла Excel) отказывается подгружать изображения номенклатуры, хотя текстовые данные (артикулы, наименования, цены) загружаются без ошибок. Ситуация осложняется тем, что программа не выдает никаких предупреждений, создавая иллюзию успешного выполнения операции, в то время как карточки товаров остаются без картинок.

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

Причина проблемы: Клиент-серверная архитектура и ограничения облака

Выясним причину, по которой привычный способ указания пути вроде D:\Картинки\Товар1.jpg оказывается нерабочим. В локальной версии 1С, когда база данных находится на вашем компьютере или в локальной сети, сервер 1С имеет физический доступ к вашим дискам. Однако в случае с 1С:Фреш база данных исполняется на удаленных серверах в дата-центре.

Проанализируем ситуацию: когда вы запускаете обработку "Загрузка данных из внешнего источника", вы выбираете файл на своем компьютере. Тонкий клиент считывает данные из Excel и передает их на сервер. Но когда очередь доходит до картинок, сервер получает лишь строку с путем. Пытаясь найти файл D:\Картинки\Товар1.jpg, сервер ищет его на своем собственном диске в дата-центре, где такого файла, разумеется, не существует. Именно поэтому загрузка «проглатывает» данные без ошибок, но результат остается нулевым.

Важное замечание: использование локального адреса 127.0.0.1 также не поможет, так как для облачного сервера этот адрес означает "обратиться к самому себе", а не к вашему локальному компьютеру.

Решение №1: Использование прямых URL-ссылок

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

  1. Подготовка изображений: Соберите все необходимые фотографии. Рекомендуется оптимизировать их размер (не более 1000-1200 пикселей по большой стороне), чтобы не замедлять работу базы и не превышать лимиты хранилища.
  2. Размещение в сети: Загрузите картинки на любой доступный веб-сервер, FTP или хостинг картинок. Главное условие — ссылка должна быть прямой (заканчиваться на .jpg или .png).
  3. Формирование файла загрузки: В колонке Картинка вашего файла Excel вместо пути к диску укажите полный URL-адрес.

Пример корректного заполнения ячейки в Excel:

https://mysite.ru/images/catalog/article_12345.jpg

После этого при загрузке сервер 1С инициирует GET-запрос к указанному адресу, скачает файл во временное хранилище и привяжет его к карточке номенклатуры. Проверить результат можно будет сразу в справочнике Номенклатура. Для автоматизации этого процесса подойдёт обработка для загрузки картинок с сайта по ссылкам из Excel в 1С:УНФ.

Решение №2: Использование облачных дисков (Dropbox, Google Drive)

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

Для Dropbox: измените окончание ссылки с dl=0 на raw=1. Например, ссылка: https://www.dropbox.com/s/abcdef/image.jpg?dl=0 Должна превратиться в: https://www.dropbox.com/s/abcdef/image.jpg?raw=1

Для Google Drive: используйте формат прямой ссылки с ID файла: https://drive.google.com/uc?export=view&id=ВАШ_ID_ФАЙЛА

Этот метод требует аккуратности при массовом формировании ссылок в Excel. Рекомендуем использовать функции СЦЕПИТЬ или ПОДСТАВИТЬ для автоматической генерации списка ссылок на основе артикулов товаров.

Технические нюансы кода обработки

Хотя во Фреше мы не можем напрямую менять код типовой обработки, полезно понимать, как работает механизм сопоставления. Если бы мы писали свою обработку, мы бы использовали объект HTTPСоединение для получения данных. Посмотрим на пример кода, который имитирует логику загрузки картинки по URL:


// Пример получения картинки с сервера
НТТР = Новый HTTPСоединение("mysite.ru",,,,, 10, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/images/tovar.jpg");
Ответ = НТТР.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда
    ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные();
    // Далее происходит запись в справочник НоменклатураПрисоединенныеФайлы
КонецЕсли;

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

Дополнительный совет: Сохранение настроек списков

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

  1. Перейдите в раздел Администрирование — Обслуживание — Управление настройками пользователей.
  2. Выделите свои настройки и воспользуйтесь функцией Копирование настроек.
  3. Скопируйте свои настройки на "технического" пользователя (создайте фиктивного пользователя "Бэкап").

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

Резюме

Подводя итог, напомним: если вы работаете в облаке 1С:УНФ, забудьте о загрузке картинок с локального диска C:. Используйте только прямые URL-ссылки. Это гарантирует, что сервер 1С сможет "дотянуться" до файлов и корректно поместить их в базу данных. Тщательно проверяйте формат ссылок в Excel перед запуском загрузки, и процесс пройдет быстро и без ошибок. При необходимости комплексного импорта данных можно использовать решение для загрузки товаров, реквизитов и картинок из Excel в УНФ.

← На главную