- При установке 1С платформы должен быть выбран COM
- jawind.dll скопировать в System32
- jawin.jar и jawin-stubs.jar из архива скопировать в "C:\Program Files\Java\jre7\lib" (в папку своей java машины)
- Зарегистрировать dll: в командной строке введите: "Regsvr32 jawind.dll"
Пример java кода (к проекту должны быть подключены файлы библиотек jawin.jar и jawin-stubs.jar из архива )
import org.jawin.COMException;
import org.jawin.DispatchPtr;
import org.jawin.Variant;
import org.jawin.win32.Ole32;
public class Test {
public static void main(String[] arg) throws COMException {
String str1CServer = "";
String str1CDB = "";
try {
Ole32.CoInitialize();
DispatchPtr app = new DispatchPtr("V82.COMConnector");
str1CServer = "1CServer";
str1CDB = "1CDB ";
DispatchPtr ref = (DispatchPtr) app.invoke("Connect", "Srvr=\"" + str1CServer + "\";Ref=\"" + str1CDB + "\"");
// Чтение справочников
DispatchPtr listOfGlossary = (DispatchPtr) ref.get("Справочники");
DispatchPtr glossary = (DispatchPtr) listOfGlossary.get("Контрагенты");
DispatchPtr chooser = (DispatchPtr) glossary.invoke("Выбрать");
while ((Boolean) chooser.invoke("Следующий")) {
String NameKontr = (String) chooser.get("Наименование");
System.out.println(ref.invoke("String", NameKontr));
}
// Обращение к функции общего модуля с параметрами ПервыйПараметр, ВторойПараметр и т.д, (в моем случае возвращается значение типа Строка)
DispatchPtr obModul = (DispatchPtr) ref.get("ИмяОбщегоМодуля");
String Otvet = (String) obModul.invoke("ИмяФункции", "ПервыйПараметр", "ВторойПараметр");
Ole32.CoUninitialize();
} catch (COMException comex) { // Перехват исключений
System.out.println(comex); // Ошибка в работе COM соединения 1С
}
} // End main
} // End class