Табличный документ через Com #690037


#0 by 0xFFFFFF
Из базы1 Соединился с базой2 через Com, получил оттуда табличный документ, который понятно, что имеет тип ComОбъект. Как мне в базе1 его преобразовать в ТабличныйДокумент? Важна только визуальная форма. Расшифровками и пр. пренебрегаем.
#1 by Ork
Через Com передаются только примитивные типы. Посему : циклом по ячейкам перебираем содержимое и заполняем аналог на вызывающей стороне.
#2 by Ненавижу 1С
сохраняем в файл, читаем
#3 by ptrtss
Лучше его запихать сначала в строку, а потом уже строку получить по COM и уже на месте назначения распаковать обратно в таблицу значений
#4 by Wobland
предлагаешь ТабДок предварительно сконвертировать в ТЗ? ;)
#5 by 0xFFFFFF
Думал об этом, однако всё, даже шрифты тоже будут Com... Некузяво. В MXL? речь о табдок
#6 by Ненавижу 1С
в MXL
#7 by Wobland
дай минутку подумать. мм.. да, в mxl
#8 by 0xFFFFFF
Если mxl завернуть в ХранилищеЗначений, то оно потом тоже имеет тип COMобъект. А как его оттуда достать...
#9 by Wobland
ну по почте отправь
#10 by Kvestin
Если базы разные (GUID-ы у элементов разные), то только сопоставлением в текущей базе по реквизитам примитивных типов (Код, Наименование и т.д). Я бы, чтобы много не писать, в базе2 выбрал все запросом так, чтобы в ТЗ выгруженной из запроса не было данных ссылочного типа, но были все необходимые данные, чтобы найти соответствующий элемент в текущей базе. Затем получил ЗначениеВСтрокуВнутр(ТЗ), полученныю строку передал по COM и развернул в базе1. После этого получим в базе1 объект типа ТаблицаЗначений. Дальше, делаешь из нее то что нужно. Если данные ссылочного типа совпадают по GUID (например база1 и база2 - узлы одной и той же распределенной базы), то тогда можно просто завернуть ТЗ в строку и развернуть в текущей базе. Все ссылки встанут автоматом.
#11 by Kvestin
Тфу ... подумал про ТабличнуюЧасть - пятница.
#12 by 0xFFFFFF
Заработало! Делал так: в базе 2 "заворачиваем" В базе 1 "разворачиваем"
#13 by Serginio1
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {}. Имя типа XDTO: SpreadsheetDocument. Можешь использовать СериализаторXDTO
#14 by Ненавижу 1С
жду гонорар ))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С