|   |   | 
| 
 | Получение данных из ХранилищеЗначения через 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); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |