![]() |
|
Загрузка картинки в 1С по ссылке | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
12.05.21
✎
12:58
|
Всем доброго дня. УТ 10.3. Подскажите, как программно загружать в 1С картинки из интернета по ссылке в виде https://gmail.com/картинка.jpg ?
|
|||
1
Волшебник
12.05.21
✎
13:02
|
КопироватьФайл(откуда, куда)
Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'. |
|||
2
Tatitutu
12.05.21
✎
13:16
|
Обработка "Загрузка изображений для товара" ver.1.0.07
https://clck.ru/UmQux |
|||
3
MAPATNK2
naïve
12.05.21
✎
13:35
|
(2) Спасибо, разберусь.
|
|||
4
sikuda
12.05.21
✎
14:24
|
(1) Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
На веб-клиенте метод работает только с локальными файлами. |
|||
5
ugorchina
13.05.21
✎
12:15
|
Когда то делал клиенту оформлялку товаров под сайт
на реквизит вешал событие (рев. типа строка) и выполнял проверку вот код проверки доступности картинки СтруктураURI = СтруктураURI(УРЛОсновнойКартинки_); Если СокрЛП(СтруктураURI.Схема) = "https" Тогда Защита = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено); HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,,,,,Защита); Иначе HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт); КонецЕсли; HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере); Попытка Результат = HTTPСоединение.Получить(HTTPЗапрос); Исключение Возврат "Ошибка"; КонецПопытки; Если Результат.КодСостояния >= 400 и Результат.КодСостояния < 500 Тогда Возврат "Ошибка"; КонецЕсли; Если Результат.КодСостояния >= 500 и Результат.КодСостояния < 600 Тогда Возврат "Ошибка"; КонецЕсли; Если Результат.КодСостояния >= 300 и Результат.КодСостояния < 400 Тогда Возврат "Ошибка"; КонецЕсли; Если Результат.КодСостояния < 300 Тогда Возврат "Удача"; КонецЕсли; а вот загрузки СтруктураURI = СтруктураURI(Путь); Если СокрЛП(СтруктураURI.Схема) = "https" Тогда Защита = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено); HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,,,,,Защита); Иначе HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт); КОнецЕсли; HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере); Попытка Результат = HTTPСоединение.Получить(HTTPЗапрос); Исключение КонецПопытки; Если Результат.КодСостояния >= 400 и Результат.КодСостояния < 500 Тогда КонецЕсли; Если Результат.КодСостояния >= 500 и Результат.КодСостояния < 600 Тогда КонецЕсли; // Обрабатываем перенаправление Если Результат.КодСостояния >= 300 и Результат.КодСостояния < 400 Тогда КонецЕсли; Если Результат.КодСостояния < 300 Тогда ДвоичныеДанныеКартинки = Результат.ПолучитьТелоКакДвоичныеДанные(); НовоеИмяФайла = Новый УникальныйИдентификатор(); АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанныеКартинки); ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(Номенклатура,НовоеИмяФайла,СтрЗаменить(".jpg",".",""),ТекущаяДата(),ТекущаяДата(),АдресВременногоХранилищаФайла,"Изображение загружено обработкой конт менеджера"); Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда Если ЭтоОсновнаяКартинка = Истина Тогда НоменклатураОбъект = Номенклатура.ПолучитьОбъект(); НоменклатураОбъект.ФайлКартинки = ПрисоединенныйФайл; НоменклатураОбъект.Записать(); КонецЕсли; КонецЕсли; КонецЕсли; |
|||
6
ugorchina
13.05.21
✎
12:16
|
+(5)
|
|||
7
ugorchina
13.05.21
✎
12:16
|
&НаСервере
Функция СтруктураURI(Знач СтрокаURI) Экспорт СтрокаURI = СокрЛП(СтрокаURI); // схема Схема = ""; Позиция = Найти(СтрокаURI, "://"); Если Позиция > 0 Тогда Схема = НРег(Лев(СтрокаURI, Позиция - 1)); СтрокаURI = Сред(СтрокаURI, Позиция + 3); КонецЕсли; // строка соединения и путь на сервере СтрокаСоединения = СтрокаURI; ПутьНаСервере = ""; Позиция = Найти(СтрокаСоединения, "/"); Если Позиция > 0 Тогда ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1); СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1); КонецЕсли; // информация пользователя и имя сервера СтрокаАвторизации = ""; ИмяСервера = СтрокаСоединения; Позиция = Найти(СтрокаСоединения, "@"); Если Позиция > 0 Тогда СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1); ИмяСервера = Сред(СтрокаСоединения, Позиция + 1); КонецЕсли; // логин и пароль Логин = СтрокаАвторизации; Пароль = ""; Позиция = Найти(СтрокаАвторизации, ":"); Если Позиция > 0 Тогда Логин = Лев(СтрокаАвторизации, Позиция - 1); Пароль = Сред(СтрокаАвторизации, Позиция + 1); КонецЕсли; // хост и порт Хост = ИмяСервера; Порт = ""; Позиция = Найти(ИмяСервера, ":"); Если Позиция > 0 Тогда Хост = Лев(ИмяСервера, Позиция - 1); Порт = Сред(ИмяСервера, Позиция + 1); КонецЕсли; Результат = Новый Структура; Результат.Вставить("Схема", Схема); Результат.Вставить("Логин", Логин); Результат.Вставить("Пароль", Пароль); Результат.Вставить("ИмяСервера", ИмяСервера); Результат.Вставить("Хост", Хост); Результат.Вставить("Порт", ?(Порт <> "", Число(Порт), Неопределено)); Результат.Вставить("ПутьНаСервере", ПутьНаСервере); Возврат Результат; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |