Установка web-сервера Apache 2.2.
Скопировать ссылку на статью
Скопировано

Шаг 1. Установка web-сервера

Допускается использование любого другого web-сервера.

Для передачи заказов из RetailCRM в 1С в режиме реального времени необходимо опубликовать базу 1С. Для этого потребуется выполнить следующие действия:

Важно!

Для установки требуются полномочия системного администратора.

  • Установите web-сервер Apache.
  • В трее появится значок запущенного сервиса -

Если Apache не работает, то, скорее всего, другая программа занимает стандартный 80 порт прослушки Apache (например, Skype).

В таком случае исправьте файл по адресу C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf. Для этого найдите строчку Listen 80 и замените на любой адрес порта (например, Listen 81)

В шаблонном решении указан порт 8080. Поэтому, если будете использовать другой – поменяйте в свойствах web-сервиса URL пространства имен по пути RetailCRM ИнтеграцияОбщиеWeb-сервисыcrm_WebRetailCRM (открыть через правую кнопку мыши).

Также можно указать здесь внешний IP-адрес.

  • Сохраните файл и перезапустите Apache (нажимаем левой кнопкой мыши):

  • Проверяем работу Apache в браузере по адресу: http://127.0.0.1/. В случае, если вы изменили порт, то адрес будет таким: http://127.0.0.1:81.

В случае успеха вы увидете следующее:

Теперь необходимо настроить публичный IP-адрес у сервера, на котором осуществляется публикация web-сервиса.

Шаг 2. Публикация web-сервиса на web-сервере

  • Открываем конфигуратор базы

Важно!

Запуск 1С обязательно от имени администратора

  • В 1С необходимо завести пользователя с паролем на латинице (например, Admin/admin). Публиковать базу следует под этим пользователем.
  • Перейдите в пункт меню АдминистрированиеПубликация на веб-сервере....
  • Заполните имя латинскими буквами без пробелов (можно использовать подчеркивание).
  • Выбирите веб-сервер из списка.
  • Укажите путь к каталогу для публикации. Каталог – произвольный каталог с файлами веб-сервера для текущей базы. Желательно, чтобы название каталога совпадало с названием базы для удобства. Путь должен включать только латинские буквы, цифры и символ подчеркивания.

Важно!

Не следует в качестве пути указывать корень диска (C:), 1C может начать удалять папки на этом диске.

  • Устанавите галочку «Публиковать web-сервисы расширений по умолчанию».

  • Нажимаем «Опубликовать». Если при нажатии опубликовать вы видите сообщение Невозможно записать c:\Program Files (x86)\Apache .... значит, вы запустили 1С не от имени администратора. Закройте 1С и заново запустите «от имени администратора».
  • Опубликованный веб-сервис будет доступен по адресу http://127.0.0.1:8080/1C_base/ws/ws1.1cws?wsdl
  • Вместо UT_demo_rasshir подставляем имя, указанное в публикации. Имя файла публикации в шаблонном решении «ws1.1cws».

Важно!

У сервера, на котором осуществляется публикация web-сервиса, должен быть публичный IP-адрес (доступен через интернет). В конечном итоге url должен выглядеть таким образом http://<публичный адрес>:81/<имя базы>/ws/ws1.1cws

Шаг 3. Создание триггера

Создание и настройка триггеров осуществляется в разделе АвтоматизацияТриггеры.

  • Укажите название триггера и символьный код.

  • Добавьте событие, для этого нажмите + Событие. В появившейся шторке справа выбирите «Изменение заказа» и нажмите Добавить.

  • В режиме редактора добвьте следующее условие срабатывания триггера:
((changeSet.isUpdate() and not last_run("5 seconds")) or (changeSet.isCreate() and not last_run("30 seconds", null, order))) and (not changeSet.hasChangesWithSource("api") or (changeSet.hasChangesWithSource("api") and not changeSet.hasChangedField('custom_update_api1c')))

Если не планируется передача изменений из 1С в RetailCRM и соответствующая настройка не включена, то условие будет таким:

(changeSet.isUpdate() and not last_run("5 seconds")) or (changeSet.isCreate() and not last_run("30 seconds", null, order))

С таким условием триггер будет срабатывать на каждое создание заказа и на каждое изменение заказа (не чаще, чем раз в 30 сек), то есть, если триггер отработает по заказу и следующее изменение в заказе будет в течение 30 секунд, триггер не сработает повторно. Это необходимо для того, чтобы 1С успела получить и обработать запрос от RetailCRM, отправить новый запрос на получение данных по заказу и обработать его в 1С. В противном случае могут создаваться дубли заказов. Время 30 секунд можно изменять в зависимости от скорости загрузки заказа. Также в триггере установлено условие на изменения по API. Если при изменении заказа по API изменяется поле update_api1c, значит изменения были переданы из 1С и возвращать обратно их не нужно, триггер не сработает.

Условия триггера можно дорабатывать в соответствии с вашим бизнес-процессом. Пользовательское поле можно будет добавить командой из 1С.

  • Добавьте действие, кликнув на + Действие. В открывшейся шторке выберите «Выполнить HTTP-запрос». Данный вариант позволяет выполнить HTTP-запрос по определенному методу. Для этого необходимо указать адрес ресурса, HTTP-метод, и в каком виде передавать параметры.

В поле «Адрес» укажите http://<публичный адрес>:81/<имя базы>/ws/ws1.1cws.

В поле «HTTP-метод» выберите POST.

Добавьте HTTP-заголовки. Укажите заголовок Authorization с содержимым вида Basic <base64>. Строку base64 можно получить в онлайн генераторе по ссылке . В полях Username и Password следует указать имя пользователя, под кем публиковалась база, и пароль для входа в 1С.

Затем необходимо добавить заголовок Content-Type со значением application/soap+xml; charset=utf-8.

В поле «Передавать параметры» выбираем значение «Указать тело запроса самостоятельно».

В теле запроса прописываем:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://127.0.0.1:8080">
    <SOAP-ENV:Body>
        <ns1:EditOrder>
            <ns1:Order>{{order.id}}</ns1:Order>
        </ns1:EditOrder>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Важно!

Вместо http://127.0.0.1:8080 прописываем URL пространства имен из свойств web-сервиса в 1С. Там может быть как внешний IP-адрес, так и локальный, зависит от настроек сети. Значения в теле запроса и в URL пространства имен обязательно должны совпадать.

  • Сохраните триггер.
Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Установка расширения в 1С
В статье подробно описан процесс установки расширения в 1С.
Следующая статья
Настройка интеграции: УТ 11.5, KA 2.5, ERP 2.5
В разделе представлены статьи и инструкции, которые помогут более подробно ознакомиться с возможностями и подключить 1С к системе.