Двухстороння интеграция BPMOnline 7 с 1С 8.2

Здравствуйте,

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

Необходимо реализовать двухстороннюю интеграцию BPMOnline On-Site 7.0 с 1С 8.2:

1. При сохранении продажи в BPMOnline должен создаваться новый документ в 1С - заказ покупателя

2. При создании/сохранении в 1С документа Приходный кассовый ордер в BPMOnline должен изменяться статус продажи на "Завершена"

Какими средствами это лучше реализовать?

Насколько я понимаю 2 пункт реализуется с помощью oData методом PUT для изменения значения поля конкретной продажи.

Заранее благодарен

Нравится

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

Здравствуйте.

Все верно, второй пункт: запрос по Odata к BPM. Писать придется на 1С-языке.

Пример обращения к Odata из 1С

Site = "http://site:8081/WebApp/";//СокрЛП(Константа.BPMonline_Site);
DeletedEntityQueryTextTitle = "0/ServiceModel/EntityDataService.svc/DeletedEntityCollection?$select=";
DeletedEntityQueryText1 = "Id,ID1C,EntityUId,ModifiedOn,Date,DocumentDate,Entity,DocumentDate,AccountType/Id,AccountType/Name,DocumentType/Id,DocumentType/Name,Division/Id,Division/Code1C,Division/Name";
DeletedEntityQueryText2 = "&$expand=AccountType,DocumentType,Division";
DeletedEntityQueryTextConditions = "&$filter=(ModifiedOn gt datetime'" + ModifiedDateFrom + "' and Division/Code1C eq '"+ DivisionCode + "') ";
DeletedEntityRequestText = Site + DeletedEntityQueryTextTitle + DeletedEntityQueryText1 + DeletedEntityQueryText2 + DeletedEntityQueryTextConditions;
OdataRequest = PreapareRequestHeader(DeletedEntityRequestText);
OdataRequest.SetCredentials("O.Kotko", "O.Kotko", 0);
OdataRequest.Send();

Первый - вопрос достаточно сложный. Рекомендую ознакомиться с этой темой:

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

Дмитрий, спасибо за ответ!

Ознакомился с постом. Насколько я представляю (пока теоретически) создается на сервере 1С COM-объект со ссылкой на COM службу 1С. Далее через .NET Remoting BPMonline обращается к нему.

Для реализации этого в бизнес-процессе необходимо добавить компонент C# скрипта, где реализовать логику обращения и работы с методами?

Валентин, это как один из вариантов.

Есть более "удачный" что ли вариант, работая через веб-сервисы 1С (это если 8.2).

Во вложении вкладываю файлы (для разработчиков) которые, надеюсь, помогут Вам понять ход реализации интеграции.

Подскажите, данный вариант (1c_and_bpm70.rar) подходит только для bpm7, т.е. его нельзя использовать для bpm5.4?

Нет, почему... Можно, конечно, и под 5.4 использовать. Но, разумеется, результатов гарантировать Вам не могу.
Интеграция по этой технологии разрабатывалась и появится именно в 7.х в скором времени.

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

Валентин, это как один из вариантов.

Есть более "удачный" что ли вариант, работая через веб-сервисы 1С (это если 8.2).

Во вложении вкладываю файлы (для разработчиков) которые, надеюсь, помогут Вам понять ход реализации интеграции.

Прикрепленный файлРазмер

1c_and_bpm70.rar
1.19 Мб

С уважением,

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


Добрый день!

А есть файл Requests.rtf?

Добрый день,

Честно говоря, думал это стандартный отчет. К сожалению, нет.
Он используется просто для проверки наличия записей в плане обмена...
Просто откройте консоль запросов и выполните запрос:

ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ Справочник.Контрагенты.Изменения

где справочник.контрагенты - объект 1с, подключенный к плану обмена.

Спс, попробую.

Добрый день!

Не совсем понятно что в bpm'online (Версия 7.6.0.840) нужно добавить чтоб синхронизировать данные (например справочник контрагентов). Есть какое то видео или наглядный пример? Буду очень признателен.

Роман,

по 1C Connector как раз недавно выпустили статью и 2 обзорных видео.

Для включения функционала нужно накатить пакет поверх вашей системы. Скажите, у вас система OnSite или OnDemand?

Александр,
спасибо за очередную попытку впарить 1C Connector. Но скажите, пжл, как этот чудо продукт поможет мне использовать web сервисы сторонних разработчиков? Например, банальную загрузку курса валют. Или web сервис из этой статьи... Меня интересует информация как программиста, а не как пользователя.

