Имя: Пароль:
1C
1С v8
Получение табличного документа через COM соединение.
,
0 cojko
 
03.12.14
10:53
Добрый день.
Подскажите, можно ли получить Табличный документ из другой базы через  COM соединение?

ДокОб = Соединение.Документы._ЗаказИнтернетМагазина.НайтиПоНомеру(НомерВх, ДатаВх).ПолучитьОбъект();
    ТабДок = ДокОб.ПечатьОтборочныйЛист();

Такой код выдает ошибку:
{ОбщийМодуль.БИТ_Общий.Модуль(302)}: Метод объекта не обнаружен (ПечатьОтборочныйЛист)
    ТабДок = ДокОб.ПечатьОтборочныйЛист();
1 Остап Сулейманович
 
03.12.14
10:54
Через КОМ ходят только простые типы + КомОбъект (который не может быть табличный документ).
2 Остап Сулейманович
 
03.12.14
10:55
+ (1) Описалово ошибки к передаче ТД через КОМ ни какого отношения не имеет.
3 cojko
 
03.12.14
10:55
(1) Спасибо. Что тогда можно использовать?
4 Остап Сулейманович
 
03.12.14
10:57
(3) Самый безгеморый - заполнить ТД (там) - записать в файл (там) - открыть файл (здесь).
5 Остап Сулейманович
 
03.12.14
10:58
+ (4) Можно использовать сериализацию и передать ТД в виде строки ХМЛ.
6 dk
 
03.12.14
11:07
(1) скорее всего ошибаешься
(0) а что ты с этим таб документом дальше делать собираешься?
7 cojko
 
03.12.14
11:09
(6) Отправить на печать
8 DrWatson
 
03.12.14
11:11
(7) Не открывая, сразу на печать? А на прямую из COM на печать не отправляется?
9 dk
 
03.12.14
11:11
тогда может прокатит
а вот с предпросмотром могут проблемы возникнуть
---
осталось разобраться почему метод объекта не обнаружен
10 cojko
 
03.12.14
11:14
(9) Предпросмотр не нужен. Попробую отправить на печать из com соединения.
11 dk
 
03.12.14
11:17
не по кому этот код отрабатывает?
12 cojko
 
03.12.14
11:19
(11) Да, отрабатывает.
13 DrWatson
 
03.12.14
11:20
(9) Экспорт на функции стоит?
14 cojko
 
03.12.14
11:22
(13) Экспорт стоит
15 dk
 
03.12.14
11:22
проверь что у тебя в ДокОб возвращает, может не находит документ
16 cojko
 
03.12.14
11:24
(15) Вот, что возвращается.
ДокОб    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    Число
НомерЕМС    ""    Строка
НомерЗаказаВЕБ    "204-1052"    Строка
НомерЗаказаКС    ""    Строка
Организация    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 dk
 
03.12.14
11:30
объект есть
проверь какие директивы стоят перед функцией ПечатьОтборочныйЛист()
18 cojko
 
03.12.14
11:35
(17) Не понял, что проверить.
19 Остап Сулейманович
 
03.12.14
11:40
(18) Поясняю : определение "ПечатьОтборочныйЛист()" - в студию
20 DrWatson
 
03.12.14
11:44
(13) В каком модуле находится ПечатьОтборочныйЛист()?
21 Остап Сулейманович
 
03.12.14
11:45
(20) С учетом (12) - в модуле объекта.
22 ВРедная
 
03.12.14
11:47
(18) где-то перед ПечатьОтборочныйЛист() в коде встречается
"#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда"

?
23 cojko
 
03.12.14
11:47
(20) ПечатьОтборочныйЛист() находится в модуле документа.
24 cojko
 
03.12.14
11:49
(17) (22)

#Если НаКлиенте Тогда


Функция ПечатьОтборочныйЛист() Экспорт
25 Serginio1
 
03.12.14
11:55
Через сохранение в файл через Сериализацию
Сериализуется.

Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.2/data/spreadsheet}. Имя типа XDTO: SpreadsheetDocument.
26 Serginio1
 
