Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УТ11: Выгрузка картинки номенклатуры в файл

УТ11: Выгрузка картинки номенклатуры в файл
Я
   Manonegro
 
02.11.12 - 13:41
Всем форумчанам физкульт-привет!
Прошу помощи по выгрузке изображения элемента номенклатуры в файл. Пишу:


       ПутьКартинки = Выборка.ФайлКартинки;
       Если ЗначениеЗаполнено(ПутьКартинки) Тогда
           Картинка = ПутьКартинки.ФайлХранилище.Получить();
           Картинка.Записать(ПутьВыгрузки + "\Pictures\" + КодНоменклатуры + "." + ПутьКартинки.Расширение);
       КонецЕсли;

И... что-то не выходит! Прошу по голове сразу не бить.
   Heckfy
 
1 - 02.11.12 - 13:42
Постав в отладчике точку останова перед
Картинка.Записать(ПутьВыгрузки + "\Pictures\" + КодНоменклатуры + "." + ПутьКартинки.Расширение);
посмотри, что там у тебя на самом деле.
   Нуф-Нуф
 
2 - 02.11.12 - 13:43
а что не выходит?
   Wobland
 
3 - 02.11.12 - 13:46
>И... что-то не выходит!
явно где-то не так
   banco
 
4 - 02.11.12 - 13:49
что такое ФайлКартинки?
   Manonegro
 
5 - 02.11.12 - 14:07
ФайлКартинки - реквизит справочника Номенклатура с типом СправочникСсылка.НоменклатураПрисоединенныеФайлы
   Manonegro
 
6 - 02.11.12 - 14:11
Поставил точку останова: Картинка - тип значения Неопределено.
   banco
 
7 - 02.11.12 - 14:13
сама картинка храниться в регистре сведений ПрисоединенныеФайлы
   Manonegro
 
8 - 02.11.12 - 14:14
И далее следует: Значение не является значением объектного типа (Записать).
   Manonegro
 
9 - 02.11.12 - 14:15
(7)
А как её оттуда достать?
   Wobland
 
10 - 02.11.12 - 14:17
(9) тебе дать пример того, как я файл из РС на форме элемента справочника достаю или всё же от УТ лучше не отходить?
   Manonegro
 
11 - 02.11.12 - 14:26
(10)
Лучше не отходить.
   banco
 
12 - 02.11.12 - 14:28
(9) или запросом или 
Картинка =ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФайлКартинки);
   Manonegro
 
13 - 02.11.12 - 14:36
(12)
Извините, а как в целом это должно выглядеть?
   jump if overflow
 
14 - 02.11.12 - 14:38
Подход какой то древний:

&НаКлиенте
Процедура СохранитьНаДиск(Команда)
    
Если Объект.Ссылка.Пустая() Тогда
        Предупреждение(НСтр("ru = 'Данные не записаны'", "ru"));
        Возврат;
    КонецЕсли;
    
    Если ПустаяСтрока(Объект.ИмяФайла) Тогда
        Предупреждение(НСтр("ru = 'Имя не задано'", "ru"));
        Возврат;
    КонецЕсли;
    
    Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ДанныеФайла");
    ПолучитьФайл(Адрес, Объект.ИмяФайла, Истина);
КонецПроцедуры
   Manonegro
 
15 - 02.11.12 - 14:46
(14)
Что сие?
   Wobland
 
16 - 02.11.12 - 14:46
(15) лекарство. подставь свою ссылку
Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ДанныеФайла");
    ПолучитьФайл(Адрес, Объект.ИмяФайла, Истина);
   Manonegro
 
17 - 02.11.12 - 14:54
(16)
Извините, а можно на примере моего кода? Что-то ничего не могу понять.
   Wobland
 
18 - 02.11.12 - 14:55
(17) не, я УТ11 не протелепатирую..
   Manonegro
 
19 - 02.11.12 - 14:56
(18) ссылку на что надо подставить и куда?
   Wobland
 
20 - 02.11.12 - 14:58
(19) да.. у (14) объект, а у тебя в РС всё лежит. а что, типовая сама не умеет сохранять? посмотри, как сделано
   Manonegro
 
21 - 02.11.12 - 15:04
Всё перепробовал, весь инет перелопатил, не получается никак. Помогите!
   banco
 
22 - 02.11.12 - 15:27
ПутьКартинки = Выборка.ФайлКартинки;
 Если ЗначениеЗаполнено(ПутьКартинки) Тогда
     Картинка = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФайлКартинки).Получить();
   Картинка.Записать(ПутьВыгрузки + "\Pictures\" + КодНоменклатуры + "." + ПутьКартинки.Расширение);
КонецЕсли;
вот так поменяй у себя в коде и не мучайся и научись смотреть как  в типовой делается
   Manonegro
 
23 - 02.11.12 - 15:42
(22)
ПолучитьДанныеФайла(ФайлКартинки)
в смысле
ПолучитьДанныеФайла(ПутьКартинки) ???
   Manonegro
 
24 - 02.11.12 - 15:44
Если так, то
Метод объекта не обнаружен (Получить)
   Manonegro
 
25 - 02.11.12 - 15:49
(22) Я бы рад не париться, но не работает...
   Manonegro
 
26 - 02.11.12 - 16:06
Уважаемые знатоки, опять телезрители победили?
   banco
 
27 - 02.11.12 - 16:11
(24) сложно псомотреть что тебе возвращает функция ПрисоединенныеФайлы.ПолучитьДанныеФайла ?
   Manonegro
 
28 - 02.11.12 - 16:12
ПутьКартинки.ФайлХранилище - тип ХранилищеЗначения. А как из этого хранилища выдернуть картинку? Если ПутьКартинки.ФайлХранилище.Получить(), то возвращает тип Неопределено.
   Manonegro
 
29 - 02.11.12 - 16:14
(27) возвращает тип Неопределено.
   banco
 
30 - 02.11.12 - 16:14
(28)ПутьКартинки.ФайлХранилище - Служебное поле для обмена файлами в РИБ? двоичные данные картинки храниться в регисте сведений ПрисоединенныеФайлы
 
 Рекламное место пустует
   Manonegro
 
31 - 02.11.12 - 16:16
Если быть точным,
ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФайлКартинки)
возвращает тип Неопределено
   banco
 
