1С8:Публикация информационной базы 1С на веб-сервере

Материал из КинтВики
Перейти к: навигация, поиск

Публикация информационной базы 1С на веб-сервере нужна для того, чтобы:

  • работать с базой удаленно по интернету;
  • подключаться к базе, используя мобильные приложения.
Действия выполняются на сервере под правами администратора. Для работы по интернету необходимо, чтобы было настроено сетевое оборудование.

Порядок публикации ИБ

Порядок действий:

  1. Выполните установку веб-сервера IIS или Apache.
    • IIS работает быстрее, чем Apache. (https://forum.infostart.ru/forum9/topic222705/)
    • Apache. Рекомендуется к установке версия 2.4. Разрядность должна соответствовать разрядности клиентской платформы 1С.
  2. Запустите службу Apache на сервере и проверьте доступность: с компьютера, находящегося в одной сети с сервером, в адресной строке браузера введите адрес сервера или его имя. Должна загрузиться страница с текстом «It's work!».
  3. На сервере запустите публикуемую базу в режиме конфигуратора. Выберите пункт меню Администрирование — Публикация на веб-сервере.
  4. Заполните параметры:
    • Укажите имя публикации. Выберите каталог для сохранения данных публикации, по которому она будет доступна по сети.
    • Если снять галочку «Публиковать доступ для клиентских приложений», то к базе будет невозможно подключиться по веб-ссылке в обычном пользовательском режиме через браузер или платформу. Такой вариант публикации базы выбирают, если требуется опубликовать только HTTP-сервис, например, API.
  5. Закладку Web-сервисы оставьте без изменений. На закладке http-сервисы выберите необходимые сервисы и нажмите кнопку Опубликовать.
    ФАЙЛ РАСШИРЕНИЙ.png
    • Включите галочку KintAPI (KintAPI.hs), если планируется подключение к этой базе по API (КУС).
    • ЕГИСЗ — для интеграции с системой https://egisz.rosminzdrav.ru/.
  6. В адресной строке браузера наберите http://[адрес_сервера]/[имя_публикации].
Важно. В дальнейшем в настройке нужно использовать имя публикации точно такое, с каким она была опубликована — соблюдая регистр символов.

Если база успешно опубликована и веб-сервер запущен, появится окно ввода логина и пароля пользователя для входа в вашу базу. Пользователь должен быть добавлен в список пользователей информационной базы.

Если произвести авторизацию не представляется возможным, можно произвести публикацию базы с беcпарольной аутентификацией (когда пользователь и его пароль прописаны на веб-сервере в default.vrd), но в этом случае следует учитывать, что любой пользователь, у которого будет ссылка на неё, сможет заходить в базу через режим 1С: Предприятие, если соответствующие права у него имеются. Для отключения запроса пароля нужно в файле публикации Default.vrd прописать логин/пароль по умолчанию, пример: ib="Srvr="SERVERNAME";Ref="BASE_NAME";usr="Администратор";pwd="12345";enable="false";".

Возможные проблемы

  • Публикация базы на IIS не работает.
    • Решение: проверить разрядность wsisapi.dll (Модуль расширения веб-сервера 1С). Возможно в файле web.config публикации прописана ссылка на dll из другой разрядности. Должно соответствовать разрядность платформы. Попробовать добавить/убрать "(x86)"
Ошибка публикации путь к dll.png


  • После обновления платформы не работает расширение для обмена данными.
    • Решение: проверьте установлены ли права на использование HTTP-сервиса и назначена ли пользователю соответствующая роль.
Для этого:
1. В 1С:Конфигураторе откройте настройки расширения «Кинт: Обмен данными».
2. Раскройте ветку HTTP-сервиса «ОбменДанными_API».
3. Откройте дополнительные свойства для метода «GetData».
Конфигуратор HTTP-сервисы Дополнительно.png
4. Во вкладке «Права» установите флаг на право использования.
Конфигуратор HTTP-сервисы Дополнительно2.png
5. Повторите шаги 3 и 4 для метода «PostData».
6. В меню «Администрирование» откройте список пользователей.
7. Откройте настройки пользователя и на вкладке «Прочие» в списке доступных ролей установите флаг на роли «ОбменДанными_ОсновнаяРоль».
Конфигуратор Роль пользователя.png

Коды ошибок при работе с веб-сервером

500 — ошибка доступа к веб-сервису. Для исправления обычно достаточно переопубликовать информационную базу на веб-сервере. Подробнее посмотреть можно в логах веб-сервера error.log

Если у вас на сервере используется операционная система Astra Linux и в логе ошибок зафиксирована проблема Authentication not configured, то:
Для версии ОС 1.6, 1.7, 4.7, 8.1 Отключение авторизации можно задать в файле /etc/apache2/apache2.conf поменять строку #AstraMode on на AstraMode off.

Syntax error on line ХХХ of /etc/apache2/apache2.conf: API module structure '_1cws_module' in file /opt/1cv8/x86_64/8.3.24.1368/wsap22.so is garbled - expected signature 41503234 but saw 41503232 - perhaps this is not an Apache module DSO, or was compiled for a different Apache version? - в настройках публикации базы данных 1С указана версию Apache отличная от установленной. Необходимо перепубликовать базу данных на установленную версию вебсервера.

Выбор вебсервера для публикации.png

Публикация базы без авторизации

Отключение авторизации — только часть мероприятий по настройке публикации. Обычно требуется для обеспечения работы отдельных http-сервисов. Например, KintAPI или ЕГИСЗ. При отключении авторизации в обязательном порядке необходимо отключить публикацию доступа для клиентских приложений. Рекомендуем в настройках публикации оставить активным только публикуемый сервис.

Kintapipub.png

Так будут выглядеть настройки публикации для сервися KintAPI.

Когда база будет опубликована, в указанном для публикации каталоге будет создан файл default.vrd. Найдите в файле строку с параметром ib и отредактируйте его значение. Допишите usr=Логин;pwd=Пароль. Где логин — это имя пользователя с которым при работе с сервисом будет происходить авторизация, а Пароль — пароль к этой учётной записи.

Authdisabled.png

Как опубликовать одну базу 1с на веб-сервисе несколько раз

При публикации отдельных web или http-сервисов может потребоваться отключение авторизации и доступа клиентских приложений. Если при этом необходимо обеспечить работу с публикацией базы 1С через тонкий или web-клиент, требуется создать отдельную публикацию. Для этого:

  • Запустите «1С:Предприятие».
  • Добавьте информационную базу в список ещё раз, указав другое наименование.
  • Запустите базу в режиме Конфигуратора.
  • Выберите пункт меню Администрирование — Публикация на веб-сервере.
  • Укажите имя публикации (не должно повторять имя первой публикации).
  • Укажите каталог публикации (необходимо создать отдельный каталог для этой публикации).
  • Завершите публикацию, нажав кнопку Опубликовать.

См. также