Снова про 1С: удаление объектов из программы-клиента на C#
От: www.rbc.ru  
Дата: 15.05.06 06:48
Оценка:
Всем добрый день!

Еще один вопрос по работе с 1С из внешней программы на C#.
Пишу на C# код, который помечает на удаление операцию с определенной позицией. На 1С 7.7 все работает прекрасно.

 Опер=СоздатьОбъект("Операция"); 
 Опер.ВыбратьОперации(23000); // Позиция операции
 Если Опер.ПолучитьОперацию()=1 Тогда
     Опер.Удалить(0);
 КонецЕсли;


Такой же код на C# выдает ошибку "Недопустимая операция" в строке, где происходит удаление:

object retvalue =
    m_obj.GetType().InvokeMember("Удалить",
    BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,
    null, m_obj, new object[1] { 0 });


В чем проблема, никак не пойму
То ли это фича в 1С такая: запрещать удаление бизнес-объектов "извне", то ли с вызовом метода какая-то лажа.
Если кто сталкивался, откликнитесь, плс!

Заранее спасибо.
Re: Снова про 1С: удаление объектов из программы-клиента на
От: WondeRu Россия http://directshow.wonderu.com/
Дата: 15.05.06 07:30
Оценка:
Подозреваю, что ошибка тут

WRR> m_obj.GetType().InvokeMember("Удалить",


Возможно, указание метода по-русски вообще не заработает. Еще можно поковырять culture.

[C#]
public object InvokeMember(
string name,
BindingFlags invokeAttr,
Binder binder,
object target,
object[] args,
CultureInfo culture
);
My home: http://www.wonderu.com/
----------
http://directshow.wonderu.com — DirectShow по-русски (статьи, форум)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.