Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

8.2, COM-соединение, C#, dynamic строки

8.2, COM-соединение, C#, dynamic строки
Я
   Bchgroup
 
13.02.14 - 14:40
C#
V82.COMConnector v82conn = new V82.COMConnector();
                string cStr = "File=\""+sets.Path1C+"\";";
              
                dynamic handle = v82conn.Connect(cStr);
                extProcess = handle.ВнешниеОбработки.Создать(@"c:\WRK\CTranslator\DB\ПолучениеКаталога.epf");


string s = extProcess.GetCatalog(false); //Работает

string fName =  "C:\\1\\043\\Cat.xml" ;
extProcess.GetCatalog(false,fName); //Валится NullReferenceException

1С код

Функция GetCatalog(ТолькоИзменения,ФайлКаталога = "") Экспорт
    
    ПолучениеТолькоИзменений = ТолькоИзменения;    
        
    Каталог = ПолучитьКаталог(ТолькоИзменения);
    РезультатФормирования = СформироватьПредставлениеКаталогаXML(Каталог,ФайлКаталога);
    
    Возврат РезультатФормирования;    
КонецФункции

В чем косяк вообще может быть?
У меня есть ощущение, что как-то не так передается строка.
   Serginio1
 
1 - 13.02.14 - 14:49
Попробуй
extProcess.GetCatalog(false,ref fName);

В 1С все параметры, кроме знач, передаются по ссылке.
   Bchgroup
 
2 - 13.02.14 - 14:52
(1) Тоже самое, к сожалению.
   Serginio1
 
3 - 13.02.14 - 15:05
Для проверки можно сделать второй вариант GetCatalog

Для проверки сделай регистрацию в Журнал проверку на неопределено

ЗаписьЖурналаРегистрации("GetCatalog",УровеньЖурналаРегистрации.Ошибка,,,ФайлКаталога );

и вообще заходит ли в функцию
   Ненавижу 1С
 
4 - 13.02.14 - 15:09
сделай две функции
   Bchgroup
 
5 - 13.02.14 - 15:18
(3)
Ерунда какая-то, запись в журнал пишется( Строка правильно передана), фиксируется где-то дальше по коду еще одна строка в журнале, и вываливается с ошибкой.

Так в 1С вызывается.
GetCatalog(ложь,"C:\1\043\Cat.xml");    

Права на папку поставил для всех.
   Serginio1
 
6 - 13.02.14 - 15:21
Сделай внутри Функции попытку Исключение
. И попробуй эти все действия из отчета вызвать напрямую. Внешний отчет тем и хорошь, что его легко отладить в среде 1с, а затем уже вызывать из 1с
   Serginio1
 
7 - 13.02.14 - 15:21
(5) Можешь посмотреть в ЖР ошибки.
   Kalambur
 
8 - 13.02.14 - 15:24
тыж строку передаешь а не путь 
string fName =  "C:\1\043\Cat.xml"
   Serginio1
 
9 - 13.02.14 - 15:32
(8) Это в C# экраны. Для того что бы не экранировать @

string fName =  @"C:\1\043\Cat.xml" ;

Просто у него две записи применяются.
   Bchgroup
 
10 - 13.02.14 - 15:36
Так, нашлось решение. Оказалось все дело в безопасном режиме режиме создания обработки
extProcess = handle.ВнешниеОбработки.Создать(@"c:\WRK\CTranslator\DB\ПолучениеКаталога.epf",false); 

вот так надо вызывать
   Serginio1
 
11 - 13.02.14 - 16:09
Спасибо учту.

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