Роман, базовая версия продукта 1C Connector абсолютно бесплатна и в скором времени будет включена во все базовые сборки bpm'online.
Изначально вопрос стоял, чтобы по событию в bpm'online вызывался web-сервис 1С, именно по такому принципу работает 1C Connector.

Если Вы хотите из кода 1С получить данные "web сервисов сторонних разработчиков", то не совсем понятно при чем тут bpm'online:smile:. Если все таки Вы хотите получить данные в код 1С из сервисов bpm'online, достаточно обратиться к сервисам bpm'online по протоколу OData, как указано в 1м комментарии к этому посту.
В приведенной Вами статье нет ни слова про синхронизацию, только про одностороннее получение данных в 1С из внешних сервисов. Кстати там в дисклеймере написано, что указанный код НЕ будет работать в последних версиях 1С.
Кстати, чтобы отправить какую то информацию из 1С в bpm'online, мы тоже не пишем код на 1С. Мы используем план обмена и обращения ИЗ bpm'online В 1C. Это отдельная тема, обещаю пост на эту тему до конца месяца:smile:

Александр, мне нужно в bpm'online использовать web сервисы. Все равно чьи, будто 1С или другой поставщик. По скольку я сам программист 1С, мне проще создать web сервис в ней. Не понятно как в bpm'online использовать эти сервисы. Например, в 1С есть WS-ссылки в которые позволяют подтянуть web-сервисы и работать с ними... Принцип работы через план обмена мне понятен...
Мне к концу месяца нужно увязать 1С и SharePoint с bpm'online, иначе смысла дальше не будет мне изучать... :-(

P.S. Где я могу получить 1C Connector?
Заранее благодарен.

Роман, теперь понял задачу.
Вам нужно:

  1. Создать бизнес-процесс и повесить его на сигнал, например так:
  2. Написать скрипт обращения к веб-сервисам так, как бы вы его писали на классическом C#

Приведу 2 примера скриптов:

  1. Отправка сообщения через сервис смс-рассылки по протоколу SMPP (код намерено упрощен, отсутствуют дополнительные проверки):
    SmppClient mmclient = new SmppClient();
    SmppConnectionProperties mmproperties;
    TextMessage msg = new TextMessage();
    mmproperties = mmclient.Properties;
     
    mmproperties.SystemID = "someClient";
    mmproperties.Password = "somePassword";
    mmproperties.Port = 4442;
    mmproperties.Host = "server1.smstraffic.ru";
     
    mmclient.Start();
     
    msg.DestinationAddress = "+79023218417";
    msg.SourceAddress = "PTSOFT";
    msg.Text = "Ваш номер телефона успешно зарегистрирован. Код подтверждения " + code;
    msg.RegisterDeliveryNotification = true;
     
    mmclient.SendMessage(msg);
  2. Обращение к сервисам 1С из того же 1C Connector:
    System.ServiceModel.EndpointAddress ep = new System.ServiceModel.EndpointAddress(settings.Integration.OneCServer);
    System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
     
    binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly;
    binding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Basic;
    binding.MaxReceivedMessageSize = 2147483647;
    syncClient = new SyncService.PT1CConnectorPortTypeClient(binding, ep);
    syncClient.ClientCredentials.UserName.UserName = settings.Integration.OneCUser;
    syncClient.ClientCredentials.UserName.Password = settings.Integration.OneCPassword;
    syncClient.Open();

По 1C Connector напишите мне пожалуйста на почту - svistunov@samarasoft.ru, я скину все материалы, дистрибутив и инструкцию по установке.

Вопрос может и простой, но ответа сам найти не могу, BPM 7.6, 1C 8.2, интеграция с СамараСофт, веб сервис IIS создан без файла 1cws, а для ссылки, мне сказали, он обязателен, на форумах пишут что в 8.2 его нет, как поступить?

Владимир, добрый день!
Все очень просто - следуете в точности шагам инструкции, настраиваете работоспособность коннектора в соответствии с пунктами руководства, а уже потом можете пытаться варьировать параметрами настройки на основе рекомендаций сторонних форумов и опыта в 1С.
На сколько я понимаю, у вас сейчас проблемы с пунктом 1.3.3 руководства (НАСТРОЙКА СВОЙСТВ WEB-СЕРВИСА)?
Я прошу вас проверить, что все предыдущие пункты вы выполнили без отклонений в точном соответствии с руководством и прислать свойства веб-сервиса. Согласно инструкции, они должны выглядеть именно так:

Здравствуйте, Александр
Вот так у меня выглядит 1С
http://joxi.ru/RmzqJgpUE3oRrO
вот так я обращаюсь к нему через браузер
http://joxi.ru/5md7PWjc9dEQr1
и вот что я вижу в интеграции bpm
http://joxi.ru/RmzqJgpUE38RrO
в чем все таки проблема?