32 - 02.11.12 - 16:19
ПрисоединенныеФайлы.ПолучитьДанныеФайла возвращает структуру, в этой структуре есть поле СсылкаНаДвоичныеДанныеФайла
   Manonegro
 
33 - 02.11.12 - 16:27
ПрисоединенныеФайлы.ПолучитьДанныеФайла(Выборка.ФайлКартинки) возвращает Неопределено. Хорошо бы структуру возвращал...
   Wobland
 
34 - 02.11.12 - 16:28
(33) дай своё творение, мне лениво компилировать всё в кучу из всех постов
   Aprobator
 
35 - 02.11.12 - 16:29
(0) как минимум из хранилища не файл получен.
   Manonegro
 
36 - 02.11.12 - 16:34
ПутьКартинки = Выборка.ФайлКартинки;
        Если ЗначениеЗаполнено(ПутьКартинки) Тогда
            Картинка = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ПутьКартинки);
            Картинка.Записать(ПутьВыгрузки + "\Pictures\" + КодНоменклатуры + "." + ПутьКартинки.Расширение);
        КонецЕсли;
   Wobland
 
37 - 02.11.12 - 16:35
(36) ладно, пойду поем. вдруг дождусь
   Manonegro
 
38 - 02.11.12 - 16:42
(37) да я в (36) все написал...
   Aprobator
 
39 - 02.11.12 - 16:46
ПутьКартинки - путь к файлу?
   Aprobator
 
40 - 02.11.12 - 16:49
Вообще у Картинка тип должен быть двоичные данные, имхо.
   Manonegro
 
41 - 02.11.12 - 16:56
(39) ПутьКартинки = Номенклатура.ФайлКартинки (тип Ссылка на справочник НоменклатураПрисоединенныеФайлы)
   Aprobator
 
42 - 02.11.12 - 16:57
тип значения Картинка?
   Manonegro
 
43 - 02.11.12 - 16:59
нет
   Aprobator
 
44 - 02.11.12 - 17:00
млин, какой тип значения переменной Картинка.
   Manonegro
 
45 - 02.11.12 - 17:02
Неопределено
   Aprobator
 
46 - 02.11.12 - 17:08
ну так все правильно - у неопределено нет метода Записать(). Ковыряй модуль получения данных файла картинки.
   Wobland
 
47 - 02.11.12 - 17:19
(38) гляжу, ты уже должен был понять, что не всё ;)
   Manonegro
 
48 - 04.11.12 - 13:07
Извиняюсь, отсутствовал.
Кто-нибудь выгружал картинки номенклатуры из УТ? Неужели никто не выгружал?
   Wobland
 
49 - 04.11.12 - 13:25
(48) скажем так, я на такое способен
   Manonegro
 
50 - 04.11.12 - 14:04
ПутьКартинки = Выборка.ФайлКартинки;
        Если ЗначениеЗаполнено(ПутьКартинки) Тогда
               Картинка = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(ПутьКартинки);
            Картинка.Записать(КаталогКартинок + КодНоменклатуры + "." + ПутьКартинки.Расширение);
        КонецЕсли;

Всем спасибо огромное! Вот так получилось.


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