Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Загрузка картинки в 1С по ссылке

Загрузка картинки в 1С по ссылке
Я
   MAPATNK2
 
12.05.21 - 12:58
Всем доброго дня. УТ 10.3. Подскажите, как программно загружать в 1С картинки из интернета по ссылке в виде https://gmail.com/картинка.jpg ?
 
 Партнерская программа EFSOL Oblako
   Волшебник
 
1 - 12.05.21 - 13:02
КопироватьФайл(откуда, куда)

Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
   Tatitutu
 
2 - 12.05.21 - 13:16
Обработка "Загрузка изображений для товара" ver.1.0.07
https://clck.ru/UmQux
   MAPATNK2
 
3 - 12.05.21 - 13:35
(2) Спасибо, разберусь.
   sikuda
 
4 - 12.05.21 - 14:24
(1) Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
На веб-клиенте метод работает только с локальными файлами.
   ugorchina
 
5 - 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",".",""),ТекущаяДата(),ТекущаяДата(),АдресВременногоХранилищаФайла,"Изображение загружено обработкой конт менеджера");
        
        Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда
            Если ЭтоОсновнаяКартинка = Истина Тогда
                НоменклатураОбъект = Номенклатура.ПолучитьОбъект();
                НоменклатураОбъект.ФайлКартинки = ПрисоединенныйФайл;
                НоменклатураОбъект.Записать();                
            КонецЕсли;
        КонецЕсли;    
    КонецЕсли;
   ugorchina
 
6 - 13.05.21 - 12:16
+(5)
   ugorchina
 
7 - 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);
    КонецЕсли;
    
    Результат = Новый Структура;
    Результат.Вставить("Схема", Схема);
    Результат.Вставить("Логин", Логин);
    Результат.Вставить("Пароль", Пароль);
    Результат.Вставить("ИмяСервера", ИмяСервера);
    Результат.Вставить("Хост", Хост);
    Результат.Вставить("Порт", ?(Порт <> "", Число(Порт), Неопределено));
    Результат.Вставить("ПутьНаСервере", ПутьНаСервере);
    
    Возврат Результат;
    
КонецФункции

Список тем форума
 
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.