Добрый день!

У меня то же самое выдало сообщения. Платформа 8.3. При подключении к web-сервисам из другой 1С все работает...

Здравствуйте, у меня нет другой 1С...

Владимир, Роман, возможно, Вам будет полезна данная статья http://www.community.terrasoft.ru/blogs/10766 где также рассматривается вопрос по работе РТ 1С коннектора http://www.community.terrasoft.ru/blogs/10766 или статья на sdk где рассматривается работа через вебсервисы http://academy.terrasoft.ru/documents/docs/technic/SDK/7.4.1/Integratio…

Коллеги,

Просьба первичную настройку системы выполнять в соответствии с инструкцией пользователя, чтобы было проще диагностировать проблему, а именно:

  1. НЕ указывать пространство имен
  2. Указать имя сервиса, как в инструкции
  3. Обращаться к созданному сервису, а не к веб-интерфейсу 1С, это принципиально разные вещи
  4. Проверил, сейчас даже базовый сервис не доступен - http://joxi.ru/a2XQZgdiP8lWAg

Владимир, просьба - устраните пожалуйста отклонения 1-4 от инструкции и напишите мне, если проблема сохранилась. Если сохранилась - подключимся и сразу решим!

Здравствуйте, Александр, у Вас ошибочка вкралась, не http://srdv-venta-nt.ru/bpmconnector, а http://srdv.venta-nt.ru/bpmconnector

Инструкция гласит http://joxi.ru/8An6R0LS6307AO, у меня http://joxi.ru/RmzqJgpUE3oRrO, так указывать пространство имен или нет, имя сервиса указано, bpmconnector и есть созданный сервис, файла 1cws в версии 8.2 нет

Владимир,
*.1cws в 8.2 есть, это я вам ответственно заявляю:smile:

И даже на Вашей системе, вот правильная ссылка, которая сформирована Вашей 1C с учетом Ваших настроек - http://srdv.venta-nt.ru/bpmconnector/ws/bpmconnector.1cws

Пропишите пожалуйста именно этот адрес на стороне bpm'online и попробуйте подключиться под своими учетными данными.

Владимир, Добрый день!

Небольшая ремарка: как мы Вам писали, пространство имен должно быть PT1CConnector.

С уважением,
Зайчиков Илья

Александр, этот вариант уже пробовался неоднократно, http://joxi.ru/Q2KpPxJFZDLkAj

Вот такой результат без bpm, http://joxi.ru/1A5z79NuLebMrE

Интересует более детальное описание, как правильно прописывать путь к веб сервису.
Вот у меня версия BPM onsite sales 7.6 установлена на компьютере, 1С Предприятие 8.2, имя публикации веб-сервиса ws1.1cws. Это все на локальном компьютере. Вот адрес системы: http://localhost:81/0/Nui/ViewModule.aspx#IntroPage/OmnichannelIntro Тогда как мне нужно прописать веб-сервис в 1С коннекторе?

Добрый день, коллеги! Проблема Владимира была выявлена. Она заключалась в том, что в логине прописали некорректные данные. Вместо английской буквы "Си" была использована, видимо, русская "С". Поэтому возникали ошибки. Сейчас веб-сервис доступен.

С уважением,
Зайчиков Илья

Николай, правильно писать путь следующим образом:

Например:
сервер stnd-1c-05
имя публикации Russia76
имя файла ws76.1cws

Ссылка: http://stnd-1c-05/Russia76/ws/ws76.1cws

Т.е. http://имя_сервера/имя_публикации/ws/ws1.1cws

С уважением,
Зайчиков Илья

Не могу понять, что мне писать вместо сервера stnd-1c-05?

У меня 1С на локальном компе.
http://localhost/TradeEntrUkr/ws/ws1.1cws не подходит, http://192.168.1.105/TradeEntrUkr/ws/ws1.1cws тоже не подходит.
Пишет: Not Found
The requested URL /TradeEntrUkr/ws/ws1.1cws was not found on this server.

В чем может быть причина?

Анатолій, добрый день.

Я правильно понял, что Вы прошли все шаги инструкции по установки до публикации и настройки сервисов включительно и сервисы у вас опубликованы и доступны из браузера, но недоступны из 1C Connector?

Да, я все проделал по инструкции. Я не знаю как проверить доступны ли они из браузера, потому как не понимаю, какой сервер прописать. 1С у меня на компе. Публикацию и настройку сервисов проделал.

Анатолій, смело добавляйте меня в скайп - поможем:smile:
aleksandr.svistunov@hotmail.com

