Как исправить ошибку аутентификации при подключении к хранилищу 1С через HTTP?

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

Настройка распределенной разработки в 1С часто требует организации общего доступа к хранилищу конфигурации. Использование протокола HTTP через веб-сервер (например, IIS) является стандартом, однако на этом пути часто возникают препятствия, связанные с сетевой инфраструктурой и безопасностью. Типичная ситуация: локально всё работает идеально, но при попытке подключения из сети пользователь получает пугающее сообщение: «Доступ к кэшу запрещён. Извините, Вы не можете запросить адрес из этого кэша до тех пор, пока не пройдёте аутентификацию». При этом в ошибке может упоминаться стороннее ПО, например, squid/4.15.

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

Анализируем причину возникновения ошибки

Первым делом проанализируем текст ошибки. Упоминание squid однозначно указывает на то, что запрос от вашего компьютера до веб-сервера IIS не идет напрямую. Вместо этого он перехватывается промежуточным прокси-сервером вашей организации. 1С:Предприятие использует системные настройки WinHTTP для работы по протоколу HTTP. Если в настройках Windows указан прокси-сервер, Конфигуратор будет пытаться прогнать трафик хранилища через него.

Проблема в том, что взаимодействие с хранилищем 1С — это не просто скачивание веб-страниц. Это сложный обмен данными с использованием специфических HTTP-заголовков и методов. Прокси-сервер (в данном случае Squid) воспринимает эти запросы как неавторизованные или подозрительные и блокирует их, выдавая ошибку кэша. Даже если в браузере обычные сайты открываются нормально, для работы 1С требуются иные условия.

Решение 1: Использование файла hosts для локальной идентификации

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

Выясним, как заставить систему обращаться к серверу напрямую, минуя прокси-сервер:

  1. Откроем на клиентском компьютере блокнот от имени администратора.
  2. Перейдем по пути C:\Windows\System32\drivers\etc\ и откроем файл hosts.
  3. Добавим в конец файла строку вида: 10.40.68.172 ИмяВашегоСервера (где IP-адрес соответствует вашему серверу хранилища).
  4. Сохраним файл и перезапустим Конфигуратор.

Почему это работает? Когда вы прописываете соответствие IP и имени в файле hosts, операционная система часто классифицирует такой узел как локальный или приоритетный, что позволяет обойти некоторые механизмы автоматического определения прокси (WPAD). Однако это лишь «костыль». Разберем более правильные системные настройки.

Решение 2: Настройка исключений прокси-сервера (Bypass List)

Поскольку 1С опирается на системные настройки интернета, нам необходимо явно указать Windows, что адреса нашего внутреннего сервера не должны проходить через прокси. Разберем по шагам:

  1. Зайдем в Панель управления — Свойства браузера (или «Свойства интернета»).
  2. Перейдем на вкладку Подключения и нажмем кнопку Настройка сети.
  3. Убедимся, что установлена галочка «Использовать прокси-сервер...» (если он используется в вашей сети).
  4. Нажмем кнопку Дополнительно.
  5. В поле Исключения (Выравнивание) введем IP-адрес сервера хранилища и его сетевое имя. Например: 10.40.68.172; MyRepoServer.
  6. Обязательно установим галочку «Не использовать прокси-сервер для локальных адресов».

Эти действия гарантируют, что запросы к http://MyRepoServer/... пойдут напрямую к IIS, и Squid не будет пытаться их фильтровать.

Решение 3: Проверка настроек аутентификации в IIS

Если после исключения прокси ошибка сменилась на «401 Unauthorized» или «403 Forbidden», необходимо проанализировать настройки самого веб-сервера IIS. Для публикации хранилища 1С рекомендуются специфические параметры.

Посмотрим на настройки виртуального каталога в диспетчере IIS:

  1. Выберем наш опубликованный узел (например, repository).
  2. Откроем раздел Проверка подлинности (Authentication).
  3. Для работы хранилища рекомендуется Включить Анонимную проверку подлинности. Это может звучать странно, но логика здесь такова: 1С сама передает логин и пароль пользователя хранилища внутри HTTP-запроса к расширению wsisapi.dll. Если вы включите «Проверку подлинности Windows», то IIS будет требовать доменную авторизацию еще до того, как запрос попадет в 1С.
  4. Если сервер хранилища не в домене (как в нашем случае), «Проверка подлинности Windows» почти наверняка будет вызывать сбои при обращении с удаленных машин.

Решение 4: Права доступа к папкам и временным файлам

Часто проблема «Доступа к кэшу» или «Ошибки аутентификации» маскирует банальную нехватку прав на файловую систему сервера. Выясним причину, проверив права учетной записи, от которой работает веб-сервер.

Обычно IIS использует пул приложений, работающий от имени ApplicationPoolIdentity или NetworkService. Этим учетным записям (или группе IIS_IUSRS) необходимы полные права на следующие объекты:

Решение 5: Настройка файла default.vrd

Проанализируем содержимое файла default.vrd, который находится в папке публикации на веб-сервере. Для корректной работы через сервер хранилища (tcp_repository.dll) структура должна быть следующей:


<?xml version="1.0" encoding="UTF-8"?>
<repository connect="tcp://10.40.68.172:1542"/>

Если же вы публикуете хранилище напрямую как файл (без использования сервера хранилища), строка будет выглядеть иначе:

<repository connect="file://C:/Storage1C/TestRepo"/>

Убедитесь, что в параметре connect указан верный путь или адрес, и что версия платформы 1С в настройках обработчика IIS (Handler Mappings) совпадает с версией, в которой создавалось хранилище.

Резюме

Мы рассмотрели комплексный подход к решению проблемы аутентификации в хранилище 1С. Основная причина чаще всего кроется во внешней среде — прокси-серверах, которые не умеют корректно обрабатывать специфический трафик 1С. Настройка файла hosts или списка исключений в свойствах браузера позволяет «спрятать» трафик 1С от прокси-сервера. Дополнительная проверка прав на папку C:\Windows\Temp и настройка анонимного доступа в IIS завершают процесс настройки, делая работу с хранилищем стабильной и быстрой.

← На главную