Пример использования: вызов метода
из стандартной конфигурации 1С Предприятие 8

Автор: Виталий Шакуров
Компания: Janet systems

В приведенном примере мы установим и сконфигурируем iJaNet 1C Connector, затем создим клиентское java-приложение содежращее вызов метода ПолучитьВспомогательныйСчет() из модуля БухгалтерскийУчёт стандартной конфигурации 1C Предприятия версии 8.

Требования к окружению

  1. Для работы примера на компьютере должно быть установлено 1С Предприятие 8 и стандартная конфигурация "Бухгалтерия предприятия".
  2. JDK версии 1.5 или выше можно загрузить по адресу. Рекомендуем использовать последнюю доступную версию JDK. Далее для ссылок на место установки JDK будем использовать следующее обозначение $JAVA_HOME.
  3. ant версии 1.6 или выше доступен по адресу. Рекомендуем использовать последнюю доступную версию ant. Далее для ссылок на место установки ant будем использовать следующее обозначение $ANT_HOME.
  4. Последнюю версию iJaNet SDK for java можно загрузить по адресу (ссылки вида janet-sdk-5.x.x.zip).
  5. Создать папку в которую будет помещены создаваемые janet-модули и описание бизнес-процесса. Далее ссылки на эту папку будем обозначать $JANET_PROJECTS.

Подготовка к работе

Для доступа к объектам 1С через COM конфигурация 1С должна быть переведена в режим поддержки с воможностью внесения изменений. Для переключения в этот режим запустите 1C в режиме конфигуратора, затем выберите пункт меню Конфигурация/Поддержка/Настройка поддержки...

окно Настройка поддержки
Настрока поддержки конфигурации 1С

В открывшемся окне нужно нажать на кнопку Включить возможность изменения.

Установка коннектора

Последнюю версию iJaNet 1C Connector можно загрузить по адресу (ссылки вида 1C-Connector-5.x.x.msi). Процесс установки iJaNet 1C Connector подробно рассмотрен в Руководстве по установке.

Коннектор предаставляет собой janet-модуль, созданый с помощью iJaNet SDK.NET. Модуль коннектора должен быть развёрнут на сервере приложений iJanet Server.NET, который включён в дистрибутив коннектора. Мастер установки коннектора произведёт инсталляцию сервера приложений с уже развёрнутым iJaNet 1C Connector.

Конфигурирование и запуск сервера

Для работы коннектора нужно указать путь к БД конфигурации 1C. Для этого перейдите в папку $SERVER_INST_DIR/modules/1cconnector

cd $SERVER_INST_DIR/modules/1cconnector 

Замечание: Здесь и далее для ссылок на место установки iJaNet Server.NET мы будем обозначение $SERVER_INST_DIR

Откройте файл jws-module.xml в редакторе, перейдите к секции <local-services> и измените значение параметра conn-string в описании службы Com1C.

 1 <service name="Com1C" publish="true">
 2     <factory-class>iJaNet.Com1c.Com1CServiceFactory</factory-class>
 3     <service-interface>iJaNet.Com1c.ICom1CService</service-interface>
 4     <parameters>
 5         <param name="persister" type="iJaNet.Com1c.ComPersisterConfig">
 6             <persister-class>iJaNet.Com1c.ComPersister</persister-class>
 7         </param>
 8         <param name="ole-name" type="string">V81.ComConnector</param>
 9         <param name="conn-stirng" type="string">File=D:/path/to/1C/base;Usr=admin; Pwd=admin;</param>
10     </parameters>
11 </service>

Откройте Панель управления/Службы и найдите в открышемся списке службу с названием iJaNet Server.NET Windows Service. Запустите эту службу.

список служб Windows
Список служб Windows

Создание клиентского приложения

Для сборки и запуска клиентского приложения нам понадобятся библиотеки из iJaNet SDK for Java. Архив с SDK можно скачать по адресу (ссылки вида janet-sdk-5.x.x.zip). Скачаный архив распакуйте в папку $JANET_PROJECTS.

cd $JANET_PROJECTS
unzip -o janet-sdk-5.x.x.zip

После чего можно приступать к созданию клиентского приложения. Для этого внутри $JANET_PROJECTS создайте папку client.

mkdir client

Скопируйте файлы Client.java и jws-module.xml в созданую папку. Последний содержит только секцию <remote-module-ref> cледующего вида

 1 <remote-module-ref>
 2     <transport>
 3         <transport-name>http</transport-name>
 4         <parameters>
 5             <param name="transport.http.url" type="string">http://localhost:8881/1cconnector</param>
 6             <param name="transport.http.timeout" type="int">5000</param>
 7             <param name="transport.compress" type="boolean">true</param>
 8             <param name="transport.compressionLevel" type="int">9</param>
 9         </parameters>
10     </transport>
11     <service-proxy local-name="module.com1c" remote-name="Com1C">
12         <service-interface>iJaNet.Com1c.ICom1CService</service-interface>
13     </service-proxy>
14 </remote-module-ref>

Секция содержит ссылку на системный модуль Com1C с интерфейсом iJaNet.Com1c.ICom1CService. Данный интерфейс позволяет организовать доступ к объектам конфигурации 1С. Этот интерфейс входит в библиотеку 1cconnector-5.2.х.jar, которая поставляется в составе коннектора. Скопируйте файл с этой библиотекой в папку $JANET_PROJECTS/client.

cd $JANET_PROJECTS/client
cp $SERVER_INST_DIR/modules/1cconnector/1cconnector-5.2.х.jar .

После этого можно выполнить сборку клиентского приложения.

$JAVA_HOME/bin/javac -cp .:../template/application/janet-core.jar:../template/application/jws-core.jar Client.java

Запуск клиента и результаты работы

Для запуска клиентского приложения перейдите в папку $JANET_PROJECTS/client

cd $JANET_PROJECTS/client

и выполните команду

$JAVA_HOME/bin/java -cp ./:../template/application/janet-core.jar:../template/application/jws-core.jar Client

по завершении работы клиента в консоли должны появиться следующие сообщения

[Thu Dec 24 13:24:11 MSK 2009] Client started
[Thu Dec 24 13:24:34 MSK 2009] Вспомогательный счет
[Thu Dec 24 13:24:35 MSK 2009] Client ended
[Thu Dec 24 13:24:35 MSK 2009] Bye!

SupportSettingsWindow.jpg - окно Настройка поддержки (181.5 KB) Виталий Шакуров, 12/23/2009 05:43 pm

Client.java - клиентское приложение (1.4 KB) Виталий Шакуров, 12/24/2009 12:02 pm

jws-module.xml - конфигурация клиентского приложения (3.3 KB) Виталий Шакуров, 12/24/2009 12:20 pm

Services.PNG - список служб Windows (28 KB) Виталий Шакуров, 12/24/2009 04:26 pm

Also available in: HTML TXT