Обращение к 1С из JAVA по COM

29.12.12

Интеграция - Внешние источники данных

Обращение к 1С из JAVA по COM, используя библиотеку JAWIN.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Jawin
.zip 3,37Mb
28
28 Скачать (1 SM) Купить за 1 850 руб.
Проект на JAVA
.zip 3,59Kb
12
12 Скачать (1 SM) Купить за 1 850 руб.
Теперь можно создавать решения на JAVA, интегрируя ее с 1С по COM. Файл InfoStart.zip содержит запакованный проект на JAVA, который можно использовать в качестве примера. Файл jawin-2.0-alpha1.zip содержит необходимые библиотеки. Я использую бесплатный редактор JAVA Eclipse (http://www.eclipse.org/downloads/). Просто перенесите этот проект в папку проектов вашего Eclipse

Порядок работы
  1. При установке 1С платформы должен быть выбран COM
  2. jawind.dll скопировать в System32
  3. jawin.jar и jawin-stubs.jar из архива скопировать в "C:\Program Files\Java\jre7\lib" (в папку своей java машины)
  4. Зарегистрировать 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

См. также

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

120000 руб.

19.08.2020    26440    26    1    

28

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    22925    24    49    

39

Внешние источники данных Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Готовая интеграция для управляемых форм. Встраивается в вашу 1С как расширение. Реализует автоматический обмен данными между 1С (1С:Фитнес клуб и аналогов) и СКУД RusGuard, автоматизирует бизнес-процессы по созданию и учету сотрудников в СКУД. Значительно упрощает работу специалистов отдела кадров и отдела безопасности: избавляет от двойного ввода информации в 1С и СКУД.

94999 руб.

11.07.2024    1301    1    0    

3

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтерский учет 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП, ФРЕШ).

13200 руб.

19.12.2016    48655    98    106    

70

Зарплата Внешние источники данных Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 организаций (далее Парус) в конфигурацию 1С:Зарплата и управление персоналом, ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

120000 руб.

07.06.2021    13739    2    3    

3

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 7.хх учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

24.04.2017    52671    104    165    

91
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Elisy 951 04.01.13 09:29 Сейчас в теме
Как альтернатива - к опубликованной через веб 1С из Java можно подключаться без COM. А то COM и Java не особо сочетаются как-то.
http://infostart.ru/public/153679/

Код доступа примерно такой:
import net.elisy.businessconnector.*;
import net.elisy.businessconnector.types.*;
import net.elisy.businessconnector.vm.*;

  	Connection connection = new Connection(connectionString);
    	connection.open();
    	connection.login();
    	connection.getLicenseManager().activate(serialNumber, companyName, activationKey);
    	GlobalContext globalContext = new GlobalContext(connection);

        StructureType s = new StructureType(globalContext);
        s.put("null", new NullType());
        s.put("undefined", new UndefinedType());
        
        StringType st = new StringType();
        st.setValue("String1");
        s.put("string", st);
        NumberType nt = new NumberType();
        nt.setValue(12345.678);
        s.put("number", nt);
        DateType dt = new DateType();
        dt.setValue(new Date());
        s.put("date", dt);
        BooleanType bt = new BooleanType();
        bt.setValue(true);
        s.put("boolean", bt);

        StringBuilder script = new StringBuilder();
        script.append("result = new Structure();\n");
        script.append("result.insert(\"null\", parameters.null);\n");
        script.append("result.insert(\"undefined\", parameters.undefined);\n");
        script.append("result.insert(\"string\", parameters.string);\n");
        script.append("result.insert(\"number\", parameters.number);\n");
        script.append("result.insert(\"date\", parameters.date);\n");
        script.append("result.insert(\"boolean\", parameters.boolean);\n");
        StructureType result = (StructureType)globalContext.getServerModule("ElisyBusinessConnector").invoke("Invoke", new Object[] { script.toString(), s });
Показать
2. user827846 18.09.17 05:24 Сейчас в теме
Подскажите, эта библиотека работает с 1С 8.3?
3. sbv2005 348 02.10.17 12:34 Сейчас в теме
Оставьте свое сообщение