Почему в 1С не работает сервис ФНС для проверки контрагентов и как решить эту проблему?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет
← На главную

Каждый бухгалтер и системный администратор в период сдачи налоговой отчетности (особенно декларации по НДС) регулярно сталкивается с неприятной ситуацией. При попытке проверить контрагентов непосредственно из книги покупок или книги продаж программа выдает критическую ошибку: «Не удалось произвести проверку, сервис ФНС временно недоступен». При этом проверка подключения в настройках программы также завершается неудачей.

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

Разгадка парадокса: почему заполнение по ИНН работает, а групповая проверка — нет?

Для того чтобы понять причину сбоя, необходимо заглянуть под капот платформы 1С и выяснить, как именно программа общается с внешним миром. Дело в том, что за автозаполнение карточек и за групповую проверку в отчетах отвечают две абсолютно разные технологические системы:

  1. Сервис «1С:Контрагент» (автозаполнение по ИНН): этот механизм работает через коммерческие шлюзы компании 1С. Когда вы вводите ИНН в карточке, программа отправляет запрос на промежуточные серверы кэширования (например, на адрес api.orgregister.1c.ru). Эти серверы обладают колоссальной отказоустойчивостью, аккумулируют информацию из ЕГРЮЛ, Росстата и других баз данных, а также дублируют информацию в случае недоступности первоисточников. Поэтому автозаполнение работает стабильно даже во время технических работ в самой налоговой службе.
  2. Прямой веб-сервис ФНС (проверка в книгах покупок и продаж): групповой веб-сервер проверки контрагентов обращается напрямую к шлюзам Федеральной налоговой службы по протоколу SOAP. Запросы отправляются непосредственно на адрес веб-службы npchk.nalog.ru. Фирма 1С здесь выступает лишь в роли транслятора запроса. Если сервер ФНС перегружен, отключен на регламентные работы или заблокирован вашим сетевым экраном, программа не сможет получить ответ и выведет сообщение о недоступности сервиса.

Теперь, когда мы поняли разницу в архитектуре запросов, проанализируем основные технические причины, по которым ломается прямая проверка через веб-сервис ФНС.

Основные причины сбоя прямого сервиса ФНС

Рассмотрим подробнее четыре главные причины, из-за которых ломается интеграция:

Пошаговое руководство по решению проблемы

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

Шаг 1. Анализ Журнала регистрации в 1С

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

  1. Откроем информационную базу 1С в режиме «1С:Предприятие» под правами администратора.
  2. Перейдем в раздел «Администрирование» — «Обслуживание» — «Журнал регистрации».
  3. Настроим фильтр, выбрав в поле «Событие» параметры, связанные с обменом данными, или просто найдем записи с уровнем важности «Ошибка» на момент выполнения проверки контрагентов.
  4. Проанализируем текст ошибки. Если в тексте фигурирует сообщение вида «Удаленный узел не прошел проверку» — проблема в SSL-сертификатах. Если написано «Время ожидания операции истекло» — дело в таймауте или блокировке порта.

Шаг 2. Настройка сетевого экрана и прокси-сервера

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

Попробуем выполнить проверку доступности узла. Обратите внимание, что пинговать узел командой ping npchk.nalog.ru часто бесполезно, так как государственные серверы закрыты от ICMP-запросов. Проверять нужно доступность конкретного порта (80 и 443) для SOAP-протокола.

Для этого откроем командную строку (или PowerShell) на сервере, где запущен сервер 1С:Предприятие, и выполним команду проверки сетевого порта:

Test-NetConnection -ComputerName npchk.nalog.ru -Port 443

Если проверка возвращает результат TcpTestSucceeded : False, это явный признак блокировки со стороны вашего сетевого оборудования. Для решения этой проблемы системному администратору необходимо:

  1. Добавить адрес npchk.nalog.ru в белый список (исключения) вашего межсетевого экрана (Kerio, pfSense и др.).
  2. Убедиться, что для этого адреса отключена функция глубокого анализа пакетов (SSL-дешифрование/HTTPS inspection), так как она подменяет сертификаты узла, из-за чего 1С прерывает соединение.
  3. Если для выхода в интернет используется прокси-сервер, убедитесь, что его параметры корректно прописаны в файле dbcfg.xml или в настройках программы 1С (раздел «Администрирование» — «Параметры связи»).

Шаг 3. Установка отечественных корневых сертификатов

Если сетевой доступ открыт, но платформа 1С все равно отказывается доверять узлу ФНС, необходимо обновить корневые сертификаты операционной системы на сервере приложений 1С:

  1. Скачаем актуальный цепочечный сертификат Минцифры РФ с официального портала государственных услуг.
  2. Установим его в хранилище «Доверенные корневые центры сертификации» (Trusted Root Certification Authorities) для локального компьютера (а не текущего пользователя!).
  3. В случае если сервер 1С работает под управлением ОС Linux (Ubuntu/CentOS), выполним импорт сертификатов в системное хранилище через консоль (например, скопировав файл сертификата в каталог /usr/local/share/ca-certificates/ и выполнив команду sudo update-ca-certificates).
  4. Перезапустим службу сервера 1С:Предприятие для применения изменений.

Шаг 4. Увеличение времени ожидания ответа (таймаута) в коде 1С

Если сервис ФНС банально перегружен в отчетный период и отвечает слишком медленно, мы можем помочь программе дождаться этого ответа. Для этого программисту потребуется внести небольшое изменение в код конфигурации (или создать расширение):

Рассмотрим пример кода, отвечающего за инициализацию HTTP-соединения с сервисом ФНС. По умолчанию в конфигурации может быть жестко прописан таймаут в 15 или 20 секунд. Нам нужно увеличить это значение, например, до 120–300 секунд.

Проанализируем следующий пример модификации кода в общем модуле, отвечающем за интеграцию с сервисом проверок контрагентов:


// Находим место создания HTTP-соединения в коде проверки
// Обычно это процедура в модуле типа "ПроверкаКонтрагентовКлиентСервер"

АдресСервиса = "npchk.nalog.ru";
ПортСервиса = 443;
ИспользоватьЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();

// По умолчанию таймаут равен 15 секундам. Увеличим его до 5 минут (300 секунд)
НовыйТаймаут = 300; 

Соединение = Новый HTTPСоединение(
    АдресСервиса,
    ПортСервиса,
    ,, // Имя пользователя и пароль (не требуются)
    ,  // Прокси
    НовыйТаймаут,
    ИспользоватьЗащищенноеСоединение
);

Увеличение лимита времени ожидания позволит программе не разрывать сессию раньше времени при медленной работе серверов ФНС, и дождаться успешного ответа.

Рекомендация по временному обходу проблемы

Если сдать декларацию по НДС нужно срочно, а шлюз ФНС лежит мертвым грузом уже несколько часов, воспользуемся обходными путями:

Таким образом, планомерный анализ сетевых блокировок, установка актуальных сертификатов шифрования и корректировка таймаутов в коде 1С позволяют полностью решить проблему доступности проверки контрагентов.

← На главную