Каждый бухгалтер и системный администратор в период сдачи налоговой отчетности (особенно декларации по НДС) регулярно сталкивается с неприятной ситуацией. При попытке проверить контрагентов непосредственно из книги покупок или книги продаж программа выдает критическую ошибку: «Не удалось произвести проверку, сервис ФНС временно недоступен». При этом проверка подключения в настройках программы также завершается неудачей.
Самое удивительное в этой ситуации то, что при создании нового контрагента автозаполнение реквизитов по ИНН или наименованию продолжает работать без каких-либо нареканий. В этой статье мы подробно разберем, почему возникает этот парадокс, проанализируем технические причины сбоя и рассмотрим пошаговые инструкции по восстановлению работоспособности сервиса.
Для того чтобы понять причину сбоя, необходимо заглянуть под капот платформы 1С и выяснить, как именно программа общается с внешним миром. Дело в том, что за автозаполнение карточек и за групповую проверку в отчетах отвечают две абсолютно разные технологические системы:
api.orgregister.1c.ru). Эти серверы обладают колоссальной отказоустойчивостью, аккумулируют информацию из ЕГРЮЛ, Росстата и других баз данных, а также дублируют информацию в случае недоступности первоисточников. Поэтому автозаполнение работает стабильно даже во время технических работ в самой налоговой службе.npchk.nalog.ru. Фирма 1С здесь выступает лишь в роли транслятора запроса. Если сервер ФНС перегружен, отключен на регламентные работы или заблокирован вашим сетевым экраном, программа не сможет получить ответ и выведет сообщение о недоступности сервиса.Теперь, когда мы поняли разницу в архитектуре запросов, проанализируем основные технические причины, по которым ломается прямая проверка через веб-сервис ФНС.
Рассмотрим подробнее четыре главные причины, из-за которых ломается интеграция:
npchk.nalog.ru могут распознаваться защитным ПО как подозрительная активность или попытка сканирования сети, в результате чего соединение обрывается.Выясним, как локализовать и устранить каждую из возможных проблем.
Прежде чем менять сетевые настройки, необходимо точно определить, где именно спотыкается программа. Для этого воспользуемся встроенными средствами диагностики:
«Удаленный узел не прошел проверку» — проблема в SSL-сертификатах. Если написано «Время ожидания операции истекло» — дело в таймауте или блокировке порта.Если в Журнале регистрации зафиксированы ошибки связи, необходимо проверить доступность веб-сервиса на уровне операционной системы.
Попробуем выполнить проверку доступности узла. Обратите внимание, что пинговать узел командой ping npchk.nalog.ru часто бесполезно, так как государственные серверы закрыты от ICMP-запросов. Проверять нужно доступность конкретного порта (80 и 443) для SOAP-протокола.
Для этого откроем командную строку (или PowerShell) на сервере, где запущен сервер 1С:Предприятие, и выполним команду проверки сетевого порта:
Test-NetConnection -ComputerName npchk.nalog.ru -Port 443
Если проверка возвращает результат TcpTestSucceeded : False, это явный признак блокировки со стороны вашего сетевого оборудования. Для решения этой проблемы системному администратору необходимо:
npchk.nalog.ru в белый список (исключения) вашего межсетевого экрана (Kerio, pfSense и др.).dbcfg.xml или в настройках программы 1С (раздел «Администрирование» — «Параметры связи»).Если сетевой доступ открыт, но платформа 1С все равно отказывается доверять узлу ФНС, необходимо обновить корневые сертификаты операционной системы на сервере приложений 1С:
/usr/local/share/ca-certificates/ и выполнив команду sudo update-ca-certificates).Если сервис ФНС банально перегружен в отчетный период и отвечает слишком медленно, мы можем помочь программе дождаться этого ответа. Для этого программисту потребуется внести небольшое изменение в код конфигурации (или создать расширение):
Рассмотрим пример кода, отвечающего за инициализацию HTTP-соединения с сервисом ФНС. По умолчанию в конфигурации может быть жестко прописан таймаут в 15 или 20 секунд. Нам нужно увеличить это значение, например, до 120–300 секунд.
Проанализируем следующий пример модификации кода в общем модуле, отвечающем за интеграцию с сервисом проверок контрагентов:
// Находим место создания HTTP-соединения в коде проверки
// Обычно это процедура в модуле типа "ПроверкаКонтрагентовКлиентСервер"
АдресСервиса = "npchk.nalog.ru";
ПортСервиса = 443;
ИспользоватьЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
// По умолчанию таймаут равен 15 секундам. Увеличим его до 5 минут (300 секунд)
НовыйТаймаут = 300;
Соединение = Новый HTTPСоединение(
АдресСервиса,
ПортСервиса,
,, // Имя пользователя и пароль (не требуются)
, // Прокси
НовыйТаймаут,
ИспользоватьЗащищенноеСоединение
);
Увеличение лимита времени ожидания позволит программе не разрывать сессию раньше времени при медленной работе серверов ФНС, и дождаться успешного ответа.
Если сдать декларацию по НДС нужно срочно, а шлюз ФНС лежит мертвым грузом уже несколько часов, воспользуемся обходными путями:
Таким образом, планомерный анализ сетевых блокировок, установка актуальных сертификатов шифрования и корректировка таймаутов в коде 1С позволяют полностью решить проблему доступности проверки контрагентов.