Имя: Пароль:
IT
 
Пример вызова обработки из C#
0 x1000
 
26.08.09
13:54
Поделитесь плиз примером вызова обработки 1с 8.0 из c#.
Спасибо.
1 Дуб
 
26.08.09
14:04
(0) ничего не понял.. Ты про COM?
2 x1000
 
26.08.09
14:05
угу
3 Дуб
 
26.08.09
14:06
(2) ну так - что мешает?
Хотя, по-моему - проще через новый процесс.. Ключик ему при старте подсунуть да и дело с концом..
4 x1000
 
26.08.09
14:09
баг
5 x1000
 
26.08.09
14:10
Не хочется в 1с-ке что то добавлять... там ж, нада будет еще и обрабатывать ключ. Лучше полностью из c#...
6 ptiz
 
26.08.09
14:14
Через ОЛЕ, или (для 8.1) - запуск с ключом /Execute
7 Дуб
 
26.08.09
14:16
(5) что-то такое:
 System.Diagnostics.Process MyProc = new System.Diagnostics.Process();
 MyProc.StartInfo.FileName = ПутьКПрограмме;
 MyProc.Start();
8 x1000
 
26.08.09
14:17
(7)Это ты про запуск с ключем ?
9 Defender aka LINN
 
26.08.09
14:19
(5) Принципиальной разницы, откуда вызывать, нет. Хоть из MSSQL, хоть из 1С, хоть из C#
10 x1000
 
26.08.09
14:21
ну вот... нашел что хотел :

var v81comType = Type.GetTypeFromProgID("V8.Application");
           var v81 = Activator.CreateInstance(v81comType);

           Object[] arguments = { @"File=""D:\Work\База 1С"";Usr=""Администратор"";" };
           object trade = v81comType.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81, arguments);

           object v8_componenta = v81comType.InvokeMember("NewObject", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v81, new object[] { "ВнешниеОбработкиМенеджер" });

           object[] arg = { "c:\\111.epf" };
           object myCompanent = v81comType.InvokeMember("Создать", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v8_componenta, arg);

           object myForm = v81comType.InvokeMember("МояПроцедура", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, myCompanent, null);
           
           System.Runtime.InteropServices.Marshal.ReleaseComObject(v81);
           GC.GetTotalMemory(true);

взято с http://inln.ru/Blog/?tag=/1%d1%81
11 Дуб
 
26.08.09
14:21
(8) угу. Там как-то ещё отдельно параметры запуска указать можно. Искать лениво, но рисовал такое. Там и указать, в каком режиме и что делать
12 x1000
 
26.08.09
14:24
+(10)тут в глобальнике вообще ничего не нужно дорисовывать... в этом и плюс.