![]() |
![]() |
![]() |
|
Загрузка картинки в спр номенклатура | ☑ | ||
---|---|---|---|---|
0
sdaf
02.04.09
✎
17:16
|
пытаюсь загрузить картинки к товару из инета:
Сервер=СтрЗаменить(Картинко,"http://www.",""); Соединение=Новый HTTPСоединение("ХХХ.ru"); ИмяФайла=Прав(Сервер,стрДлина(Сервер)-17); ИмяВременногоФайла=ПолучитьИмяВременногоФайла(".jpg"); Соединение.Получить(ИмяФайла,ИмяВременногоФайла); СоздатьКаталог(КаталогПрограммы()+"Pic"); ИтогоИмяФайлы=КаталогПрограммы() +"Pic\"+Сч+".jpg"; ПереместитьФайл(ИмяВременногоФайла,ИтогоИмяФайлы); ДопХар = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); ДопХар.ВидДанных=Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; ДопХар.ИмяФайла=Строка(Сч)+".jpg"; ДопХар.Хранилище = Новый ХранилищеЗначения(ИтогоИмяФайлы, Новый СжатиеДанных); ДопХар.Объект = ТекущийЭлеменд; ДопХар.Записать(); НовЭл.ОсновноеИзображение=ДопХар.Ссылка; картинка копируется куда надо,в нужном каталоге она есть, в хранилище доп инф появляется элемент, с привязкой к нужному элементу номенклатуры, но в карточке товара картинки нет, и если нажать просмотр из ХранилищеДополнительнойИнформации то пишет "неверный тип данных: строка". Подскажите что я делаю не так... |
|||
1
ТелепатБот
гуру
02.04.09
✎
17:16
|
||||
2
sdaf
02.04.09
✎
17:34
|
нашел ошибочку - забыл записать НовЭл...но при попытке записать пишет вот что
{Форма.Форма(240)}: Ошибка при вызове метода контекста (Записать): Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)! |
|||
3
sdaf
02.04.09
✎
17:52
|
так, новЭл я записал, но при открытии из ХранилищеДополнительнойИнформации то все равно пишет "неверный тип данных: строка", а при открытии элемента спр номенклатура пишет "Ошибка при установке значения атрибута контекста (Картинка). Несоответствие типов"...час от часу
|
|||
4
sdaf
02.04.09
✎
18:14
|
а если вместо
ДопХар.Хранилище = Новый ХранилищеЗначения(ИтогоИмяФайлы, Новый СжатиеДанных); написать Хранилище= Новый ХранилищеЗначения(ИтогоИмяФайлы, Новый СжатиеДанных); ДопХар.Хранилище =Хранилище.Получить(); тогда в элемент заходит внтурь, но пишет тоже самое... |
|||
5
sdaf
03.04.09
✎
10:14
|
это что мне так никто и не скажет ничего?
|
|||
6
SMakcik
03.04.09
✎
10:17
|
а нафиг ты имя файла указываешь? если у тебя источник Хранилище
|
|||
7
SMakcik
03.04.09
✎
10:24
|
это раз.
не знаю не пробывал как ты, но похоже надо сначала создать картинку а потом упаковать. и напоследок и самое главное: а кто в елемент справочника будет основное изображение записывать? хотя за 500$ запишу |
|||
8
sdaf
03.04.09
✎
10:36
|
>>а нафиг ты имя файла указываешь? если у тебя источник Хранилище
не очень понял, я же новый объект создаю ДопХар.Хранилище = Новый ХранилищеЗначения(ИтогоИмяФайлы, Новый СжатиеДанных); по пути ИтогоИмяФайлы есть картинка... >>а кто в елемент справочника будет основное изображение записывать? в элемент я записал, все нормально: Хранилище = Новый ХранилищеЗначения(ИтогоИмяФайлы, Новый СжатиеДанных); ДопХар.Хранилище = Хранилище.Получить(); ДопХар.Объект = ТекущийЭлеменд; ДопХар.Записать(); СотрСсылка = Справочники.Номенклатура.НайтиПоКоду(ТекущийЭлеменд.Код); ТоварС=СотрСсылка.ПолучитьОбъект(); ТоварС.ОсновноеИзображение=Хранилище.Получить(); ТоварС.Записать(); |
|||
9
sdaf
03.04.09
✎
10:45
|
может вот тут
ДопХар.Хранилище = Новый ХранилищеЗначения(ИтогоИмяФайлы, Новый СжатиеДанных); в ИтогоИмяФайлы вместо пути нужно новый объект картинка создавать? |
|||
10
SMakcik
03.04.09
✎
10:47
|
(8)
ну ты даешь, какого ... ты текст сжимаешь и записываешь так надо Новый ХранилищеЗначения(Новый ДвоичныеДанные(....), ...); или Новый ХранилищеЗначения(Новый Картинка(....),); |
|||
11
SMakcik
03.04.09
✎
10:51
|
+(10) а лучше
ДопХар = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); ДопХар.ВидДанных=Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл; ДопХар.ИмяФайла=Строка(Сч)+".jpg"; ДопХар.Объект = ТекущийЭлеменд; ДопХар.Записать(); Но только надо переписать отображение немного. Если ОсновноеИзображение.Получить().ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл Тогда ПолеИзображения = Новый Картинка(ПолучиИмяФайла,); Иначе ПолеИзображения = ОсновноеИзображение.Получить(); КонецЕсли; |
|||
12
SMakcik
03.04.09
✎
10:51
|
В (11) не надо хранить весь геморой в базе и она дуться не будет.
|
|||
13
sdaf
03.04.09
✎
11:24
|
(12) спасибо тебе добрый человек! Действительно с текстом тупанул, я в 8ке чайник ваще, сделал вот так:
Сервер=СтрЗаменить(Картинко,"http://www.",""); Соединение=Новый HTTPСоединение("detki-konfetki.ru"); ИмяФайла=Прав(Сервер,стрДлина(Сервер)-17); ИмяВременногоФайла=ПолучитьИмяВременногоФайла(".jpg"); Соединение.Получить(ИмяФайла,ИмяВременногоФайла); СоздатьКаталог(КаталогПрограммы()+"Pic"); ИтогоИмяФайлы=КаталогПрограммы() +"Pic\"+Сч+".jpg"; ПереместитьФайл(ИмяВременногоФайла,ИтогоИмяФайлы); ДопХар = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); ДопХар.ВидДанных=Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; ДопХар.ИмяФайла=Строка(Сч)+".jpg"; Хранилище = Новый ХранилищеЗначения(Новый Картинка(ИтогоИмяФайлы, истина), Новый СжатиеДанных); ДопХар.Хранилище = Хранилище.Получить(); ДопХар.Объект = ТекущийЭлеменд; ДопХар.Записать(); СотрСсылка = Справочники.Номенклатура.НайтиПоКоду(ТекущийЭлеменд.Код); ТоварС=СотрСсылка.ПолучитьОбъект(); ТоварС.ОсновноеИзображение=ДопХар.Ссылка; ТоварС.ОсновноеИзображение=Хранилище.Получить(); ТоварС.Записать(); в все равно хрен! нету в хранилище картинки....может через Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл попробывать... |
|||
14
sdaf
03.04.09
✎
11:46
|
вообщем я её победил, вместо
Хранилище = Новый ХранилищеЗначения(Новый Картинка(ИтогоИмяФайлы, истина), Новый СжатиеДанных); ДопХар.Хранилище = Хранилище.Получить(); написал ДопХар.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ИтогоИмяФайлы, истина), Новый СжатиеДанных); и все заработало, спасибо SMakcik! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |