|
||
---|---|---|
HTTPServices | ||
extensions | ||
files | ||
CONTRIBUTING.md | ||
README.md |
README.md
Расширение HTTPServices для конфигурации ЕМП
Расширение 1С. Базовая заготовка для реализации HTTP сервисов на базе конфигураций 1С, в частности, данное расширение создано для конфигурации "ЕМП". В данном расширении помимо конструктива и методов работы HTTP сервиса, реализован HTTP сервис API CSM, позволяющий при помощи POST запросов реализовывать поставку данных для виджета "Проверка статуса Заказа" на стороне любого сайта.
С чего начать?
- Клонировать или скачать файлы данного репозитория.
- Внимательно ознакомиться с данной инструкцией, ПРОЧЕСТЬ ЕЕ.
- Пошагово выполнить подготовку и внедрение, в соответствии с рекомендациями данной инструкции.
Содержание и описание файлов
- 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
- Учимся создавать http сервисы ч.2. Передача параметра в http сервис
- Учимся создавать http сервис ч.3. Передача нескольких параметров в http сервис
- Учимся создавать http сервис ч.4. Изучение метода POST http запроса (передача текстовых данных)
- HTTP Сервисы: Путь к своему сервису. ч.1
- HTTP Сервисы: Путь к своему сервису. ч.2
- HTTP Сервисы: Путь к своему сервису. ч.3
- HTTP Сервисы: Путь к своему сервису. ч.4
Приступаем к внедрению
Нам понадобятся:
- Сервер 1С Предприятия с установленными на нем web компонентами.
- Apache 2.4
- Сайт на любом движке, главное чтоб понимал и работал с PHP и JS.
Добавляем расширение в боевую конфигурацию
Расписывать данный шаг не буду, так как считаю, что исчерпывающей информации на просторах рускоязычного интернета, более чем достаточно. Скажу только то, что я предпочитаю это делать через "Конфигуратор", а кто-то это любит делать, через интерфейс конфигурации и функции Администрирования. Выбор за вами. Обозначу только то, что после добавления расширения, нужно корректно выставить галочки допусков его работы. См.скрин ниже.
После перезахода пользователей в базу, расширение будет готово к работе.
В базе добавляем отдельного пользователя 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