emphttpservices/README.md

90 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Расширение HTTPServices для конфигурации ЕМП
Расширение 1С. Базовая заготовка для реализации HTTP сервисов на базе конфигураций 1С, в частности, данное расширение создано для конфигурации "ЕМП". В данном расширении помимо конструктива и методов работы HTTP сервиса, реализован HTTP сервис API CSM, позволяющий при помощи POST запросов реализовывать поставку данных для виджета "Проверка статуса Заказа" на стороне любого сайта.
## С чего начать?
1. Клонировать или скачать файлы данного репозитория.
2. Внимательно ознакомиться с данной инструкцией, ПРОЧЕСТЬ ЕЕ.
3. Пошагово выполнить подготовку и внедрение, в соответствии с рекомендациями данной инструкции.
## Содержание и описание файлов
- **README.MD** - Непосредственно этот файл, который является инструкцией и описанием всего проекта и расширения.
- **.\extensions\HTTPServices.cfe** - файл расширения, который нужно добавить в рабочую базу 1С ЕМП.
- **.\HTTPServices\emp\default.vrd** - файл настроек публикации и подключения HTTP сервиса на стороне веб сервера Apache.
- **.\HTTPServices\statusform** - папка с файлами виджета, которую нужно настроить и перенести на сторону каталога сайта.
- **.\HTTPServices\statusform\action.php** - файл обработка, производит непосредственный запрос на сторону нашего веб сервера, для связи с HTTP сервисом. В этом файле нужно указать внешний путь к опубликованному сервису.
- **HTTPServises\apache.conf** - файл-вырезка с блоком настроек на стороне веб сервера Apache, для реализации публикации HTTP сервиса во вне. То, что нужно будет добавить в свой файл конфигурации.
## Источники вдохновения, основа кода расширения, и чтиво для понимания. (ссылки). Практически все было взято с этих двух проектов, в той или иной вариации
- [Учимся создавать http-сервисы ч.1](https://infostart.ru/1c/articles/1293341/)
- [Учимся создавать http сервисы ч.2. Передача параметра в http сервис](https://infostart.ru/1c/articles/1296740/)
- [Учимся создавать http сервис ч.3. Передача нескольких параметров в http сервис](https://infostart.ru/public/1303368/)
- [Учимся создавать http сервис ч.4. Изучение метода POST http запроса (передача текстовых данных)](https://infostart.ru/1c/articles/1307941/)
- [HTTP Сервисы: Путь к своему сервису. ч.1](https://infostart.ru/1c/articles/842751/)
- [HTTP Сервисы: Путь к своему сервису. ч.2](https://infostart.ru/1c/articles/885287/)
- [HTTP Сервисы: Путь к своему сервису. ч.3](https://infostart.ru/public/886103/)
- [HTTP Сервисы: Путь к своему сервису. ч.4](https://infostart.ru/1c/articles/893304/)
## Приступаем к внедрению
Нам понадобятся:
1. Сервер 1С Предприятия с установленными на нем web компонентами.
2. Apache 2.4
3. Сайт на любом движке, главное чтоб понимал и работал с PHP и JS.
### Добавляем расширение в боевую конфигурацию
Расписывать данный шаг не буду, так как считаю, что исчерпывающей информации на просторах рускоязычного интернета, более чем достаточно. Скажу только то, что я предпочитаю это делать через "Конфигуратор", а кто-то это любит делать, через интерфейс конфигурации и функции Администрирования. Выбор за вами. Обозначу только то, что после добавления расширения, нужно корректно выставить галочки допусков его работы. См.скрин ниже.
![pic](./files/httservice-setup.jpg)
После перезахода пользователей в базу, расширение будет готово к работе.
### В базе добавляем отдельного пользователя 1С
Пользователь нужен с полными правами, чтоб от его имени сервис делал запросы и получал данные, которые будет далее перенаправлять на сайт. Ставим этому пользователю ХОРОШИЙ пароль и убираем его из списка авторизации. У меня для этого заведен пользователь **UserWebService** с ОЧЕНЬ длинным и сложным паролем.
### Теперь готовим web сервер.
Чтоб все заработало, нам нужен web сервер готовый к публикации баз и сервисов 1С.
В рекомендациях от 1С, это или IIS, или Apache. В нашем случае используем второй, так как он проще, легче и менее требователен.
Рекомендую отдельную внешнюю установку web сервера в пределах отдельной ноды. Хотя можно установить и непосредственно, на ноду с установленным сервером 1С Предприятия. Это в какой-то мере упростит установку и настройку.
В моем случае, в качестве сервера выступает linux станция. На данном сервере, помимо Apache ставим серверную часть платформы 1С. За деталями и подробностями, в ГуглЯшу, поскольку это выходит за рамки данного проекта. После чего приступаем к редактированию конфигурационного файла Apache: apache.conf . В него нужно внести данные о каталоге, где будет располагаться настроечный файл соединения с базой 1С и прописать модуль-библиотеку, чтоб наш Apache мог общаться с 1С. Часть конфига, который нужно внести в рабочий конфиг Apache, я с комментариями приводу ниже:
```
#То что нужно добавить в ваш конфиг
#Apache чтоб опубликовать базу 1С.
# 1c publication
Alias "/emp" "/var/www/emp/"
<Directory "/var/www/emp/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/emp/default.vrd"
</Directory>
#
# !ОБЯЗАТЕЛЬНО! прописываем в строке ниже
#путь к установленной библиотеке 1С
# Релиз установленного 1С в Apache должен
#совпадать с релизом платформы
#установленной на сервере 1С
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.20.1996/wsap24.so"
```
То есть мы внесли в конфиг, что настроечный файл соединения будет лежать в папке /var/www/emp и обратится к нему можно будет по алиасу /emp.
Теперь переходим в папку публикации, в нашем случае /var/www и создаем в ней папку emp, куда переносим файл default.vrd. В этом файле описана структура соединения с базой 1С, в формате понятном серверу 1С. К
Код добавляем вот так:
```
cd existing_repo
git remote add origin https://gitlab.ivcsm.ru/1c-shared/emp/emphttpservices.git
git branch -M master
git push -uf origin master
```
***