Часто системные администраторы и разработчики сталкиваются с ситуацией: база 1С, опубликованная на веб-сервере IIS, отлично работает с документами и справочниками, но при попытке выполнить обмен с внешними ресурсами (например, ВЕТИС, Честный Знак, ЭДО или просто проверка обновлений) возникают ошибки. При этом в обычном файловом режиме или через толстый клиент всё работает корректно. Разберем подробно, почему это происходит и как правильно настроить серверную среду для бесперебойной работы 1С с интернетом.
Основная причина кроется в контексте безопасности. Когда мы запускаем 1С как обычное приложение, она работает под правами текущего пользователя Windows. Этот пользователь имеет доступ к своим сертификатам, временным папкам и сетевым настройкам. Однако веб-сервер IIS запускает процессы 1С (через пул приложений) под специальной системной учетной записью, такой как ApplicationPoolIdentity.
У этой учетной записи крайне ограниченные права. Рассмотрим подробнее, чего именно ей не хватает:
Temp и веткам реестра HKEY_CURRENT_USER.Проанализируем самый простой метод, который помогает в большинстве случаев "здесь и сейчас". Этот способ заключается в передаче пулу приложений максимальных прав в системе. Рассмотрим шаги настройки:
DefaultAppPool, если вы не создавали отдельный).LocalSystem (Локальная система).iisreset в консоли).Важное предостережение: Использование LocalSystem дает процессу 1С неограниченные права на сервере. С точки зрения безопасности это "плохой тон". Если ваш веб-сервер смотрит в открытый интернет, рекомендуется использовать Способ 2.
Разберем, как сделать работу стабильной, не открывая "дыру" в безопасности сервера. Вместо того чтобы давать права суперпользователя, мы создадим отдельную учетную запись и настроим её окружение.
Шаг 1: Настройка профиля пользователя. В тех же дополнительных параметрах пула приложений найдем параметр Загрузить профиль пользователя (Load User Profile) и установим его в значение True. Это критически важно для работы внешних компонентов 1С и обращения к API государственных сервисов.
Шаг 2: Работа с сертификатами. Если 1С должна работать с ГОСТ-шифрованием (через КриптоПро), выполним следующие действия:
IIS_IUSRS.Шаг 3: Права на каталоги. Проверим и добавим права "Изменение" (Modify) для пользователя, под которым работает пул (или для группы IIS_IUSRS), на следующие папки:
C:\Program Files\1cv8\bin).C:\Windows\Temp..vrd.Иногда выясняется причина, по которой интернет не работает даже после настройки прав: настройки прокси-сервера в браузере пользователя не действуют на службы IIS. Проанализируем ситуацию, когда интернет "прямой", но система требует явного указания настроек. Для этого воспользуемся командной строкой от имени администратора:
netsh winhttp show proxy
Если команда показывает, что прокси не настроен, а он вам нужен, или наоборот — прокси мешает работе, его можно сбросить или импортировать из настроек браузера Internet Explorer:
netsh winhttp import proxy source=ie
Посмотрим на технический нюанс разрядности. Многие компоненты для работы с маркировкой или криптографией могут быть 32-битными. Если ваш сервер 64-битный и пул приложений работает в 64-битном режиме, компонента не загрузится. Чтобы это исправить, в дополнительных параметрах пула приложений включите опцию Разрешены 32-разрядные приложения (Enable 32-Bit Applications).
Для корректной работы сервисов 1С через веб-сервер IIS необходимо:
LocalSystem (быстро), либо создать выделенного пользователя с загрузкой профиля Load User Profile = True (правильно).Temp и программные каталоги 1С.Соблюдение этих правил позволит использовать все возможности 1С:Предприятия в режиме веб-клиента без ограничений по взаимодействию с внешним миром.