03.12.14
11:59
(0) Проверь на синаксис установив Сервис-Параметры-Модули-Проверка галку внешнее соединение
27 dk
 
03.12.14
12:02
а у тебя ВнешнееСоединение вместо Клиента
28 cojko
 
03.12.14
12:06
(27) Можно просто закоментировать?
29 cojko
 
03.12.14
12:10
Я теперь пытаюсь обратится к процедуре Печать() документа из общего модуля, тоже пишет, что метод объекта не обнаружен.
30 DrWatson
 
03.12.14
12:11
(29) ну значит там тоже есть инструкции препроцессора
31 DrWatson
 
03.12.14
12:12
(28) менее радикально будет написать
#Если НаКлиенте ИЛИ ВнешнееСоединение Тогда
Но потом (26)
32 cojko
 
03.12.14
12:12
(29) это я ошибся.
33 DrWatson
 
03.12.14
12:13
+(31) потому что скорее всего не зря поставили инструкцию "только на клиенте"
34 cojko
 
03.12.14
12:23
Я почти сделал методом (8).
Как обратиться через COM к процедуре из общего модуля второй базы.

Соединение.ПечатьБИТ.ПечатьБланкаПодбора(НомерВх, ДатаВх);

Выдает такую ошибку.

Произошла исключительная ситуация (1C:Enterprise 8.3.5.1119): Ошибка инициализации модуля: Документ._ЗаказИнтернетМагазина
{Документ._ЗаказИнтернетМагазина(806,10)}: Переменная не определена (РаботаСДиалогами)
35 cojko
 
03.12.14
12:26
Я так понял, что к общему модулю другой базы я подключился, но там не все функции отрабатывают.
36 dk
 
03.12.14
12:28
интерактив низзя
37 Serginio1
 
03.12.14
12:35
Есть еще вариант. v8: печать через веб-сервис
38 cojko
 
03.12.14
12:39
Все таки через COM Табличный документ передается.
39 cojko
 
03.12.14
12:40
Теперь проблема его вывести.
40 Остап Сулейманович
 
03.12.14
12:42
(38) Не передается. Передается КОМобъект с ПРОСТЫМИ свойствами твоего табличного документа. Для составных имеем очередной КОМобъект. И так далее вниз иерархии.
41 cojko
 
03.12.14
12:44
Вот у меня и получилось, что вместо Табличного документа я получил Com объект, что с ним дальше делать.
42 Остап Сулейманович
 
03.12.14
12:50
(41) см. (4), (5), (25).
43 cojko
 
03.12.14
12:54
(42) этот метод еще не пробывал.

Сейчас пытаюсь отправить на прямую печать табличный документ из базы к которой присоединяюсь.

ТабДокумент.Напечатать ()

Ошибка при вызове метода контекста (Напечатать)
Метод недоступен на сервере
44 cojko
 
03.12.14
12:54
Каким еще можно методом?
45 dk
 
03.12.14
12:59
с напечатать засада
таки придется сохранять и открывать тут
46 DrZombi
 
гуру
03.12.14
13:02
(0) Запиши макет в файл MXL. И потом открой его, и делай с ним шо хошь.
47 Остап Сулейманович
 
03.12.14
13:03
(45) Может случиться засада и в таком варианте. Если "там" и "здесь" - разные машинки с разными правами доступа к файловым ресурсам. Самый надежный и универсальный - сериализовать там и десериализовать здесь.
48 DrZombi
 
гуру
03.12.14
13:03
+(0) Либо в конфигураторе пропиши функцию печати, без получения макета :)
49 DrZombi
 
гуру
03.12.14
13:04
(47) Разного не будет, Ком то один :)
50 DrZombi
 
гуру
03.12.14
13:05
+(48) функцию в Общем модуле. (если не будет работать в документе) :)
51 cojko
 
03.12.14
13:55
(50) Приведи, пожалуйста, пример
52 cojko
 
03.12.14
14:12
через сохранения файла получилось.