Получение табличного документа через COM соединение. #727555


#0 by cojko
Добрый день. Подскажите, можно ли получить Табличный документ из другой базы через  COM соединение? Такой код выдает ошибку: {ОбщийМодуль.БИТ_Общий.Модуль}: Метод объекта не обнаружен (ПечатьОтборочныйЛист)
#1 by Остап Сулейманович
Через КОМ ходят только простые типы + КомОбъект (который не может быть табличный документ).
#2 by Остап Сулейманович
+ Описалово ошибки к передаче ТД через КОМ ни какого отношения не имеет.
#3 by cojko
Спасибо. Что тогда можно использовать?
#4 by Остап Сулейманович
Самый безгеморый - заполнить ТД (там) - записать в файл (там) - открыть файл (здесь).
#5 by Остап Сулейманович
+ Можно использовать сериализацию и передать ТД в виде строки ХМЛ.
#6 by dk
скорее всего ошибаешься а что ты с этим таб документом дальше делать собираешься?
#7 by cojko
Отправить на печать
#8 by DrWatson
Не открывая, сразу на печать? А на прямую из COM на печать не отправляется?
#9 by dk
тогда может прокатит а вот с предпросмотром могут проблемы возникнуть --- осталось разобраться почему метод объекта не обнаружен
#10 by cojko
Предпросмотр не нужен. Попробую отправить на печать из com соединения.
#11 by dk
не по кому этот код отрабатывает?
#12 by cojko
Да, отрабатывает.
#13 by DrWatson
Экспорт на функции стоит?
#14 by cojko
Экспорт стоит
#15 by dk
проверь что у тебя в ДокОб возвращает, может не находит документ
#16 by cojko
Вот, что возвращается. ДокОб    COMОбъект    COMОбъект AdditionalProperties    COMОбъект    COMОбъект BelongingToSequences    COMОбъект    COMОбъект DataExchange    COMОбъект    COMОбъект DataVersion    Ошибка чтения значения     Date    02.12.2014 19:11:36    Дата DeletionMark    Ложь    Булево InputXML    ""    Строка Number    "204-1056"    Строка Posted    Истина    Булево Ref    COMОбъект    COMОбъект RegisterRecords    COMОбъект    COMОбъект ThisObject    COMОбъект    COMОбъект АдресДоставки    ""    Строка АдресЕМС    ""    Строка АдресЗаМКАДом    Ложь    Булево ВидДоставки    COMОбъект    COMОбъект ВидОплаты    COMОбъект    COMОбъект ВремяДоставкиКонец    01.01.0001 0:00:00    Дата ВремяДоставкиНачало    01.01.0001 0:00:00    Дата ДатаБлокировки    01.01.0001 0:00:00    Дата ДатаОбработкиДокумента    01.01.0001 0:00:00    Дата Заблокирован    Ложь    Булево ИнформационнаяКарта    COMОбъект    COMОбъект ИнформационныеКарты    COMОбъект    COMОбъект КодЗаказаКС    ""    Строка Количество    1    Число Комментарий    ""    Строка КомплектыДокументов    COMОбъект    COMОбъект Контрагент    COMОбъект    COMОбъект КурьерскаяСлужба    COMОбъект    COMОбъект МагазинСамовывоза    COMОбъект    COMОбъект НомерВнутр    1 056    Число НомерЕМС    ""    Строка НомерЗаказаКС    ""    Строка Организация    COMОбъект    COMОбъект Ответственный    COMОбъект    COMОбъект Отгрузка    01.01.0001 0:00:00    Дата ПКО    COMОбъект    COMОбъект ПоступлениеВБК    COMОбъект    COMОбъект ПредпочтительноеВремяДоставки    ""    Строка РеализацияНаБК    COMОбъект    COMОбъект РеализацияНаКлиента    COMОбъект    COMОбъект СкидкаСуммой    0    Число Склад    COMОбъект    COMОбъект СтоимостьДоставки    0    Число СуммаДокумента    1 000    Число СуммаДокументаВЕБ    290    Число Товары    COMОбъект    COMОбъект ФормироватьДокументыТекущейДатой    Истина    Булево ХарактеристикаНоменклатуры    COMОбъект    COMОбъект ЯрлыкКурьерскойСлужбы    COMОбъект    COMОбъект кмОтМКАД    0    Число мБезПроверкиЗаполнения    Ложь    Булево мВалютаРегламентированногоУчета    COMОбъект    COMОбъект мНовыйСтатус        Неопределено термМагазин    COMОбъект    COMОбъект термПродавец    COMОбъект    COMОбъект
#17 by dk
объект есть проверь какие директивы стоят перед функцией ПечатьОтборочныйЛист
#18 by cojko
Не понял, что проверить.
#19 by Остап Сулейманович
Поясняю : определение "ПечатьОтборочныйЛист" - в студию
#20 by DrWatson
В каком модуле находится ПечатьОтборочныйЛист?
#21 by Остап Сулейманович
С учетом - в модуле объекта.
#22 by ВРедная
где-то перед ПечатьОтборочныйЛист в коде встречается "#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда" ?
#23 by cojko
ПечатьОтборочныйЛист находится в модуле документа.
#24 by cojko
#Если НаКлиенте Тогда
#25 by Serginio1
Через сохранение в файл через Сериализацию Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {}. Имя типа XDTO: SpreadsheetDocument.
#26 by Serginio1
Проверь на синаксис установив Сервис-Параметры-Модули-Проверка галку внешнее соединение
#27 by dk
а у тебя ВнешнееСоединение вместо Клиента
#28 by cojko
Можно просто закоментировать?
#29 by cojko
Я теперь пытаюсь обратится к процедуре Печать документа из общего модуля, тоже пишет, что метод объекта не обнаружен.
#30 by DrWatson
ну значит там тоже есть инструкции препроцессора
#31 by DrWatson
менее радикально будет написать #Если НаКлиенте ИЛИ ВнешнееСоединение Тогда Но потом
#32 by cojko
это я ошибся.
#33 by DrWatson
+ потому что скорее всего не зря поставили инструкцию "только на клиенте"
#34 by cojko
Я почти сделал методом . Как обратиться через COM к процедуре из общего модуля второй базы. Выдает такую ошибку. Произошла исключительная ситуация (1C:Enterprise 8.3.5.1119): Ошибка инициализации модуля: Документ._ЗаказИнтернетМагазина {Документ._ЗаказИнтернетМагазина(806,10)}: Переменная не определена (РаботаСДиалогами)
#35 by cojko
Я так понял, что к общему модулю другой базы я подключился, но там не все функции отрабатывают.
#36 by dk
интерактив низзя
#37 by Serginio1
Есть еще вариант.
#38 by cojko
Все таки через COM Табличный документ передается.
#39 by cojko
Теперь проблема его вывести.
#40 by Остап Сулейманович
Не передается. Передается КОМобъект с ПРОСТЫМИ свойствами твоего табличного документа. Для составных имеем очередной КОМобъект. И так далее вниз иерархии.
#41 by cojko
Вот у меня и получилось, что вместо Табличного документа я получил Com объект, что с ним дальше делать.
#42 by Остап Сулейманович
см. , , .
#43 by cojko
этот метод еще не пробывал. Сейчас пытаюсь отправить на прямую печать табличный документ из базы к которой присоединяюсь. Ошибка при вызове метода контекста (Напечатать) Метод недоступен на сервере
#44 by cojko
Каким еще можно методом?
#45 by dk
с напечатать засада таки придется сохранять и открывать тут
#46 by DrZombi
Запиши макет в файл MXL. И потом открой его, и делай с ним шо хошь.
#47 by Остап Сулейманович
Может случиться засада и в таком варианте. Если "там" и "здесь" - разные машинки с разными правами доступа к файловым ресурсам. Самый надежный и универсальный - сериализовать там и десериализовать здесь.
#48 by DrZombi
+ Либо в конфигураторе пропиши функцию печати, без получения макета :)
#49 by DrZombi
Разного не будет, Ком то один :)
#50 by DrZombi
+ функцию в Общем модуле. (если не будет работать в документе) :)
#51 by cojko
Приведи, пожалуйста, пример
#52 by cojko
через сохранения файла получилось.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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