|
вызов кода из внешнего соединения | ☑ | ||
---|---|---|---|---|
0
Chameleon1980
28.03.19
✎
10:15
|
Привет всем
есть база 1 ОФ есть база 2 УФ базу 1 менять могу базу 2 - нет к базе 2 из базы 1 подключаюсь V8 = Новый COMОбъект("V83.ComConnector"); как из базы 1 вызвать кусок кода в базе 2 кусок лежит в форме сейчас определенной была идея поместить тот код в обработку, сделать ее внешней и вызвать через соединение типа: V8 = Новый COMОбъект("V83.ComConnector"); СтрокаСоединения=Константы.СтрокаСоединенияСБазой2.Получить(); Соединение=V8.Connect(СтрокаСоединения); ВнешняяОбрабокта=Соединение.Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("ИмяМоейОбработки"); ХранилищеВнешнейОбработки=ВнешняяОбрабокта.ХранилищеОбработки.Получить(); Если ХранилищеВнешнейОбработки=Неопределено Тогда Возврат; КонецЕсли; ИмяВременногоФайла=ПолучитьИмяВременногоФайла("epf"); ХранилищеВнешнейОбработки.Записать(ИмяВременногоФайла); ВнешнийОтчет=Соединение.ВнешниеОтчеты.Создать(ИмяВременногоФайла, Ложь); Попытка ВнешнийОтчет.РеквизитФормыВЗначение("Объект").СведенияОВнешнейОбработке(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Открытие=Неопределено; V8=Неопределено; пишет: {ВнешняяОбработка.СтендВызоваМодуляФормыПоВнешнемуСоединению.Форма.Форма.Форма(25)}: Метод объекта не обнаружен (СведенияОВнешнейОбработке) ЧЯДНТ |
|||
1
Chameleon1980
28.03.19
✎
10:16
|
опережу на всякий случай:
1. обработка в файл сохраняется и из файла создается 2. в модуле той обработки есть: Функция СведенияОВнешнейОбработке() Экспорт |
|||
2
zehn
28.03.19
✎
10:24
|
ВнешниеОтчеты это .erf
|
|||
3
Chameleon1980
28.03.19
✎
10:25
|
без разницы
Соединение.ВнешниеОбработки.Создать(ИмяВременногоФайла, Ложь); |
|||
4
Chameleon1980
28.03.19
✎
10:26
|
стоп
|
|||
5
Chameleon1980
28.03.19
✎
10:27
|
не - нифига
|
|||
6
Chameleon1980
28.03.19
✎
10:28
|
1. это обработка
2. создаю epf 3. создаю Соединение.ВнешниеОбработки |
|||
7
zehn
28.03.19
✎
10:48
|
А зачем тебе вообще РеквизитФормыВЗначение("Объект"), если у тебя в ВнешнийОтчет уже находится точно такой же объект внешней обработки?
|
|||
8
zehn
28.03.19
✎
10:49
|
Да и вообще, РеквизитФормыВЗначение - это как бы метод формы. Удивительно, что оно вообще что-то возвращает.
|
|||
9
Chameleon1980
28.03.19
✎
11:08
|
стоп стоп
изначально было без реквизит формы в значение потом подумал пробовать изначально, наверное, вот: Процедура КнопкаВыполнитьНажатие(Кнопка) V8 = Новый COMОбъект("V83.ComConnector"); СтрокаСоединения=Константы.СтрокаСоединенияСРозницей.Получить(); Соединение=V8.Connect(СтрокаСоединения); ВнешняяОбрабокта=Соединение.Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("СоздатьЗаписьМодели"); ХранилищеВнешнейОбработки=ВнешняяОбрабокта.ХранилищеОбработки.Получить(); Если ХранилищеВнешнейОбработки=Неопределено Тогда Возврат; КонецЕсли; ИмяВременногоФайла=ПолучитьИмяВременногоФайла("epf"); ХранилищеВнешнейОбработки.Записать(ИмяВременногоФайла); ВнешнийОтчет=Соединение.ВнешниеОбработки.Создать(ИмяВременногоФайла, Ложь); Попытка ВнешнийОтчет.СведенияОВнешнейОбработке(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Открытие=Неопределено; V8=Неопределено; КонецПроцедуры |
|||
10
1Сергей
28.03.19
✎
11:09
|
(9) ну, глянь сохраненный файл. ВСё там нормально? Есть функция?
|
|||
11
Chameleon1980
28.03.19
✎
11:13
|
(10) да. проверил. файл создался. открыл его - все есть.
|
|||
12
1Сергей
28.03.19
✎
11:14
|
(11) что в ней?
|
|||
13
Chameleon1980
28.03.19
✎
11:15
|
может
ИмяВременногоФайла=Соединение.ПолучитьИмяВременногоФайла("epf"); |
|||
14
Chameleon1980
28.03.19
✎
11:21
|
вызвался метод
"СведенияОВнешнейОбработке" только я пока не понял как |
|||
15
Chameleon1980
28.03.19
✎
11:22
|
все работает ребята
всем спасибо |
|||
16
Chameleon1980
28.03.19
✎
11:23
|
последнее что поправлял это создание временного файла
было без Соединение. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |