Имя: Пароль:
1C
1С v8
Как правильно запускать экспортную процедуру com Обработки ?
,
0 EarthsSoul
 
23.04.13
06:47
Добрый день, запускаю обработку из внешней базы.

cntr = Новый COMОбъект("V82.Application");
connection=cntr.Connect("File=""D:\MES"";Usr=""Админ"";");
ОбработкаОбмена=cntr.Обработки.ЗагрузкаСправочниковУПП.Создать();
// ОбработкаОбмена на этом этапе видно что ОбработкаОбмена это Com //объект
ОбработкаОбмена.Обмен();

И такое впечатление не отрабатывает экспортная процедура Обмен() обработки "ЗагрузкаСправочниковУПП" , так как у com объекта ОбработкаОбмена не меняются значения реквизитов, хотя в процедуре они меняются и не создает (и не читает) файлы на жестком диске.

Как правильно запускать экспортную процедуру com Обработки ?
1 Rie
 
23.04.13
06:50
(0) А может, перед запуском ей какие-то реквизиты задать надо?
2 EarthsSoul
 
23.04.13
06:52
предусмотрел, в этой процедуре в начале и задаю реквизиты
3 Рэйв
 
23.04.13
07:10
В модуле внешнего соединения вставь функцию

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

//

потом  в коде

Ответ=cntr.ИсполнитьВн("Обработки.ЗагрузкаСправочниковУПП.Создать();ОбработкаОбмена.Обмен();");

Если ТипЗнч(Ответ)=Тип("Строка") Тогда
  Сообщить(Ответ);
КонецЕсли;
4 Рэйв
 
23.04.13
07:11
блин, присвоить забыл:-)

текст кода такой

"ОбработкаОбмена=Обработки.ЗагрузкаСправочниковУПП.Создать();ОбработкаОбмена.Обмен();"
5 Рэйв
 
23.04.13
07:12
Ну и ответ на непустое еще можно проверить. а то если ничего не возвращать специально он пустой строкой придет
6 EarthsSoul
 
23.04.13
07:43
ИсполнитьВн добавлен в базу в которую провожу подключение:

{ОбщийМодуль.МойМодуль.Модуль(174)}: Метод объекта не обнаружен (ИсполнитьВн)
   Ответ=cntr.ИсполнитьВн("ОбработкаОбмена=Обработки.ЗагрузкаСправочниковУПП.Создать();ОбработкаОбмена.Обмен();");
7 Галахад
 
гуру
23.04.13
07:47
"В модуле внешнего соединения"
8 Рэйв
 
23.04.13
07:48
(6)Процедуру надо вставить в МОдуль ВНЕШНЕГО соединения.
И не забыть Экспорт
9 EarthsSoul
 
23.04.13
07:57
Спасибо ), не в той базе делал ), сейчас в реальную вернусь
10 EarthsSoul
 
23.04.13
08:00
Рэйв Спасибо большое :), и всем спасибо похоже все работает еще со вчера ))
11 Рэйв
 
23.04.13
08:04
а вроде вторник еще:-)