|
Получение данных из ХранилищеЗначения через V82.COMConnector | ☑ | ||
---|---|---|---|---|
0
ddiimmaann
02.07.13
✎
13:38
|
Помогите ответиь на вопрос в теме, пожалуйста! Имеем у справочника "ФизЛица" реквизит "Достижение", Тип - ХранилищеЗначения, Хранимое значение - ФорматированныйДокумент. Необходимо это значение перенести в аналогичную базу:
ДругаяИБ = Новый COMОбъект("V82.COMConnector"); Попытка СоединениеДругаяБаза = ДругаяИБ.Connect("File=E:\Тест1;Usr=1;Pwd=1"); СправочникиДругойБазы = СоединениеДругаяБаза.Справочники.ФизическиеЛица; Выборка = СправочникиДругойБазы.Выбрать(); ФизЛица = Справочники.ФизическиеЛица; Пока Выборка.Следующий() Цикл ТекущееФизЛицо = ФизЛица.НайтиПоКоду(Выборка.Код); ФизлицоОбъект.Достижения = Новый ХранилищеЗначения(Выборка.Достижения.Получить()); ФизлицоОбъект.Записать(); КонецЦикла; Сообщить ("Готово"); Исключение Сообщить ("Не удалось соединится с другой базой"); КонецПопытки; В отладчике "Выборка.Достижения.Получить()" имеет тип и значение "COMОбъект". Как получить данные, записанные в реквизите "Достижения"? |
|||
1
H A D G E H O G s
02.07.13
✎
13:39
|
ФорматированныйДокумент - не примитивный тип, неперенесешь.
|
|||
2
Fragster
гуру
02.07.13
✎
13:40
|
(1) через сериализацию, не?
|
|||
3
Smallrat
02.07.13
✎
13:41
|
ПолучитьHTML (GetHTML)
УстановитьHTML (SetHTML) не сделает идентичный документ ? |
|||
4
H A D G E H O G s
02.07.13
✎
13:41
|
(2) Чебынет, нуавдруг там что то привязанное к удаленной базе есть.
|
|||
5
ddiimmaann
02.07.13
✎
14:05
|
Так?
Выборка.НаучныеИнтересы.Получить().GetHTML() {(1)}: Ошибка при вызове метода контекста (GetHTML) Внутри привязок нет. В виде HTML можно было бы перенести. |
|||
6
ddiimmaann
02.07.13
✎
14:06
|
Выборка.НаучныеИнтересы.Получить().ПолучитьHTML() {(1)}: Ошибка при вызове метода контекста (ПолучитьHTML)
Аналогично, если возникнет вопрос про язык. |
|||
7
ddiimmaann
02.07.13
✎
14:07
|
(2) А через сериализацию - это как?
|
|||
8
Serginio1
02.07.13
✎
14:08
|
(7) XMLЗначение
|
|||
9
Serginio1
02.07.13
✎
14:10
|
||||
10
Smallrat
02.07.13
✎
14:21
|
(6) может както так, в теории (сам с таким не сталкивался):
ТекстHTML = ""; Вложения = Новый Структура; Выборка.НаучныеИнтересы.Получить().ПолучитьHTML(ТекстHTML, Вложения); комФМ = СоединениеДругаяБаза.NewObject("ФорматированныйДокумент"); комФМ.УстановитьHTML(ТекстHTML, СоединениеДругаяБаза.NewObject("Структура")); это если без вложений - если с вложениями, то тут надо мутить передачу двоичных значений. |
|||
11
ddiimmaann
02.07.13
✎
14:41
|
Получилось! (кривовато, но для разовой операции сойдет)
ДругаяИБ = Новый COMОбъект("V82.COMConnector"); Попытка СоединениеДругаяБаза = ДругаяИБ.Connect("File=E:\Тест1;Usr=1;Pwd=1"); СправочникиДругойБазы = СоединениеДругаяБаза.Справочники.ФизическиеЛица; Выборка = СправочникиДругойБазы.Выбрать(); ФизЛица = Справочники.ФизическиеЛица; Пока Выборка.Следующий() Цикл ТекущееФизЛицо = ФизЛица.НайтиПоКоду(Выборка.Код); УдаленноеХранилище = СоединениеДругаяБаза.NewObject("ХранилищеЗначения", Выборка.Достижения); СтрокаXML = СоединениеДругаяБаза.XMLСтрока(УдаленноеХранилище); Хранилище = XMLЗначение(Тип("ХранилищеЗначения"), СтрокаXML); ФизлицоОбъект.Достижения = Новый ХранилищеЗначения(Хранилище.Получить().Получить()); ФизлицоОбъект.Записать(); КонецЦикла; Сообщить ("Готово"); Исключение Сообщить ("Не удалось соединится с другой базой"); КонецПопытки; Всем ПРЕОГРОМНОЕ спасибо!!! |
|||
12
Serginio1
02.07.13
✎
15:01
|
(10) Можно проще
СтрокаXML = СоединениеДругаяБаза.XMLСтрока(Выборка.Достижения); Достижения= XMLЗначение(Тип("ХранилищеЗначения"), СтрокаXML); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |