Имя: Пароль:
1C
1С v8
Загрузка картинок товара по url Для ут 8 для Беларуси
0 apdate_minsk
 
11.09.16
09:58
Всем привет!
В справочнике номенклатура имеется реквизит URL_Картинки

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

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

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

и

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

помогите

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

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

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


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

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

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

все удачи

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