|
COM соединение | ☑ | ||
---|---|---|---|---|
0
sanechichek
08.11.12
✎
15:12
|
Как можно через COM соединение получить процедуру объекта, сейчас делаю так, но не получается:
V82 = Новый COMОбъект("V82.COMConnector"); ConnectV82 = V82.Connect(СтрокаСоединения); НужныйОтчет = ConnectV82.Отчеты[ИмяОбъекта].Создать() //вот тут вызываю процедуру, но он ее не видит( НужныйОтчет.СформироватьОтчет(ТабличныйДокумент) Что делаю не так? |
|||
1
prog01
08.11.12
✎
15:14
|
(0)возможно она не экспорт
или нужно получить форму открыть и тогда только к её процедуре обратиться и вообще для таких фокусов лучше аппликейшен вызывать |
|||
2
sanechichek
08.11.12
✎
15:18
|
(1) процедура точно экспортная, если делаю не через COM то все нормально.
аппликейшен медленнеt и потом, очень часто ругается на несовместимость версий клиента и сервера и не всегда помjгает regsvr32 comcntr.dll |
|||
3
Лефмихалыч
08.11.12
✎
15:20
|
(0) отладчик что говорит про НужныйОтчет.Метаданные().имя ?
|
|||
4
sanechichek
08.11.12
✎
15:23
|
(3) НужныйОтчет.Метаданные().имя = "ВаловаяПрибыль"
|
|||
5
Лефмихалыч
08.11.12
✎
15:24
|
(4) это тот отчет, который тебе нужен?
|
|||
6
GLazNik
08.11.12
✎
15:24
|
(4) а текст об ошибке какой?
|
|||
7
sanechichek
08.11.12
✎
15:26
|
(5) да тот
(6) Метод объекта не обнаружен (СформироватьОтчет), но процедура точно есть |
|||
8
zladenuw
08.11.12
✎
15:27
|
СформироватьОтчет? случайно не на форме ?
|
|||
9
sanechichek
08.11.12
✎
15:29
|
(8) нет
|
|||
10
Лефмихалыч
08.11.12
✎
15:30
|
(7) если метод объекта не обнаружен, значит метода нет. Либо кэш конфигурации, либо не ту базу запускаешь по СОМ
|
|||
11
sanechichek
08.11.12
✎
15:33
|
(10) базу точно ту запускаю, возможно это особенности COM соединения?
|
|||
12
zladenuw
08.11.12
✎
15:33
|
(10)
а вот и нет. Отчет = ИсточникСоединение.Отчеты["ABCАнализПродаж"].Создать(); Отчет.СформироватьОтчет(Новый ТабличныйДокумент); Такая же ошибка. |
|||
13
prog01
08.11.12
✎
15:35
|
(2)умничай дальше
ТабличныйДокумент доступен по ком? |
|||
14
sanechichek
08.11.12
✎
15:37
|
(13) да
|
|||
15
Вяйнемейнен
08.11.12
✎
15:38
|
А какой текст ошибки? Может он процедуру видит, но в ней используются объекты или глобальные модули, недоступные COM-соединению.
|
|||
16
Spieluhr
08.11.12
✎
15:39
|
под #Если Клиент Тогда
скорее всего процедура СформироватьОтчет() попадает |
|||
17
prog01
08.11.12
✎
15:39
|
попытка
исключение сообщить(ОписаниеОшибки()) конец |
|||
18
sanechichek
08.11.12
✎
15:39
|
(15) ошибка: "Метод объекта не обнаружен (СформироватьОтчет)"
|
|||
19
zladenuw
08.11.12
✎
15:40
|
нет.
Если Аплю брать то ошибка другая {Форма.Форма.Форма(184)}: Ошибка при вызове метода контекста (СформироватьОтчет) Отчет.СформироватьОтчет(Новый ТабличныйДокумент); по причине: Произошла исключительная ситуация (1C:Enterprise 8.2.16.368): {Отчет.ABCАнализПродаж.МодульОбъекта(423)}: Ошибка при вызове метода контекста (Вывести) Произошла исключительная ситуация (1C:Enterprise 8.2.16.368): Несоответствие типов (параметр номер '1') |
|||
20
prog01
08.11.12
✎
15:40
|
(18)он экспортный?
|
|||
21
zladenuw
08.11.12
✎
15:41
|
(19) не важно что за ошибка. то есть через COMConnector. не хочет отчет формироваться :)
|
|||
22
prog01
08.11.12
✎
15:42
|
(18)а "ConnectV82.Отчеты[ИмяОбъекта].Создать()
" точно выдает отчет я просто не помню может нужно через V82. |
|||
23
prog01
08.11.12
✎
15:42
|
?
|
|||
24
Spieluhr
08.11.12
✎
15:42
|
(21) недоступна эта процедура во внешнем соединении. смотри еще раз (16)
|
|||
25
sanechichek
08.11.12
✎
15:42
|
(16) точно, процедуру не видит потому что она выполняется только на клиенте.
|
|||
26
prog01
08.11.12
✎
15:44
|
(2)"очень часто ругается на несовместимость версий клиента и сервера и не всегда помjгает regsvr32 comcntr.dll"
ещё и 1с криво стоит... любители бубнов с танцами и вазелинов с ведрами? |
|||
27
sanechichek
08.11.12
✎
15:47
|
подскажите тогда как запустить клиента для выполнения определенной процедуры, то есть в моем случае для формирования отчета.
|
|||
28
Spieluhr
08.11.12
✎
15:50
|
(27)запустить не ком объект, а аппиликейшн и показать окно. Окно естественно будет новое.
|
|||
29
prog01
08.11.12
✎
15:51
|
Попытка
cntr81 = Новый COMObject("V82.Application"); Сonnection81 = cntr81.Connect(СтрокаПодключения + "Usr=""RZ"";Pwd=""111"""); Исключение ЗаписьЖурналаРегистрации(ОписаниеОшибки()); //ВызватьИсключение(""); Возврат; КонецПопытки; ПутьК_Обработке = Константы.ПутьК_ОбработкеЗагрузкиИзДурдома.Получить(); ОбработкаВыгрузки = cntr81.ВнешниеОбработки.Создать(ПутьК_Обработке); ОбработкаВыгрузки.ЗагрузитьСправочники(); |
|||
30
prog01
08.11.12
✎
15:52
|
(0)совсем забыл спросить а нафига тебе вывод в макет?
может нужно результат запроса перебрать? |
|||
31
sanechichek
08.11.12
✎
15:53
|
(30) мне нужно по расписанию сохранять отчет в xls.
|
|||
32
Defender aka LINN
08.11.12
✎
15:55
|
Еще процедура может быть не совсем экспортной
|
|||
33
prog01
08.11.12
✎
15:56
|
(31)а база в котой это нужно делать не переделывать?
|
|||
34
sanechichek
08.11.12
✎
15:58
|
(33) нет, база типовая и переделывать не желательно
|
|||
35
sanechichek
08.11.12
✎
15:58
|
выполнил: regsvr32.exe "C:\Program Files (x86)\1cv82\8.2.15.310\bin\comcntr.dll"
и всеравно пишет о несоответсвии версии |
|||
36
prog01
08.11.12
✎
16:00
|
(35)это значит что версия откуда ты лезешь не совпадает с версией твоего сервера на котором куда
поставь тоже что и там где куда |
|||
37
sanechichek
08.11.12
✎
16:03
|
(36) у меня версия клиента и версия сервера одинаковы 8.2.15.310
|
|||
38
Лефмихалыч
08.11.12
✎
16:04
|
(35) сноси лишние релизы, по-другому ни ком, ни олю не заставить нужный релиз использовать
|
|||
39
sanechichek
08.11.12
✎
16:06
|
(38) не могу, у меня у разных клиентов разые релизы.
|
|||
40
Лефмихалыч
08.11.12
✎
16:07
|
(39) тогда живи с этим
|
|||
41
sanechichek
08.11.12
✎
16:07
|
а может есть какой-то ключ с помощью которого, при запуске 1с будет выполнятся указанная процедура?
|
|||
42
Spieluhr
08.11.12
✎
16:08
|
(41) направление мысли верное
|
|||
43
sanechichek
08.11.12
✎
16:13
|
(42) вот только не могу найти с каким ключом запустить
|
|||
44
Вяйнемейнен
08.11.12
✎
16:24
|
Сделай внешнюю обработку, вырежь в нее нужные процедуры печати и запускай 1С с ключом /EXECUTE путь_к_файлу_обработки
|
|||
45
prog01
08.11.12
✎
16:27
|
(39)так подключись в данном случае с того же релиза
включи мозг |
|||
46
sanechichek
08.11.12
✎
16:45
|
(45) что серьезно? а я то думаю почему у меня не получается)
я ж уже писал что подключаюсь с нужного релиза. |
|||
47
prog01
08.11.12
✎
16:56
|
(46)а вы почаще регте всякую ботву нештатно, вообще всё работать перестанет
|
|||
48
prog01
08.11.12
✎
16:56
|
(46)там хоть база та на 8.2? )))
|
|||
49
sanechichek
08.11.12
✎
17:02
|
(48) прикалуешся? короче переустановил платформу и помогло.
|
|||
50
prog01
08.11.12
✎
17:09
|
(49)отчет сформировался?
|
|||
51
sanechichek
08.11.12
✎
17:11
|
(50) да, всем спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |