Интеграция с 1С 7.7

Доброго времени суток!

Появилась задача настройки интеграции 1С с BPMonline. Поискав по форуму узнал, что в коробочной версии данная возможность реализована начиная с версии 5.5, а на 5.4 можно реализовать доработкой. А есть ли примеры установки соединения BPMonline --> 1С? Собственно говоря, в какую сторону копать? OLE Automation? COM?

Нравится

14 комментариев

Здравствуйте, Константин!

Предварительно предполагается, что интеграция с 1С выйдет к версии 7.0 отдельным пакетом. Работать она будет начиная с версии 1С 8.2, т.к. интеграция построена через веб-сервисы, а они в 1С есть только начиная с версии 8.2.

Что касается интеграции BPMonline с 1С 7.7, в коробочной версии такой интеграции не предполагается. Использовать COM-объекты не рекомендуется, потому что в этом случае придется устанавливать BPMonline на сервер с 1С, кроме того, есть ряд сложностей с обеспечением стабильности.

Есть варианты прикладных решений, когда было создано некое промежуточное мини-приложение, которое получало из 1С информацию через COM-объекты, и отдавало в BPMonline по протоколу OData.

Здравствуйте, Анна!
Мы все таки решили реализовать вариант именно с COM-объектом. Столкнулись с проблемой: объект получаем, приложение запускается, но метод Initialize всегда возвращает false. Пробовал вставить код в консольное приложение C# - все работает на ура. Как я понимаю - дело в правах доступа, от чего имени вызывает COM-объект BPM. Ведь не может один и тот же код в одном приложении работать, а в другом - нет. Где и каким образом нужно раздать права для BPM, чтобы он всетаки смог подключиться к базе 1С?

Тоже интересно, я так понимаю на сервере, где стоит BPMonline, нужно регистрировать СОM-сервер

Добрый день.

Лучше всего, кончено, посмотреть в сторону интеграции с помощью промежуточных таблиц (т.е. на уровне БД).
А по поводу вызова COM из BPM, полагаю необходимо проверить процесс на IIS, от кого он запускается.

"Олейник Дмитрий" написал:

Добрый день.

Лучше всего, кончено, посмотреть в сторону интеграции с помощью промежуточных таблиц (т.е. на уровне БД).

А по поводу вызова COM из BPM, полагаю необходимо проверить процесс на IIS, от кого он запускается.

С уважением,

Олейник Дмитрий

Эксперт 3-й линии поддержки

Вы меня извините, но когда Вы отвечаете на вопросы вы думаете о них?
Какие промежуточные таблицы если 1с 7.7 все хранит в файле.
Касательно вызова COM и так ясно, что запускается он с правами APPPOOL это и так ясно. Пробовали запустить и от других пользователей. Вы думаете мы сюда просто так решили написать ?

Здравствуйте, Андрей.

Программа 1С( как версия 7.7 так 8) способна быстро и эффективно работать в файловом режиме, с хранением базы в виде файла(файлов). Если размер вашей базы до 500 Мб, и с ней одновременно работают не более 10 человек, то файловый режим является оптимальным режимом работы Однако такой вариант может устраивать далеко не всегда. Во первых: Надежность такой схемы не высока (особенно для 1С 7.7) Нет отказаустойчивости,защиты от блокировок, маштабируемости. Во вторых не высокий уровень безопастности. По сути база данных защищена только политиками безопастности сервера. И если они не мещают, то пользователь иожет например скопировать БД на сменный носитель. В третьих при высокой нагрузке выше производительность системы. Если по какой-то причине файловый сервер вас не устраивает имеет смысл перейти на на режим работы с Sql сервером. В случае, если у вас 1С 8, то переход на sql достаточно прост. 1С 8 поддерживает популярную MS SQL 2005, MS SQL 2008, бесплатную PostgreSQL, IBMDB2 а в версии 8.2 ещё и Oracle. Сама работа для пользоаптеля практически не будет отличаться, от файловой версии. В случае, если у вас 1С 7.7 то здесь все немного сложнее. В плане поддержки SQL server, 1С 7.7 официально ограничен MS SQL 6.5, MS SQL 7 и MS SQL 2000. К сожалению все они являются уже давно устаревшими системами. Плюс пользователи 1С могут замечать серьезное падение скорости работы системы, особенно при работе с типовыми конфигурациями. Все эти проблеммы решаемы, хотя и требуют работы специалиста.

Также немного информации здесь:
http://habrahabr.ru/post/166559/

А по поводу проблем с соединением - данная информация не тестировалась, поэтому воможны различные проблемы. Вы написать консольное приложение, как предлагала Анна в первом после, которое будет "отдавать" нужные данные по Odata не хотите?

"Олейник Дмитрий" написал:

Здравствуйте, Андрей.

Также немного информации здесь:

http://habrahabr.ru/post/166559/

А по поводу проблем с соединением - данная информация не тестировалась, поэтому воможны различные проблемы. Вы написать консольное приложение, как предлагала Анна в первом после, которое будет "отдавать" нужные данные по Odata не хотите?

С уважением,

Олейник Дмитрий

Эксперт 3-й линии поддержки


Димитрий, Вы бы сразу написали бы, что вы не компетентны в этом вопросе, а не городили чушь в ответ. Мы прочитали документацию всю и по 1С, и по BPMOnline. Поставили четкий вопрос, потому, что мы попробовали разные методы. В плоть до написания своего COM-объекта.

Проблема определена нами была четко: у AppPool под которым крутится BPM не хватает прав.

Внимание решение проблемы: http://windowsnotes.ru/iis/application-pool-identities-v-iis/

А Вы нам пишите всякую чушь. Должно быть стыдно за это, и за то что Вы утверждаете, что интеграция с различными системами Вашего продукта есть, но она Вами не тестировалась.

Андрей, здравствуйте еще раз. Считаю критику не обоснованной:

1. Я Вам еще в первом своем комментарии в этой теме писал:

А по поводу вызова COM из BPM, полагаю необходимо проверить процесс на IIS, от кого он запускается.

По Вашей ссылке именно это и расписано:

Каждый пул приложений в IIS использует свой собственный рабочий процесс (IIS Worker Process). Удостоверение пула приложений (Application Pool Identities) представляет из себя имя учетной записи, под которой выполняется рабочий процесс этого пула.

2. Интеграция на уровне промежуточных таблиц как в 8.2, так и в 7.7. возможна. 1С умеет работать не только с файловой БД.

3. Интеграции с 1с 7.7. на 5.4 - нету. Как и с любой другой версией 1С. Тем более на уровне COM. Поэтому она и не тестировалась. Есть общие инструменты интеграции, такие как протокол OData.

Проблема была в том, что

По умолчанию IIS не использует профиль пользователя, но некоторые приложения могут потребовать использование профиля, например для хранения временных файлов. Профиль для учетной записи NetworkService создается системой и всегда доступен. Стандартные пулы приложений (DefaultAppPool, Classic .NET AppPool и т.п.) также имеют профиль пользователя на диске, однако при использовании ApplicationPoolIdentity профиль не создается автоматически.

При запуске 1С от имени учетной записи, под которой выполняется рабочий процесс пула сайта BPM необходим профиль этого пользователя.

Соответственно решение:
надо зайти в расширенные свойства пула и перевести параметр Load User Profile в состояние True.

Да, Антон, так и есть. Только жаль, что Техподдержка об этом не знает. :cool:

К сожалению, поддержка не может знать обо всем на свете, тем более если это не связано с продуктом. Настройка профиля для пула процесса в IIS в связке с приложением запускаемым по технологии COM явно не относится к базовой логике продукта, не находите? Тем не менее, мы всегда стараемся помочь нашим клиентам даже в таких вопросах. Если мой совет посмотреть в сторону пользователя, от которого запускается процесс IIS совершенно сбил Вас с толку - извините. Не мы - так другие пользователи сообщества. Для того, собственно этот форум и создан. Хорошо, что Ваш вопрос все-таки решился.

Коллеги, A. Kryukov и Constantine!

Поделитесь, пожалуйста, примером обращения к веб-сервисам BPMonline из 1С 7.7

Сейчас перед нами стоит такая же задача.

Заранее огромное спасибо!

"HarryG" написал:

Коллеги, A. Kryukov и Constantine!

Поделитесь, пожалуйста, примером обращения к веб-сервисам BPMonline из 1С 7.7

Сейчас перед нами стоит такая же задача.

Заранее огромное спасибо!


Перед нами стояла задача обращаться из BPMonline в 1С 7.7. Если Вам необходимо именно это решение - можем помочь. Если обращаться из 1С в BPMonline, то ИМХО вариант написать COM-объект

Также некоторая информация по соединению из других систем (язык php) и из 1с - здесь:

http://www.community.terrasoft.ru/forum/topic/9613

Показать все комментарии