При работе в облачном сервисе 1С:Фреш пользователи часто сталкиваются с проблемой: штатный механизм загрузки данных из внешних источников (например, из файла Excel) отказывается подгружать изображения номенклатуры, хотя текстовые данные (артикулы, наименования, цены) загружаются без ошибок. Ситуация осложняется тем, что программа не выдает никаких предупреждений, создавая иллюзию успешного выполнения операции, в то время как карточки товаров остаются без картинок.
В данной статье мы подробно разберем, почему локальные пути к файлам не работают в облаке, проанализируем архитектурные особенности тонкого клиента и предложим работающие методы массовой загрузки изображений с использованием прямых URL-ссылок.
Выясним причину, по которой привычный способ указания пути вроде D:\Картинки\Товар1.jpg оказывается нерабочим. В локальной версии 1С, когда база данных находится на вашем компьютере или в локальной сети, сервер 1С имеет физический доступ к вашим дискам. Однако в случае с 1С:Фреш база данных исполняется на удаленных серверах в дата-центре.
Проанализируем ситуацию: когда вы запускаете обработку "Загрузка данных из внешнего источника", вы выбираете файл на своем компьютере. Тонкий клиент считывает данные из Excel и передает их на сервер. Но когда очередь доходит до картинок, сервер получает лишь строку с путем. Пытаясь найти файл D:\Картинки\Товар1.jpg, сервер ищет его на своем собственном диске в дата-центре, где такого файла, разумеется, не существует. Именно поэтому загрузка «проглатывает» данные без ошибок, но результат остается нулевым.
Важное замечание: использование локального адреса 127.0.0.1 также не поможет, так как для облачного сервера этот адрес означает "обратиться к самому себе", а не к вашему локальному компьютеру.
Единственный штатный способ заставить облачную 1С:УНФ загрузить картинки из файла — это предоставить серверу ссылки, по которым он сможет самостоятельно скачать изображения из интернета. Рассмотрим алгоритм действий:
.jpg или .png).Картинка вашего файла Excel вместо пути к диску укажите полный URL-адрес.Пример корректного заполнения ячейки в Excel:
https://mysite.ru/images/catalog/article_12345.jpg
После этого при загрузке сервер 1С инициирует GET-запрос к указанному адресу, скачает файл во временное хранилище и привяжет его к карточке номенклатуры. Проверить результат можно будет сразу в справочнике Номенклатура. Для автоматизации этого процесса подойдёт обработка для загрузки картинок с сайта по ссылкам из Excel в 1С:УНФ.
Если у вас нет собственного сайта или 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С предложит очистить настройки для восстановления работоспособности, вы всегда сможете восстановить их из этого "резервного" пользователя, не настраивая отчеты и списки заново.
Подводя итог, напомним: если вы работаете в облаке 1С:УНФ, забудьте о загрузке картинок с локального диска C:. Используйте только прямые URL-ссылки. Это гарантирует, что сервер 1С сможет "дотянуться" до файлов и корректно поместить их в базу данных. Тщательно проверяйте формат ссылок в Excel перед запуском загрузки, и процесс пройдет быстро и без ошибок. При необходимости комплексного импорта данных можно использовать решение для загрузки товаров, реквизитов и картинок из Excel в УНФ.