P.S.: скайп сегодня подташнивает, поэтому можете написать на почту svistunov@samarasoft.ru

Боюсь, что нахожусь уже в черном списке поддержки Самарасофт, поэтому спрошу здесь на виду общественности :smile:
7.6.0 sales + 1с 8.3
В рамках самообразования проделал все шаги мануала по настройке коробочной интеграции.
Сервис созданный вижу в браузере, ссылка получилась вида "http://192.168.40.174/InfoBase/ws/PT1CCONNECTOR.1cws" и работает в браузере (то есть вебсервис 1c виден и откликается).
Но вот при запуске интеграции из bpm штатной кнопкой в логе вот такой текст:

13-10-2015 01:08:59:: message: Start Sync
13-10-2015 01:08:59:: message: Start Sync 80bb62e8-dbbe-4df3-9f68-6f2360b25ed1
13-10-2015 01:08:59:: message: to 1C. 1C Table:Контрагенты
13-10-2015 01:08:59:: message: to 1C. 1C Table:Контрагенты bpm table: Account
13-10-2015 01:08:59:: message: ESQ. Get 47 records
13-10-2015 01:09:00:: message: Start Sync 234f8e3a-d3f0-43a4-904d-02ae9b5e4a9b
13-10-2015 01:09:00:: message: Integration in bpm
13-10-2015 01:09:00:: message: start in bpm
13-10-2015 01:09:00:: message: Контрагенты
13-10-2015 01:09:00:: message: syncPairs.Count: 2
13-10-2015 01:09:00:: message: Запрос HTTP не разрешен для схемы аутентификации клиента "Basic". От сервера получен заголовок аутентификации "Basic realm="1C:Enterprise 8.3"".
13-10-2015 01:09:00: Error: error in  on 1C -> bpm'online with таблица bpm'online Account, таблица 1С Контрагенты, Запрос HTTP не разрешен для схемы аутентификации клиента "Basic". От сервера получен заголовок аутентификации "Basic realm="1C:Enterprise 8.3"".
13-10-2015 01:09:00:: message: Integration in bpm end

Очень хочется получить подсказку, куда копать и где искать причины того, что созданный вебсервис 1с не может достучаться до развернутого локально под iis сайта (правильно понял я источник проблемы?) - что надо хитрого сделать с настройками iis или windows server 2008 r2 (где развернут сайт), чтобы наконец соединение прошло?
1c вместе с вебсервисом поднято на другой машине под Windows 7, локальная сеть одна, домена нет.

Здравствуйте, Александр!

Написал ответ в тот же день, как Вы написали данный запрос.
Поддержка Программных технологий никого не ставит в черный список:)

Здесь может быть несколько вариантов:

1. Могут быть неверными логин и пароль
2. Может быть не включена анонимная аутентификация на iis
3. Возможно какой-то пункт из инструкции был сделан неправильно(к сожалению, такое чаще всего происходит)

Для более оперативного общение можно писать мне напрямую в скайп: zaichikovilya_samarasoft

С уважением,
Зайчиков Илья
Менеджер продуктов
ООО «Программные Технологии»
Центр разработки и внедрения Террасофт Поволжье
Тел. +7 (846) 266-55-69
samarasoft.com

"Зайчиков Илья Алексеевич" написал:1. Могут быть неверными логин и пароль
2. Может быть не включена анонимная аутентификация на iis
3. Возможно какой-то пункт из инструкции был сделан неправильно(к сожалению, такое чаще всего происходит)

Добрый день, Илья!

1. Логин/пароль в bpmonline задаются в параметрах синхронизации - там логин/пароль 1с верный, а вот для bpm только логин - проверил, все заполнено корректно.
2. Включена на стороне iis с вебсервисом и на стороне bmponline. Удостоверение анонимного пользователя=указанный пользователь IUSR
3. Вот это самое сложное, хотя проверял шаги несколько раз. Кстати кнопка Проверить соединение в настройках интеграции также выдает ошибку.

Пытался я разобраться с сертификатами для серверов, но безрезультатно. Мне все же кажется тут какой-то галочки или параметра не хватает в разрешениях на iis (недаром про протокол http пишет), понять бы хоть на каком)

Александр,

В таком случае нам нужно подключиться и посмотреть, что именно не так было настроено.

В котором часу Вы завтра можете предоставить нам доступ?

С уважением,
Зайчиков Илья
Менеджер продуктов
ООО «Программные Технологии»
Центр разработки и внедрения Террасофт Поволжье
Тел. +7 (846) 266-55-69
Сот. +7 (937) 076-12-84
samarasoft.com

Стучусь в скайп :)
Спасибо!

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