Имя: Пароль:
1C
1С v8
Перенос данных MS SQL-> 1c
0 LazyCamel
 
13.10.14
18:25
Добрый день.
Переношу договора непосредственно из таблицы БД в 1с. К скулю подключаюсь через ADO. Вопрос: как перетащить поле типа BLOB (прилепленный файл)?
Пишу так.

Хранилище = Справочники.ХранилищеДополнительнойИнформации;
НовФайл = Хранилище.СоздатьЭлемент();
НовФайл.Наименование = "XPS-content";
НовФайл.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
НовФайл.Объект = НовДоговор.Ссылка;
НовФайл.Хранилище = Новый ХранилищеЗначения(RecordSet.Fields("xpsFile").Value, Новый СжатиеДанных(9));
НовФайл.Записать();

Не прокатывает. В чем может быть дело?
1 Banned
 
13.10.14
18:31
Через adodb.stream нужно в файл сохранять.
Если не подскажут, завтра на работе примерный код кину
2 Chameleon1980
 
13.10.14
18:31
ругается/нет на чтонить?
3 LazyCamel
 
13.10.14
18:36
(2)Нет, не ругается. Просто получившаяся запись - Null.
4 МихаилМ
 
13.10.14
18:49
5 LazyCamel
 
14.10.14
17:57
Ошибка при вызове метода контекста (GetChunk): Произошла исключительная ситуация (ADODB.Field): Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.


Почитал про GetChunk. Там среди атрибутов поля есть такой флаг.

adFldLong
0x80
Indicates that the field is a long binary field. Also indicates that you can use the AppendChunk and GetChunk methods.

Не может быть в этом дело? Как вообще проверить этот флаг? В моем случае он равен 232
6 LazyCamel
 
21.10.14
13:13
Задача решена, всем спасибо.
Закон Брукера: Даже маленькая практика стоит большой теории.