Имя: Пароль:
1C
1С v8
Проблема с подгрузкой картинок к Номенклатуре в УТ 11
, , ,
0 ZANDER
 
08.01.13
13:06
Загружаю картинки из папки на компе к номенклатуре. Имена файлов картинок являются артикулами. Выполняю следующий код (на клиенте и на сервере):

&НаСервере
Процедура ЗаписьКартинкиВБазу(Артикул, Расширение, ИмяФайла)
   
   Каталог = "C:\Users\213\Desktop\Картинки";
   
   ТоварОбъект = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул).ПолучитьОбъект();
   ТоварСсылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул).Ссылка;
   
   Картинка = Новый Картинка(""+Каталог+"\"+ИмяФайла);
   ХранилищеКартинки = Новый ХранилищеЗначения(Картинка);
   
   НовФайл = Справочники.НоменклатураПрисоединенныеФайлы.СоздатьЭлемент();
   НовФайл.Наименование   = Артикул;
   НовФайл.ВладелецФайла  = ТоварСсылка;
   НовФайл.ФайлХранилище  = ХранилищеКартинки.Получить();
   НовФайл.ТекстХранилище = ""+СокрЛП(ИмяФайла);
   НовФайл.Расширение     = Расширение;
   НовФайл.Записать();
   
   ТоварОбъект.ФайлКартинки = НовФайл.Ссылка;
   ТоварОбъект.Записать();
КонецПроцедуры

//------------------------------------------------------------------------            
&НаКлиенте
Процедура ЗагрузитьФотографии(Команда)
   
   Каталог = "C:\Users\213\Desktop\Картинки";
   
   Файлы = НайтиФайлы(Каталог, "*.*");
   Для Каждого Файл из Файлы Цикл    
       //Сообщить(""+Файл.Имя+", "+Файл.ИмяБезРасширения+", "+Файл.Расширение);
       Расширение = СтрЗаменить(Файл.Расширение, ".", "");
       ЗаписьКартинкиВБазу(""+СокрЛП(Файл.ИмяБезРасширения), Расширение, ""+СокрЛП(Файл.Имя));
   КонецЦикла;
       
КонецПроцедуры



Однако, после выполнения, при открытии элемента номенклатуры сообщается об ошибке, что файл картинки не найден на сервере. В чем может быть проблема?
1 ZANDER
 
08.01.13
13:07
понятно, что главная процедура - это клиентская процедура "ЗагрузитьФотографии"
2 Капитан О
 
08.01.13
13:08
просто у тебя не найден на сервере файл картинки
3 ZANDER
 
08.01.13
14:05
Неужели никто не подгружал еще картинки в 11-ю УТ? Поделитесь нюансами. Что я могу подправить в коде, чтобы картинки все таки были найдены "на сервере"?
4 Мимохожий Однако
 
08.01.13
14:08
Грузишь в справочник НовФайл.ФайлХранилище, а получаешь из папки?!
5 ZANDER
 
08.01.13
14:12
(4) да
6 Мимохожий Однако
 
08.01.13
14:12
Так и получай из хранилища )))
7 ZANDER
 
08.01.13
14:17
(6) я не понимаю, что Вы хотите сказать. Я выполняю код в ожидании того, что по его выполнении файлы картинок загрузятся в БД. Однако, после выполнения этого кода, при открытии элемента справочника Номенклатуры позникает системная ошибка:

{ОбщийМодуль.ПрисоединенныеФайлы.Модуль(182)}: Ошибка открытия файла: файл не найден на сервере.
Возможно файл удален антивирусной программой.
Обратитесь к администратору.

вот в чем мб дело?
8 ZANDER
 
08.01.13
14:18
у меня сервер и клиент один и тот же комп
9 hhhh
 
08.01.13
14:28
(8) ну значит прав нет на эту папку у сервера 1с
10 Мимохожий Однако
 
08.01.13
14:31
Проверь вот этот кусок
Картинка = Новый Картинка(""+Каталог+"\"+ИмяФайла);
   ХранилищеКартинки = Новый ХранилищеЗначения(Картинка);
Есть уверенность, что там файлы с картинками?
11 Мимохожий Однако
 
08.01.13
14:33
Посмотри общий модуль ПрисоединенныйФайлыКлиент. Логичнее взять велосипед оттуда.
12 banco
 
08.01.13
15:57
(0) данные справочника НоменклатураПрисоединенныеФайлы хранится в регистре сведений ПрисоединенныеФайлы, ответ (11) тебе в помощь
13 ZANDER
 
16.01.13
03:10
Спасибо (11)МимохожийОднако и (12)banco
Все сделал, все загрузил. Картинки появились в справочнике сразу.
В коде я заменил

Картинка = Новый Картинка(""+Каталог+"\"+ИмяФайла);

на

Картинка = Новый ДвоичныеДанные(""+Каталог+"\"+ИмяФайла);

а также еще кой-чего и добавил запись в регистр сведений ПрисоединенныеФайлы

Спасибо