Веб-сервисы 1С можно опубликовать на IIS и на Apache 2.2. В этой статье мы рассмотрим публикацию веб-сервисов на apache.
1. Скачиваем дистрибутив Apache 2.2 с официального сайта: https://httpd.apache.org/download.cgi
2. Запускаем установочный файл
3. Далее начинается процесс установки. Соглашаемся с условиями лицензионного соглашения.
Следующее окно - описание.
4. Здесь необходимо заполнить наименование домена, имя сервера и указать электронную почту системного администратора.
5. Выбираем обычную установку.
6. Указываем путь, куда будет установлен сервер.
7. Все готово для установки, нажимаем Install
8. В процессе установки будет мелькать командная строка для установки и запуска службы Apache.
После установки появится значок программы в трее, а так же будет запущена соответствующая служба.
Значок в трее
Пуск - Панель управления - Администрирование - Службы
Важно! Если служба не запущена, её нужно обязательно запустить.
Теперь сделаем публикацию веб-сервиса на примере 1CHotelAccountingInterfaces.1cws, который используется для выгрузки в бухгалтерию.
1. Необходимо запустить конфигуратор от имени системного администратора в ОС и зайти под учетной записью системного администратора.
2. Заходим в раздел Администрирование - Публикация на веб-сервере.
Имя - имя используемой публикации.
Веб-сервер - Либо IIS, либо Apache. В нашем случае Apache.
Каталог - необходимо указать каталог где будет сохранена публикация 1С.
Указываем флаги:
Публиковать web-сервисы по умолчанию
Публиковать web-сервисы: AccountingInterfaces
Нажимаем "Опубликовать".
3. Программа сообщит о том, что публикация выполнена и предложит перезапустить веб-сервер. Соглашаемся.
4. Нужно проверить работоспособность публикации локально. Для этого переходим в браузере по адресу: http://localhost/acc/ws/1CHotelAccountingInterfaces.1cws?wsdl
Должен появиться запрос ввода логина/пароля для базы данных 1С.
Теперь нужно понять каким образом будет производиться аутентификация в базу 1С: Отель. Возможны три вариант:
Анонимная аутентификация.
От определенного пользователя в ОС.
От определенного пользователя в базе 1С.
5.1. Анонимная аутентификация.Сейчас нужно проверить журнал регистрации на момент попытки входа.
Добавляем нового пользователя, например Фоновый. Устанавливаем флаг "Аутентификация операционной системы:" и прописываем данные для подключения из предыдущего скриншота.
На вкладке "Прочие" указываем:
Роль - BackgroundMode
Интерфейс - BackgroundMode
Язык - русский (не принципиально)
5.2. Аутентификация из под определенной учетной записи ОС. На данный момент вход в систему осуществляется под системным пользователем. Если нужно указать вход в систему под другим пользователем windows, то в настройках службы Apache 2.2, для входа в систему задаем другого пользователя. Например, создадим учетную запись Apache в ОС и укажем её в настройках службы.
Теперь вход в базу осуществляется под этим пользователем.
Достаточно будет указать в настройках фонового пользователя данные новой учетной записи.
5.3. Аутентификация от определенного пользователя в базе 1С. Возможен еще один вариант аутентификации - в конфигурационном файле публикации явно указать логин и пароль от учетной записи базы 1С. При такой настройке обязательно у пользователя, под которым будет работать публикация указывать Роль - BackgroundMode, Интерфейс - BackgroundMode. Флаг "Аутентификация операционной системы" снимаем.
При утечке пароля третьим лицам, с такими настройками пользователя в интерфейсе предприятия увидеть какие-либо данные невозможно.
Далее перейдите в папку с публикацией, и откройте файл default.vrd
В строке с данными для подключения ИБ добавьте логин и пароль от пользователя 1С.
Примечание: Такая настройка используется если нужно несколько разных публикаций развести на разных пользователей в базе 1С. Например, для интеграции с channel-менеджером Travelline один пользователь, для броней, созданных на вашем сайте через модуль-онлайн бронирования - другой пользователь. Тогда в каждом конфигурационном файле публикации прописываем разных пользователей 1С.
Две публикации, в каждой задан свой пользователь:
В бруезере:
В журнале регистрации:
6. Независимо от варианта аутентификации, при повторном входе по адресу http://localhost/acc/ws/1CHotelAccountingInterfaces.1cws?wsdl , браузер не запрашивает логин/пароль, а открывает нужный xml-файл.
Для использования внутри локальной сети веб-сервис готов.
Если требуется внешний доступ к этому веб-сервису, то на сетевом оборудовании требуется сделать перенаправление по 80 порту на компьютер, где установлен веб-сервер.