|
Ошибка вызова функции через внешнее соединение | ☑ | ||
---|---|---|---|---|
0
Alex_MA
20.09.12
✎
09:11
|
Всем доброго утра!
Есть БД1, в ней я подключаюсь через COMConnector = Новый COMОбъект("V82.COMConnector"); БазаCOM = COMConnector.Connect("Srvr=""" + ИмяСервера + """;"+"Ref=""" + ИмяБазы + """; Usr=""" + ИмяПользователя + """;Pwd=""" + Пароль + """;"); к БД2. Как из БД1 вызвать ф-ю общего модуля БД2 ? В БД создал модуль с галками: "Сервер", "Вызов сервере", "Внешнее соединение", "Клиент (обычное приложение)" ? я пишу следующее: БазаCOM.<ИмяОбщегоМодуля>.<ИмяФункции> - но программа пишет ошибку. http://shot.qip.ru/009B7C-1GAPIlxcf/ ЧЯДНТ? Большое спасибо за внимание. |
|||
1
vmv
20.09.12
✎
09:13
|
тебя одолел лукавий и ты соблазнился глупыми мечтами, которые не сбудуться в этой жизни
|
|||
2
Alex_MA
20.09.12
✎
09:14
|
(1)глаголь :)
|
|||
3
Alex_MA
20.09.12
✎
09:15
|
у все процедур и функций Экспорт
|
|||
4
Рэйв
20.09.12
✎
09:15
|
через модуль внешнего соединения попробуй. Там пропиши вызов. Может взлетит.
|
|||
5
Alex_MA
20.09.12
✎
09:17
|
(4)так думаю взлетит, а на сайте 1С написано по другому
|
|||
6
Alex_MA
20.09.12
✎
09:18
|
(4)
В качестве своих методов внешнее соединение может иметь: системные процедуры и функции; процедуры и функции модуля внешнего соединения и общих модулей, объявленные с ключевым словом Экспорт; дополнительный метод NewObject. Общих модулей |
|||
7
Alex_MA
20.09.12
✎
09:21
|
(4)Да, через модуль внешнего соединения - Ок.
А как с общими модулями быть ? |
|||
8
Рэйв
20.09.12
✎
09:55
|
(7)А общие модули не заточены под это дело. Так что никак.
|
|||
9
Reset
20.09.12
✎
10:07
|
Попробовал
Сообщить(Соединение.ОбщегоНазначения.ЕстьНеЦифры("234234ыва")); Работает. Галки у модуля как в (0). |
|||
10
Reset
20.09.12
✎
10:07
|
(0)Галка "глобальный" случайно не стоит?
|
|||
11
Reset
20.09.12
✎
10:08
|
ps картинка с ошибкой не открывается (заблочен адрес)
|
|||
12
Reset
20.09.12
✎
10:11
|
Если (10), то и без ком не будет работать
|
|||
13
Alex_MA
20.09.12
✎
10:12
|
(10)глобальный не стоит
|
|||
14
Reset
20.09.12
✎
10:13
|
В ошибке - то что пишется, приоткрой тайну
|
|||
15
Alex_MA
20.09.12
✎
10:33
|
||||
16
Reset
20.09.12
✎
10:33
|
не открывается у меня qip
|
|||
17
Alex_MA
20.09.12
✎
10:33
|
vscESBСобытияШины - общий модуль Вн.соединения
|
|||
18
Alex_MA
20.09.12
✎
10:34
|
(16) а это ?
http://gyazo.com/074c9270caf38ec0578bcc3699b52c8f |
|||
19
Reset
20.09.12
✎
10:37
|
(18) Открылось. Нужно смотреть код в вызываемой функции
|
|||
20
Reset
20.09.12
✎
10:38
|
Т.е. это ошибка там, а не при вызове функции
|
|||
21
Reset
20.09.12
✎
10:38
|
еще точнее - это не проблема вызова функции общего модуля внешнего соединения
|
|||
22
Alex_MA
20.09.12
✎
10:40
|
Вот модуль внешнего соединения
//////////////////////////////////////////////// //{{VSC mas(Begin 20.09.2012 // vscESBВнешнееСоединение - Общий модуль с галкой "Внешнее соединение" Процедура НормализацияБитыхСсылокВШине(СтруктураДанных) Экспорт vscESBВнешнееСоединение.ОтправитьМассивСсылокВШинуESB(СтруктураДанных); КонецПроцедуры //End)VSC mas}} В ИБ1: БазаCOM.НормализацияБитыхСсылокВШине(СтруктураДанных); Ошибка: {Форма.Форма.Форма(1109)}: Метод объекта не обнаружен (НормализацияБитыхСсылокВШине) БазаCOM.НормализацияБитыхСсылокВШине(Новый Структура("МассивСсылок, ОчередьПолучателя, ИмяОбъектаXDTO", МассивСсылокКПередаче, ПланыОбмена.vscESB.ЭтотУзел().Очередь, Объект.ИмяКлассаXDTO)); |
|||
23
Reset
20.09.12
✎
10:42
|
Ты же говорил что делаешь
БазаCOM.vscESBВнешнееСоединение.НормализацияБитыхСсылокВШине(Новый ... |
|||
24
Reset
20.09.12
✎
10:42
|
как в 22 писать если vscESBВнешнееСоединение - глобальный
|
|||
25
Reset
20.09.12
✎
10:43
|
стоп запутался
|
|||
26
Reset
20.09.12
✎
10:45
|
замечание по ходу - структуру передавать в ком нельзя, нужно ее создавать в ее контектсте. так же массив и прочее. Кроме базовых типов
|
|||
27
Alex_MA
20.09.12
✎
10:46
|
(26)вот спасибо
|
|||
28
Reset
20.09.12
✎
10:46
|
Вопрос -
Процедура НормализацияБитыхСсылокВШине(СтруктураДанных) Экспорт в каком модуле? |
|||
29
Reset
20.09.12
✎
10:47
|
(27) COMСтруктура=БазаCOM.NewObject("Структура");
COMСтруктура.Вставить("ываыва",123123); |
|||
30
Alex_MA
20.09.12
✎
10:48
|
(28)Модуль внешнего соединения
|
|||
31
Alex_MA
20.09.12
✎
10:49
|
(29)точно, спасибо
а массив ? |
|||
32
Reset
20.09.12
✎
10:50
|
тогде почему "Метод объекта не обнаружен (НормализацияБитыхСсылокВШине)"
не понимаю |
|||
33
Reset
20.09.12
✎
10:50
|
(31) массив тоже
|
|||
34
Alex_MA
20.09.12
✎
10:50
|
да, вопрос
|
|||
35
Alex_MA
20.09.12
✎
11:01
|
почему то структура не заполняется даже примитивными типами
http://gyazo.com/ba9a347c3d6bd4d617296f13144db560 |
|||
36
Reset
20.09.12
✎
11:03
|
Имя поля (ключ сктруктуры) не может быть "1"
|
|||
37
Reset
20.09.12
✎
11:03
|
те же ограничения, что и для идентификаторов
|
|||
38
Reset
20.09.12
✎
11:04
|
хочешь числа как ключи - используй соответствие
|
|||
39
Reset
20.09.12
✎
11:05
|
должен покинуть форум на время, к сожелению. Работа
|
|||
40
Alex_MA
20.09.12
✎
11:06
|
(39)спасибо
|
|||
41
Alex_MA
20.09.12
✎
12:54
|
Как во внешнем источнике понять, есть ли данная ссылка "ba9eb5c2-cbda-11e1-990f-000c29f2dcae" или нет ?
Я делаю так: Если БазаCOM.Справочники[ИмяСправочника].ПолучитьСсылку(БазаCOM.NewObject("УникальныйИдентификатор", "ba9eb5c2-cbda-11e1-990f-000c29f2dcae")).ПолучитьОбъект() = Неопределено Тогда // Ссылки нет КонецЕсли; Но иногда в таких случаях, при получении объекта некотрых метаданных программа уходит в разные модули, например РаботаСОбщимиПеременными.ПолучитьИзКэшаКонфигурации(Имя, НайденноеЗначение, Кэш, ПоместитьВКэш) Экспорт и заваливается на ошибке. Как еще можно проверить есть ли данная ссылка ? |
|||
42
Reset
20.09.12
✎
13:54
|
(41) Так можно
Запрос=БазаCOM.NewObject("Запрос","Выбрать Истина где Не (&Ссылка).Ссылка is null"); Запрос.УстановитьПараметр("Ссылка",ПроверяемаяCOMСсылка); Если Запрос.Выполнить().Пустой() тогда // Нет объекта по ссылке |
|||
43
Alex_MA
20.09.12
✎
16:56
|
(42)красиво
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |