Почему в 1С:Бухгалтерии не работает автозаполнение по ИНН, если в других базах на том же сервере оно работает?

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

Ситуация, когда в одной конфигурации (например, «Управление торговлей») сервис «1С:Контрагент» функционирует исправно, а в «Бухгалтерии предприятия 3.0» (БП) выдает ошибку «Не удалось найти данные для заполнения реквизитов по ИНН», встречается довольно часто. Это вызывает недоумение, особенно если обе базы находятся на одном сервере, используют одну лицензию ИТС и запускаются в идентичном окружении. Проанализируем причины этой проблемы и разберем по шагам методы её решения.

Проверка базовых настроек интернет-поддержки

Первым делом нам необходимо исключить вероятность банальных ошибок в настройках авторизации. Даже если вы уверены, что «всё одинаково», проверим следующие пункты:

  1. Идентичность учетных данных: Перейдем в раздел Администрирование — Интернет-поддержка и сервисы. Убедимся, что в обеих базах (БП и УТ) указан один и тот же логин и пароль от Портала 1С:ИТС. Иногда после смены пароля на портале данные в одной из баз могут не обновиться автоматически.
  2. Лимиты обращений: Зайдем в личный кабинет на портале 1С под используемой учетной записью. Проверим статус подписки и остаток обращений к сервису «1С:Контрагент». Хотя в описанной ситуации лимит может быть большим, важно убедиться, что договор ИТС активен именно для той организации, от имени которой работает база.
  3. Режим запуска: Проанализируем, как запускаются базы. Если БП запущена через Тонкий клиент, а УТ через Толстый клиент (или наоборот), механизмы обращения к интернет-ресурсам могут отличаться на уровне операционной системы. Попробуем привести их к единому режиму.

Решение проблемы с SSL-сертификатами: «Удаленный узел не прошел проверку»

Если при попытке подключения к интернет-поддержке возникает ошибка «Удаленный узел не прошел проверку», это явный признак проблем с SSL-сертификатами. Сервис 1С:Контрагент работает по защищенному протоколу HTTPS, и если платформа не может подтвердить подлинность сертификата сайта portal-monitor.1c.ru, соединение разрывается.

Разберем, почему это происходит в одной базе и не происходит в другой. Платформа 1С хранит список доверенных корневых сертификатов в специальном файле cacert.pem. Если версии платформы, используемые для баз, различаются, или если одна из баз «подхватывает» системные сертификаты Windows, а другая — внутренние, возникает конфликт.

Для решения выполним следующие действия:

Анализ специфических механизмов БП 3.0: Регистры и Кэш

Конфигурация «Бухгалтерия предприятия» имеет более сложную систему кэширования состояний сервисов по сравнению с «Управлением торговлей». Выясним причину, по которой БП может считать сервис недоступным, даже не пытаясь отправить запрос.

Проанализируем состояние следующих объектов:

  1. Регистр сведений «Состояния сервисов»: Здесь программа хранит информацию о доступности тех или иных ресурсов. Если один раз произошел сбой (например, кратковременно пропал интернет), БП может записать статус «Ошибка» и блокировать все последующие попытки на определенное время. Попробуем очистить записи в этом регистре для сервиса Контрагент.
  2. Регистр сведений «Кэш программных интерфейсов»: БП активно кэширует структуру ответов от серверов 1С. При обновлении конфигурации или изменении API на стороне 1С, старый кэш может приводить к ошибкам десериализации данных.

Рассмотрим код для принудительного обновления состояния сервисов через внешнюю обработку или консоль кода:


// Пример принудительного обновления статуса интернет-поддержки
ПараметрыПодключения = ИнтернетПоддержкаПользователей.ПараметрыПодключения();
Результат = ИнтернетПоддержкаПользователей.ПроверитьДоступностьСервиса("Контрагент", ПараметрыПодключения);
Если Результат.Доступен Тогда
    Сообщить("Сервис доступен, проблема в кэше данных");
Иначе
    Сообщить("Сервис недоступен: " + Результат.ОписаниеОшибки);
КонецЕсли;

Прокси-сервер и сетевые ограничения

Посмотрим на ситуацию со стороны системного администрирования. В описании указано, что доступ к любым сайтам с сервера закрыт. Это ключевой момент. УТ может работать, если для неё прописаны исключения в настройках прокси-сервера или если она использует Системные настройки прокси, которые уже настроены админом.

Выполним следующие шаги в БП:

Отладка программного кода

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

Рассмотрим последовательность действий при отладке:

  1. Установим точку останова в общем модуле ДанныеРаботаСНоменклатурой или КонтрагентыСлужебный (названия могут варьироваться в зависимости от релиза БП), в процедуре, вызывающей ЗаполнитьРеквизитыПоИНН.
  2. Проследим путь запроса до функции СоздатьОбъектHTTPСоединение.
  3. Проверим, какой URL формируется. Иногда старые релизы БП пытаются стучаться на api.orginfo.1c.ru, в то время как новые используют другие эндпоинты.
  4. Убедимся, что при вызове метода ОтправитьДляОбработки (или аналогичного) возвращается код ответа 200 (OK). Если возвращается 403 (Forbidden) или 401 (Unauthorized), проблема в подписке или авторизации. Если ошибка 500 — проблема на стороне сервера 1С или в структуре XML/JSON пакета.

Важно помнить, что в БП 3.0.100.16 алгоритм может отличаться от УТ 11.4. В БП часто используется фоновое задание для получения данных. Если фоновые задания в базе запрещены (установлен флаг «Блокировка регламентных заданий» в консоли кластера), то заполнение по ИНН может не срабатывать, так как основной поток ожидает ответа от фонового процесса, который даже не запустился.

Резюме по исправлению ситуации

Для восстановления работы сервиса в «1С:Бухгалтерии» рекомендуется придерживаться следующего алгоритма:

  1. Обновить платформу до актуального релиза (или хотя бы обновить cacert.pem).
  2. Проверить и переподключить интернет-поддержку в разделе Администрирование.
  3. Убедиться, что служба сервера 1С имеет доступ к портам 80 и 443 для адресов *.1c.ru и *.1c.pro.
  4. Очистить кэш программных интерфейсов через Обслуживание — Регламентные операции.

Проанализировав все эти факторы, мы сможем точно определить, на каком уровне (сетевом, платформенном или прикладном) происходит блокировка запроса, и успешно восстановить автоматическое заполнение контрагентов.

← На главную