Вход | Регистрация
 

вызов кода из внешнего соединения

вызов кода из внешнего соединения
Я
   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)}: Метод объекта не обнаружен (СведенияОВнешнейОбработке)

ЧЯДНТ
 
 
   Chameleon1980
 
1 - 28.03.19 - 10:16
опережу на всякий случай:

1. обработка в файл сохраняется и из файла создается
2. в модуле той обработки есть:
Функция СведенияОВнешнейОбработке() Экспорт
   zehn
 
2 - 28.03.19 - 10:24
ВнешниеОтчеты это .erf
   Chameleon1980
 
3 - 28.03.19 - 10:25
без разницы

Соединение.ВнешниеОбработки.Создать(ИмяВременногоФайла, Ложь);
   Chameleon1980
 
4 - 28.03.19 - 10:26
стоп
   Chameleon1980
 
5 - 28.03.19 - 10:27
не - нифига
   Chameleon1980
 
6 - 28.03.19 - 10:28
1. это обработка
2. создаю epf
3. создаю Соединение.ВнешниеОбработки
   zehn
 
7 - 28.03.19 - 10:48
А зачем тебе вообще РеквизитФормыВЗначение("Объект"), если у тебя в ВнешнийОтчет уже находится точно такой же объект внешней обработки?
   zehn
 
8 - 28.03.19 - 10:49
Да и вообще, РеквизитФормыВЗначение - это как бы метод формы. Удивительно, что оно вообще что-то возвращает.
   Chameleon1980
 
9 - 28.03.19 - 11:08
стоп стоп
изначально было без реквизит формы в значение 
потом подумал пробовать

изначально, наверное, вот:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    V8 = Новый COMОбъект("V83.ComConnector");
    СтрокаСоединения=Константы.СтрокаСоединенияСРозницей.Получить();
    Соединение=V8.Connect(СтрокаСоединения);

    ВнешняяОбрабокта=Соединение.Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("СоздатьЗаписьМодели");
    
    ХранилищеВнешнейОбработки=ВнешняяОбрабокта.ХранилищеОбработки.Получить();
    
    Если ХранилищеВнешнейОбработки=Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    ИмяВременногоФайла=ПолучитьИмяВременногоФайла("epf");
    
    ХранилищеВнешнейОбработки.Записать(ИмяВременногоФайла);
    
    ВнешнийОтчет=Соединение.ВнешниеОбработки.Создать(ИмяВременногоФайла, Ложь);

    Попытка
        
        ВнешнийОтчет.СведенияОВнешнейОбработке();
        
    Исключение
        
        Сообщить(ОписаниеОшибки());
        
    КонецПопытки;
        
    Открытие=Неопределено;
    V8=Неопределено;
    
КонецПроцедуры
   1Сергей
 
10 - 28.03.19 - 11:09
(9) ну, глянь сохраненный файл. ВСё там нормально? Есть функция?
   Chameleon1980
 
11 - 28.03.19 - 11:13
(10) да. проверил. файл создался. открыл его - все есть.
   1Сергей
 
12 - 28.03.19 - 11:14
(11) что в ней?
   Chameleon1980
 
13 - 28.03.19 - 11:15
может
ИмяВременногоФайла=Соединение.ПолучитьИмяВременногоФайла("epf");
   Chameleon1980
 
14 - 28.03.19 - 11:21
вызвался метод 
"СведенияОВнешнейОбработке" только я пока не понял как
   Chameleon1980
 
15 - 28.03.19 - 11:22
все работает ребята
всем спасибо
   Chameleon1980
 
16 - 28.03.19 - 11:23
последнее что поправлял это создание временного файла
было без Соединение.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.