Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Загрузка картинок товара по url Для ут 8 для Беларуси

Загрузка картинок товара по url Для ут 8 для Беларуси
Я
   apdate_minsk
 
11.09.16 - 09:58
Всем привет!
В справочнике номенклатура имеется реквизит URL_Картинки

необходимо создать обработку которая по этому URL добавит картинку как основную в справочнике Номенклатура

но вот не понимаю как это сделать подскажите пожалуйста...
 
 
   apdate_minsk
 
1 - 11.09.16 - 10:00
или просто может опишите что писать в реквизиты справочника 

НоменклатураПрисоедененыеФайлы

и

в реквизит справочника номенклатуры Файлкартинки
   apdate_minsk
 
2 - 11.09.16 - 10:25
вот что начал делать но не догоняю куда и что записывать

помогите

&НаСервере
Процедура ОбработатьНаСервере()
    Выборка = Справочники.Товары.Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа = Ложь Тогда
            Если СокрЛП(Выборка.АдресКартинкиURL) <> "" Тогда
            ЗагрузкаДанныхИзТабличногоДокумента(Выборка.Ссылка,Выборка.АдресКартинкиURL)    
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

&НаСервере
Процедура ЗагрузкаДанныхИзТабличногоДокумента(Ссылка_Спр,URL_Картинки)
Текст = URL_Картинки; 
РасширениеФайла = РасширениеФайла(Текст);
АдресКартинки = СтрЗаменить(Текст, """", "");
ИмяКартинки = ПолучитьИмяКартинки(АдресКартинки);
НовоеИмя = ПолучитьИмяВременногоФайла(РасширениеФайла);
 ПрисоединенныеФайлыМассив = Новый Массив;

Попытка
    КопироватьФайл(АдресКартинки, НовоеИмя); 
    //вставим процедурку из спр

    ИдентификаторФайла = Новый УникальныйИдентификатор;
            
        Файл = Новый Файл(НовоеИмя);
                            
        ВремяИзменения = ТекущаяДата();
        ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения();
        
        ПомещаемыеФайлы = Новый Массив;
        Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, "");
        ПомещаемыеФайлы.Добавить(Описание);
        
        ПомещенныеФайлы = Новый Массив;
                        
     
    УдалитьФайлы(НовоеИмя);
Исключение
 Сообщить("Ошибка при получении картинки, возможно введен неверный URL: адрес изображения должен начинаться с ""http:""");
КонецПопытки;
    
КонецПроцедуры


&НаСервере
Функция РасширениеФайла(ИмяФайла)
    
    Строка = СтрЗаменить(ИмяФайла, ".", Символы.ПС);
    
    Всего = СтрЧислоСтрок(Строка);
    
    Если Всего < 2 Тогда
        Возврат "";
    КонецЕсли;
    
    Возврат СтрПолучитьСтроку(Строка, Всего);
    
КонецФункции
 
&НаСервере
Функция ПолучитьИмяКартинки(АдресКартинки)
    ИмяКартинки = "";
    ПодстрокаПоиска = АдресКартинки;
    Пока Найти(ПодстрокаПоиска,"/")>0 Цикл
        ПодстрокаПоиска = Сред(ПодстрокаПоиска,Найти(ПодстрокаПоиска,"/")+1);
    КонецЦикла;
    ИмяКартинки = Лев(ПодстрокаПоиска,Найти(ПодстрокаПоиска,".")-1);
    Возврат ИмяКартинки;
КонецФункции

теперь как я понимаю необходимо поместить файл в хранилище но не понимаю как и куда все это дело помещать потом
   apdate_minsk
 
3 - 11.09.16 - 10:26
не обращайте внимания на то что справочник называется товары работа с изображениями у него взято из УТ
   apdate_minsk
 
4 - 12.09.16 - 08:45
что ни кто не знает?
   apdate_minsk
 
5 - 12.09.16 - 15:29
Здесь есть кто? ауууу :-)
   apdate_minsk
 
6 - 13.09.16 - 10:56
Всем привет сам справился с данной задачей
если кто то будет искать как это замутить то вот код

все удачи

&НаСервере
Процедура ЗагрузкаДанныхИзТабличногоДокумента(Ссылка_Спр,URL_Картинки)
    Текст = URL_Картинки; 
    РасширениеФайла = РасширениеФайла(Текст);
    АдресКартинки = СтрЗаменить(Текст, """", "");
    ИмяКартинки = ПолучитьИмяКартинки(АдресКартинки);
    НовоеИмя = ПолучитьИмяВременногоФайла(РасширениеФайла);
    ПрисоединенныеФайлыМассив = Новый Массив;
    
    Попытка
        КопироватьФайл(АдресКартинки, НовоеИмя); 
        //вставим процедурку из спр

        ИдентификаторФайла = Новый УникальныйИдентификатор;
        
        Файл = Новый Файл(НовоеИмя);
        
        ВремяИзменения = ТекущаяДата();
        ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения();
        
        ПомещаемыеФайлы = Новый Массив;
        Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, "");
        
        //загрузка /************************

        КартинкаСсылка = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
        КартинкаОбъект = Справочники.НоменклатураПрисоединенныеФайлы.СоздатьЭлемент();
        КартинкаОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;            
        КартинкаОбъект.Наименование = Ссылка_Спр.Код;
        КартинкаОбъект.ВладелецФайла = Ссылка_Спр.Ссылка;
        К1 = Новый Картинка(НовоеИмя, истина);            
        КартинкаОбъект.ФайлХранилище = Новый ХранилищеЗначения(К1.ПолучитьДвоичныеДанные());
        
        КартинкаОбъект.Расширение = "jpg";
        КартинкаОбъект.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
        ФайлК = Новый Файл(НовоеИмя);            
        КартинкаОбъект.Размер = ФайлК.Размер();
        
        
        КартинкаОбъект.Записать();
        КартинкаСсылка = КартинкаОбъект.Ссылка; 
        
        КартинкаСохранить = РегистрыСведений.ПрисоединенныеФайлы.СоздатьНаборЗаписей();
        КартинкаСохранить.Отбор.ПрисоединенныйФайл.Установить(КартинкаОбъект.Ссылка);
        НовыйФайл = КартинкаСохранить.Добавить();
        НовыйФайл.ПрисоединенныйФайл = КартинкаСсылка;
        НовыйФайл.ХранимыйФайл = КартинкаОбъект.ФайлХранилище;
        КартинкаСохранить.Записать();
        
        НовоеЗначение = Ссылка_Спр.ПолучитьОбъект();
        НовоеЗначение.ФайлКартинки = КартинкаСсылка;
        НовоеЗначение.Записать();
        //****************

        УдалитьФайлы(НовоеИмя);
    Исключение
        Сообщить("Ошибка при получении картинки, возможно введен неверный URL: адрес изображения должен начинаться с ""http:""");
    КонецПопытки;
    
КонецПроцедуры

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует