Имя: Пароль:
1C
1С v8
Как создать хранилище в com-соединении?
0 Холодильник
 
07.07.14
15:23
как записать данные в хранилище? так:
ХранилищеКартинки = Новый ХранилищеЗначения("C:\Мои документы\обработка.epf");

а как создать хранилище в сом-соединении?

cntr = Новый COMObject("V83.COMConnector");
// создается объект COM-соединение
connection = cntr.Connect(СтрокаПодключения);

connection.NewObject("ХранилищеЗначения('C:\Мои документы\обработка.epf');

Ошибка в последней строке - тип не определен.
Как быть?
1 H A D G E H O G s
 
07.07.14
15:24
connection.NewObject("ХранилищеЗначения","C:\Мои документы\обработка.epf");
2 Холодильник
 
07.07.14
15:26
спасибо
3 Холодильник
 
07.07.14
15:53
хм.
не хочет так:

Путь =  "C:\Мои документы\обработка.epf" ;
    файл = Новый Файл(путь);
    ПомещенныеФайлы = Новый Массив;
    ВыборВыполнен = ПоместитьФайлы(, ПомещенныеФайлы,путь , ЛОЖЬ, );
    Если   ВыборВыполнен  Тогда    
ОписаниеФайла = ПомещенныеФайлы[0];        
файло = ПолучитьИзВременногоХранилища(ОписаниеФайла.Хранение) ;
ХранилищеОбработки = connection.NewObject("ХранилищеЗначения",файло);
КонецЕсли;


грит:
Ошибка при вызове метода контекста (NewObject): Произошла исключительная ситуация (1C:Enterprise 8.3.4.389): Переданное значение не может быть помещено в ХранилищеЗначения, поскольку не сериализуется или содержит вложенный несериализуемый элемент
4 Necessitudo
 
07.07.14
15:53
(3) И что не так?
5 1cVandal
 
07.07.14
15:55
(3) файло да кривое, ты этим хотел похвастаться?
6 Холодильник
 
07.07.14
15:57
(5) файло - обработка. напрямую в базе этот код работает, а по com - почему-то не хочет
7 Холодильник
 
07.07.14
16:00
+ пишу для проверки:

файло.записать(КаталогВременныхФайлов()+"123.epf");

- создается православная работающая обработка.

почему она не создается
8 H A D G E H O G s
 
07.07.14
16:01
файло  - ДвоичныеДанные, не?
9 Холодильник
 
07.07.14
16:05
(8) они. двоичные. сериализуются.
10 Холодильник
 
07.07.14
16:06
+
    
    Сообщить(типЗнч(файло));

выдает
Двоичные данные
11 Холодильник
 
07.07.14
16:25
ну чего? мыслей нет ни у кого?
12 DmitrO
 
07.07.14
16:32
а так?
ТипДвоичныеДанные = connection.NewObject("ОписаниеТипов","ДвоичныеДанные").Типы().Получить(0);
ХранилищеОбработки = connection.NewObject("ХранилищеЗначения", connection.XMLЗначение(ТипДвоичныеДанные, XMLСтрока(файло)));
13 H A D G E H O G s
 
07.07.14
16:33
(11) Какие тут могут быть мысли? Ты в Com засовываешь объект текущей базы. Окстись, нуб.
14 Холодильник
 
07.07.14
17:23
(13) Ок. а как ты предлагаешь передавать в com объект?
двоичное значение из файла напрямую в сом-базе создать не получится(не будет прав у внешн подкл).

т.е. я не могу написать:

файло = connection.NewObject("ДвоичныеДанные","C:\Мои документы\обработка.epf");

ХранилищеОбработки = connection.NewObject("ХранилищеЗначения",файло);



мне нужно в текущем соединении загрузить файл во врем хранилище, оттуда - как-то передать его ком-базе
15 H A D G E H O G s
 
07.07.14
17:29
ДвоишноеТам=connection.Base64Значение(Base64Строка(файло));