При настройке интеграции типовой конфигурации 1С:Управление нашей фирмой (УНФ) с сервисом Яндекс.Телефония (ныне часть MightyCall) пользователи часто сталкиваются с технической преградой: система выдает URL-адрес для веб-хука, однако при попытке его регистрации на стороне Яндекса возникает ошибка. Основная причина заключается в том, что веб-сервер, на котором опубликована 1С, требует авторизацию (логин и пароль), а сервис телефонии не получает ожидаемый ответ 200 OK.
В этой статье мы подробно разберем, как правильно настроить публикацию базы, отредактировать конфигурационные файлы и обеспечить безопасность соединения, чтобы интеграция заработала корректно.
Проанализируем ситуацию: когда мы копируем ссылку из настроек 1С и вставляем ее в панель управления Яндекс.Телефонии, внешняя система отправляет проверочный запрос. Стандартная публикация 1С на веб-сервере (Apache или IIS) по умолчанию защищена. При обращении к ней сервер выдает запрос 401 Unauthorized. Яндекс «не знает» пароля от вашей базы и, не получив статус 200 OK, блокирует сохранение настроек.
Попытки передать учетные данные прямо в строке запроса, например, через параметры ?Usr=Логин;Pwd=Пароль, в современных версиях платформы 1С:Предприятие 8.3 чаще всего не приносят результата, так как механизмы безопасности HTTP-сервисов ожидают данные в заголовках пакета или настроенную анонимную авторизацию на уровне веб-сервера.
Рассмотрим самый эффективный способ решения проблемы — внесение правок в файл публикации default.vrd. Этот файл управляет тем, как веб-сервер взаимодействует с базой данных 1С.
Выясним, где находится этот файл. Обычно он располагается в каталоге, который вы указывали при публикации базы (например, C:\inetpub\wwwroot\UNF_Base\ для IIS или /var/www/unf_base/ для Apache). Нам необходимо отредактировать его так, чтобы для конкретного HTTP-сервиса телефонии использовались заранее заданные логин и пароль.
Важно: Не рекомендуется прописывать пароль для всей базы целиком в начале файла, так как это откроет доступ ко всей системе. Мы применим «точечную» настройку внутри тега <httpServices>.
Проанализируем пример структуры файла default.vrd с настроенной авторизацией для сервиса телефонии:
<?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_Demo"
ib="Srvr="Server1C";Ref="UNF_Demo";">
<httpServices publishExtensionsByDefault="true">
<service name="Телефония"
rootUrl="telephony"
enable="true"
ibAccount="TelephonyUser"
ibPassword="YourStrongPassword"/>
</httpServices>
</point>
Разберем параметры, которые мы добавили:
ibAccount — имя специально созданного пользователя в 1С.ibPassword — пароль этого пользователя.service name — имя HTTP-сервиса, как оно задано в конфигураторе (в УНФ это обычно Телефония).После внесения этих изменений веб-сервер будет автоматически авторизовать запросы от Яндекса под указанной учетной записью, и статус ответа станет 200 OK.
Часто в процессе настройки системный администратор обнаруживает, что меню «Администрирование — Публикация на веб-сервере» недоступно или выдает ошибку. Выясним причину: это происходит из-за того, что при установке платформы 1С на данном сервере/компьютере не был выбран соответствующий компонент.
Выполним следующие шаги для исправления:
setup.exe той же версии, что установлена сейчас).После этих действий возможность публикации базы из Конфигуратора станет активной.
Поскольку мы фактически разрешили доступ к веб-сервису без ввода пароля со стороны клиента (прописав его в файле), необходимо обезопасить базу от сторонних вмешательств. Проанализируем ситуацию: нам нужно, чтобы только серверы Яндекса могли обращаться к этому URL.
Для этого в настройках брандмауэра (Firewall) или в настройках самого веб-сервера (например, в файле .htaccess для Apache или через «Ограничения IP-адресов и доменов» в IIS) следует разрешить входящие соединения только для определенных диапазонов. Для сервисов Яндекса это обычно следующие подсети:
213.180.192.0/1993.158.134.0/2477.88.0.0/18Рекомендуем уточнять актуальные списки IP-адресов в официальной документации Яндекс.Телефонии или MightyCall, так как они могут меняться со временем.
Рассмотрим важные нюансы настройки пользователя внутри самой 1С:УНФ, которого мы указали в файле default.vrd:
TelephonyUser.Удаленный доступ (HTTP) и специфические роли для работы с телефонией, предусмотренные в УНФ.Также стоит обратить внимание на использование SSL (HTTPS). Современные облачные сервисы, включая Яндекс, крайне неохотно работают с незащищенным протоколом HTTP. Если ваша база опубликована по обычному HTTP, Яндекс может отклонять запросы из соображений безопасности. Мы рекомендуем использовать бесплатные сертификаты от Let's Encrypt для обеспечения работы по HTTPS.
Проанализировав все шаги, мы видим, что успешная интеграция требует комплексного подхода: от корректной установки компонентов платформы до тонкой настройки файла публикации и обеспечения сетевой безопасности. Выполнив эти инструкции, вы добьетесь стабильной передачи данных о звонках из Яндекс.Телефонии прямо в вашу 1С:УНФ.