8.х Алгоритм загрузки изображений из excel по ссылке URL в реквизит основное изображение

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем nikioioio, 23 мар 2016.

  1. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Есть стандартная обработка "ЗагрузкаДанныхИзТабличногоДокумента" В событии при записи описан алгоритм:

    НомерСтолбцаИзображение = 3;
    НомерСтолбцаОписаниеИзображение = 4;


    ЗапросСуществующих = Новый Запрос();
    ЗапросСуществующих.Текст = "
    |ВЫБРАТЬ
    | ХранилищеДополнительнойИнформации.Ссылка
    |ИЗ
    | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    | ХранилищеДополнительнойИнформации.Объект = &Объект
    | И ХранилищеДополнительнойИнформации.Наименование = &Наименование";

    Объект.Записать();

    ФайлКартинки = Новый Файл(СокрЛП(ТекстыЯчеек[НомерСтолбцаИзображение]));
    Предупреждение(ФайлКартинки.Существует());
    Если ФайлКартинки.Существует() Тогда
    Предупреждение("!");
    ЗапросСуществующих.УстановитьПараметр("Объект", Объект.Ссылка);
    ЗапросСуществующих.УстановитьПараметр("Наименование", СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]));
    Выборка = ЗапросСуществующих.Выполнить().Выбрать();
    Если Выборка.Количество() <= 0 Тогда
    Предупреждение("!!");
    ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
    ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
    ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]),Новый СжатиеДанных);
    ХранилищеОбъект.Объект = Объект.Ссылка;
    ХранилищеОбъект.Наименование = СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]);
    ХранилищеОбъект.ИмяФайла = ТекстыЯчеек[НомерСтолбцаИзображение];
    ХранилищеОбъект.Записать();
    Объект.ОсновноеИзображение=ХранилищеОбъект.Ссылка;
    КонецЕсли;
    КонецЕсли;


    Помогите переделать алгоритм так, чтобы принимались URL Ссылки вместо локальных ссылок типа C:\...
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    А вы URL вообще где-нибудь в экселе сохраняете ?
  3. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    да
    --- Объединение сообщений, 23 мар 2016 ---
    Файл .xls
    --- Объединение сообщений, 23 мар 2016 ---
    Приложил файл

    Вложения:

  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну и пихайте ее в строку. Чтобы получить из www нужно использовать post-запросы.
  5. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    дк вот он и не может ее определить как картинку. С локальным путем работает, а с ссылкой не определяет.
    --- Объединение сообщений, 23 мар 2016 ---
    Ткните пальцем куда в алгоритм какую строку вписать в моем случае.
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Сначала картинку получайте через HTTPЗапрос
  7. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    файлизСети = Новый HTTPЗапрос([НомерСтолбцаИзображение]);
    так?
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Вы в СП читали по поводу HTTPЗапрос и что там передавать нужно ?
  9. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    первый аргумент это адрес ресурса, второй - заголовки
    --- Объединение сообщений, 23 мар 2016 ---
    адрес это я так понимаю строка c http. а что такое заголовки?
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Заголовки можно не указывать. Вот в первом аргументе и обращайтесь по адресу картинки. Отладчиком посмотрите что вам вернет эта функция. Скорее всего двоичные данные, вот их уже потом добавляйте в печатную форму.
  11. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    ну вот я и написал в моем случае же строка http это НомерСтолбцаИзображение . Я ее и указал в аргументе.
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    В отладчике смотрите, корректный ли адрес, с которого хотите утянуть картинку.
  13. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Код:
    НомерСтолбцаИзображение = 1;
    НомерСтолбцаОписаниеИзображение = 4;
    
    
    
    ЗапросСуществующих = Новый Запрос();
    ЗапросСуществующих.Текст = "
    |ВЫБРАТЬ
    |    ХранилищеДополнительнойИнформации.Ссылка
    |ИЗ
    |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    |    ХранилищеДополнительнойИнформации.Объект = &Объект
    |    И ХранилищеДополнительнойИнформации.Наименование = &Наименование";
    
    Объект.Записать();
    Сервер  ="www.partners.eksmo.ru";
    Расширение  =".jpg" ;
    ИмяФайлаИсточника=  "/images/ishopcover/ITD000000000210246_cover1.jpg" ;
        Соединение=Новый HTTPСоединение(Сервер);
    ИмяВременногоФайла=ПолучитьИмяВременногоФайла(Расширение);
    Соединение.Получить(ИмяФайлаИсточника, ИмяВременногоФайла);
    
    
    
        ЗапросСуществующих.УстановитьПараметр("Объект", Объект.Ссылка);
        ЗапросСуществующих.УстановитьПараметр("Наименование", СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]));
        Выборка = ЗапросСуществующих.Выполнить().Выбрать();
        Если Выборка.Количество() <= 0 Тогда
            Предупреждение("!!");
            ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
            ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
            ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]),Новый СжатиеДанных);
            ХранилищеОбъект.Объект = Объект.Ссылка;
            ХранилищеОбъект.Наименование = СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]);
            ХранилищеОбъект.ИмяФайла = ТекстыЯчеек[НомерСтолбцаИзображение];
            ХранилищеОбъект.Записать();
            Объект.ОсновноеИзображение=ХранилищеОбъект.Ссылка;
        КонецЕсли;
    так?
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Отладчиком пройдитесь и узнаете, так ли это. Посмотрите так же, действительно ли в ИмяВременногоФайла хранится картинка.
  15. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    А вы можете написать? Буду благодарна)
  16. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Я не даю рыбу, а даю удочку:). Толка мало будет, если я весь код распишу. Опыт появляется тогда, когда сами до этого допрете:)
  17. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    а если я их загружу с помощью макроса в изображения можно как нибудь в обработке ЗагрузкаДанныхИзТабличногоДокумента отобразить их и загрузить?
  18. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Можно. Только зачем усложнять себе жизнь?
  19. TopicStarter Overlay
    nikioioio
    Offline

    nikioioio

    Регистрация:
    29 апр 2014
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    макрос я уже написал, Подскажите очень нужно.Я вас отблагодарю. Нужно на сайт загрузить много инфы
    --- Объединение сообщений, 23 мар 2016 ---
    макрос я уже написал, Подскажите очень нужно.Я вас отблагодарю. Нужно на сайт загрузить много инфы
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Теперь вам нужно подключиться экселю, получить картинку в двоичном формате, преобразовать ее к нормальному файлу (jpg например) и уже закидывать куда нужно. Теперь вот вы усложнили себе задачу :)
Похожие темы
  1. Dimka77
    Ответов:
    7
    Просмотров:
    596
  2. m_aka
    Ответов:
    7
    Просмотров:
    1.007
  3. Aparatus
    Ответов:
    8
    Просмотров:
    2.844
  4. ифкпфт009
    Ответов:
    44
    Просмотров:
    3.020
  5. kittybello
    Ответов:
    8
    Просмотров:
    402
Загрузка...

Поделиться этой страницей