Ответить на комментарий
Проект J1C
Проект J1C - это реализация программного API на JAVA к данным на платформе 1C:Предприятие v7.7. J1C позволяет, как прочитать данные из системы, так и изменять (создавать, удалять и изменять объекты, проводить документы и т.п.). Использование J1C возможно одновременно с 1С:Предприятием, так как J1C не нарушает работу 1С:Предприятия (используются те же механизмы работы с данными, что и само 1С:Предприятие).
С точки зрения реализации, J1C - это JAVA классы, реализующие функциональность 1C:Предприятия:
- J1C работает с данными, так же как и само 1С:Предприятие: создает номера объектов согласно настройкам в метаданных, манипуляция с данными сопровождается по такому же алгоритму блокировок, что и у самой 1С и это позволяет корректно работать J1C одновременно с клиентами использующими 1С:Предприятие
- Да, J1C может проводить документы. Алгоритм проведения отрабатывает особенности этого процесса: блокировка в нужной последовательности необходимых таблиц, создание по родному алгоритму внутренних идентификаторов, учитываются все особенности при проведении - изменение данных графов отбора, подчиненных документов и т.п. Так же, как и в 1С, программисту необходим только реализовать логику проведения (модуля проведения), всю же техническую работу по записи данных J1C берет на себя
- Доступ к метаданным конфигурации, что позволяет создавать универсальный код, работающий на любой конфигурации
- Для того, что бы программистам 1С было легче ориентироваться в API, было решено сделать классы максимально "похожими" на объекты самой платформы (справочники, документы, константы и т.д.)
Кроме того, J1C реализует дополнительный функционал:
- прямой доступ, в нотации 1CPP, к данным
- объекты J1C представлены тремя сущностями (аналогично 1С:8*): ссылки, объекты и менеджеры. Смысл такого разделения такой же что и в 8-ке.
- Более полный доступ к метаданным конфигурации - теперь разработчику доступна информация, которая в самой платформе скрыта. Это касается внутренних идентификаторов, предопределенных объектов и др. Т.о. теперь доступна возможность реализовывать собственную логику работы с 1С, отличной от J1C
- Теперь J1C можно использовать, как сервер приложения. Это можно реализовать, к примеру, через WebServices, где запускается один экземпляр сервиса обрабатывающий запросы клиентов или через rmi. В отличие от технологии доступа через OLE, J1C позволяет на одной машине (сервере) обрабатывать существенно большее количество запросов, чем через OLE, при которой можно запустить максимум 3-5 процессов 1С:Предприятия на одной машине
API работает на любой конфигурации. Для подключения J1C достаточно указать каталог базы данных. Есть возможность подключение к базе данных, как через учетную запись SQL сервера, которой пользуется 1С:Предприятие, так и подключение через настраиваемые учетные записи. Причем первый вариант подключения не требует дополнительных настроек API - J1C сама может "понять" необходимую информацию.
Зачем это нужно?
Прежде всего, нужно отметить, что не следует рассматривать J1C как альтернативный клиент 1С. Тем более, что J1C это только программное API к данным и интерфейсная часть не предусматривается (хотя такая возможность есть - объектная модель API позволяет это реализовать при необходимости).
Преимущества J1C:
- Интеграция 1С:Предприятия 7.7 с другими системами, которые поддерживают JAVA
- Реализация WEB доступа к данным 1С:Предприятия, без наличия издержек производительности и безопасности (как это имеет место с существующими технологиями типа WEB-расширения или com-объекта)
- Интеграция с 1С:Предприятие 7.7. с использованием JAVA технологий, например WEB-service
- Доступ к данным на SQL сервере напрямую, используя псевдонимы таблиц и и виртуальные таблицы в нотации 1CPP
Список можно продолжать, но понятно что имея доступ 1С:Предприятию на JAVA и работая с данными на JAVA - возможности интеграции с 1С существенно расширяются.
Кому это нужно?
Во-первых, известно, что программисты 1С занимающиеся разработкой прикладных решений рано или поздно приходят к пониманию, что функционал самой платформы 1С:Предприятия 7.7 ограничен и не позволяет решать эффективно поставленные задачи.
Во-вторых, программисты, которым посчастливилось не работать с 1С:Предприятием, но по некоторым обстоятельствам столкнувшиеся с необходимостью взаимодействия с данными 1С, имеют проблемы связанные с незнанием встроенного языка 1С, незнанием архитектуры платформы, не понимания смысла тех или иных таблиц из-за их не читаемых названий и полей или же с функциональными ограничениями доступа к данным (только посредством самой платформы в режиме com-объекта).
Проект J1C это попытка:
- Предоставить программистам 1С возможность реализовать себя в предметной области, но на технологически более высоком уровне используя в качестве языка программирования JAVA
- Предоставить НЕ программистам 1С понятный интерфейс взаимодействия с данными 1С, не заставляя их изучать все парадигму и особенности 1С