Как настроить Яндекс Телефонию в 1С:УНФ и сохранить доступ к веб-клиенту

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой IT и автоматизация бизнеса
← На главную

При настройке штатной интеграции с Яндекс Телефонией (или любой другой облачной АТС) в программе 1С:Управление нашей фирмой системные администраторы часто сталкиваются с неприятной ситуацией. После внесения правок в файл конфигурации публикации default.vrd для автоматической авторизации сервиса, обычные пользователи теряют возможность входить в базу через браузер. При попытке входа веб-клиент выдает ошибку: "Нет прав на запуск требуемого клиента".

В этой статье мы подробно разберем, почему возникает этот конфликт, и как правильно настроить систему, используя механизм раздельных публикаций, чтобы телефония работала стабильно, а пользователи могли беспрепятственно использовать веб-клиент.

Причина конфликта: почему ломается веб-клиент

Для того чтобы облачная АТС могла передавать данные в 1С (например, информацию о входящем звонке), она обращается к специальному HTTP-сервису, опубликованному на веб-сервере. Поскольку АТС не может самостоятельно пройти диалог авторизации 1С, в файле default.vrd прописываются учетные данные технического пользователя (например, TelephonyService).

Разберем ситуацию: когда мы добавляем в секцию point параметры Usr="TelephonyService" и Pwd="password", веб-сервер начинает принудительно авторизовывать любое входящее соединение под этим пользователем. Это касается и обычных пользователей, пытающихся зайти через веб-интерфейс. Так как у технического пользователя TelephonyService обычно нет прав на запуск веб-клиента (и их не стоит давать в целях безопасности и лицензирования), система блокирует вход.

Решение: создание двух раздельных публикаций

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

Шаг 1. Подготовка папок на сервере

Для начала создадим на диске сервера две разные директории, в которых будут лежать файлы настроек. Рассмотрим пример для ОС Windows и сервера IIS (для Apache логика аналогична):

  1. Создадим папку C:\inetpub\wwwroot\unf_web — здесь будет публикация для работы пользователей.
  2. Создадим папку C:\inetpub\wwwroot\unf_telephony — здесь будет публикация исключительно для нужд телефонии.

Шаг 2. Публикация для пользователей

Запустим 1С:Предприятие в режиме Конфигуратора от имени администратора. Перейдем в меню Администрирование — Публикация на веб-сервере.

  1. В поле "Имя" укажем unf.
  2. В поле "Каталог" выберем нашу первую папку C:\inetpub\wwwroot\unf_web.
  3. Установим флажки "Публиковать веб-клиент" и "Публиковать стандартные интерфейсы".
  4. На вкладке "HTTP-сервисы" можно снять лишние флажки, оставив только необходимые для работы пользователей.
  5. Нажмем "Опубликовать".

В этой публикации файл default.vrd редактировать не нужно. Пользователи будут вводить свои логины и пароли при входе.

Шаг 3. Публикация для телефонии

Теперь создадим вторую публикацию в том же окне Конфигуратора:

  1. В поле "Имя" укажем другое значение, например unf_tel.
  2. В поле "Каталог" выберем вторую папку C:\inetpub\wwwroot\unf_telephony.
  3. Важно: снимите флажки "Публиковать веб-клиент" и "Публиковать стандартные интерфейсы". Это исключит конфликты лицензирования.
  4. На вкладке "HTTP-сервисы" установим флажок напротив сервиса телефонии (обычно это Telephony или аналогичный в зависимости от версии УНФ).
  5. Нажмем "Опубликовать".

Шаг 4. Настройка авторизации для телефонии

Теперь нам необходимо отредактировать файл default.vrd во второй папке (unf_telephony). Откроем его любым текстовым редактором и приведем структуру к следующему виду, добавив параметры Usr и Pwd:


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        base="/unf_tel"
        ib="Srvr=&quot;ServerName&quot;;Ref=&quot;BaseName&quot;;">
    <httpServices publishByDefault="false">
        <service name="Telephony"
                alias="Telephony"
                enable="true"
                reuseSessions="autouse"
                sessionMaxAge="20"
                poolSize="10"
                poolTimeout="5"
                Usr="TelephonyService"
                Pwd="YourPassword"/>
    </httpServices>
</point>

Обратим внимание, что мы прописываем пользователя именно внутри тега конкретного сервиса или в общем теге point, если хотим, чтобы вся публикация работала под этими правами. Теперь внешние запросы к https://ваш-домен/unf_tel/hs/Telephony/... будут автоматически авторизовываться.

Настройка пользователя в 1С

Выясним, какими правами должен обладать пользователь TelephonyService, чтобы интеграция работала корректно. В справочнике "Пользователи" создадим соответствующую запись:

Настройка на стороне Яндекс Телефонии

После того как мы подготовили "выделенный канал" для связи АТС с 1С, нам нужно обновить настройки в личном кабинете Яндекса. Проанализируем формат ссылки Webhook.

В настройках интеграции в поле "URL для уведомлений" или "Адрес внешнего сервера" необходимо указать адрес, ведущий именно ко второй публикации:

https://ваш-домен.ru/unf_tel/hs/Telephony/v1

Если вы используете самоподписанный SSL-сертификат, Яндекс Телефония может отказаться передавать данные. Рекомендуем использовать бесплатные сертификаты Let's Encrypt для обеспечения корректной работы по протоколу HTTPS.

Диагностика типичных ошибок

Если после всех настроек звонки в 1С по-прежнему не фиксируются, разберем возможные причины:

  1. Несоответствие номеров телефонов. В карточках сотрудников в 1С номера должны быть указаны в том же формате, что и в АТС (например, начиная с 7 без знака +).
  2. Закрытые порты. Убедимся, что брандмауэр сервера разрешает входящие соединения на порт 80 или 443 для адресов Яндекса.
  3. Ошибки в default.vrd. Попробуем открыть адрес https://ваш-домен/unf_tel/hs/Telephony/v1/test в браузере (если такой метод предусмотрен конфигурацией). Если система запрашивает логин и пароль — значит, автоматическая авторизация в файле .vrd не сработала. Проверьте правильность написания атрибутов Usr и Pwd (учитывайте регистр!).

Используя метод двух публикаций, мы полностью изолируем технический трафик телефонии от пользовательского интерфейса, обеспечивая безопасность системы и стабильность работы веб-клиента 1С:УНФ.

← На главную