Ситуация, когда в одной конфигурации (например, «Управление торговлей») сервис «1С:Контрагент» функционирует исправно, а в «Бухгалтерии предприятия 3.0» (БП) выдает ошибку «Не удалось найти данные для заполнения реквизитов по ИНН», встречается довольно часто. Это вызывает недоумение, особенно если обе базы находятся на одном сервере, используют одну лицензию ИТС и запускаются в идентичном окружении. Проанализируем причины этой проблемы и разберем по шагам методы её решения.
Первым делом нам необходимо исключить вероятность банальных ошибок в настройках авторизации. Даже если вы уверены, что «всё одинаково», проверим следующие пункты:
Администрирование — Интернет-поддержка и сервисы. Убедимся, что в обеих базах (БП и УТ) указан один и тот же логин и пароль от Портала 1С:ИТС. Иногда после смены пароля на портале данные в одной из баз могут не обновиться автоматически.Тонкий клиент, а УТ через Толстый клиент (или наоборот), механизмы обращения к интернет-ресурсам могут отличаться на уровне операционной системы. Попробуем привести их к единому режиму.Если при попытке подключения к интернет-поддержке возникает ошибка «Удаленный узел не прошел проверку», это явный признак проблем с SSL-сертификатами. Сервис 1С:Контрагент работает по защищенному протоколу HTTPS, и если платформа не может подтвердить подлинность сертификата сайта portal-monitor.1c.ru, соединение разрывается.
Разберем, почему это происходит в одной базе и не происходит в другой. Платформа 1С хранит список доверенных корневых сертификатов в специальном файле cacert.pem. Если версии платформы, используемые для баз, различаются, или если одна из баз «подхватывает» системные сертификаты Windows, а другая — внутренние, возникает конфликт.
Для решения выполним следующие действия:
cacert.pem в каталоге установленной платформы (обычно это C:\Program Files\1cv8\номер_версии\bin\conf).cacert.pem из самой последней версии платформы в папку той версии, на которой работает проблемная база.conf.cfg строку UseSystemCertificates=0 или 1, чтобы принудительно изменить логику проверки сертификатов (использовать системное хранилище Windows или встроенное в 1С).Конфигурация «Бухгалтерия предприятия» имеет более сложную систему кэширования состояний сервисов по сравнению с «Управлением торговлей». Выясним причину, по которой БП может считать сервис недоступным, даже не пытаясь отправить запрос.
Проанализируем состояние следующих объектов:
Контрагент.Рассмотрим код для принудительного обновления состояния сервисов через внешнюю обработку или консоль кода:
// Пример принудительного обновления статуса интернет-поддержки
ПараметрыПодключения = ИнтернетПоддержкаПользователей.ПараметрыПодключения();
Результат = ИнтернетПоддержкаПользователей.ПроверитьДоступностьСервиса("Контрагент", ПараметрыПодключения);
Если Результат.Доступен Тогда
Сообщить("Сервис доступен, проблема в кэше данных");
Иначе
Сообщить("Сервис недоступен: " + Результат.ОписаниеОшибки);
КонецЕсли;
Посмотрим на ситуацию со стороны системного администрирования. В описании указано, что доступ к любым сайтам с сервера закрыт. Это ключевой момент. УТ может работать, если для неё прописаны исключения в настройках прокси-сервера или если она использует Системные настройки прокси, которые уже настроены админом.
Выполним следующие шаги в БП:
Администрирование — Параметры системы — Настройки прокси-сервера.ragent), а не клиентское приложение. Следовательно, настройки интернета и прокси должны быть сконфигурированы для той учетной записи Windows, под которой запущена служба 1C:Enterprise 8.3 Server Agent.Если вышеперечисленные методы не помогли, проанализируем ситуацию с помощью отладчика. Нам нужно найти точку, в которой программа принимает решение о том, что данные не найдены. Обычно это происходит в общем модуле, отвечающем за работу с сервисом ОргИнфо.
Рассмотрим последовательность действий при отладке:
ДанныеРаботаСНоменклатурой или КонтрагентыСлужебный (названия могут варьироваться в зависимости от релиза БП), в процедуре, вызывающей ЗаполнитьРеквизитыПоИНН.СоздатьОбъектHTTPСоединение.api.orginfo.1c.ru, в то время как новые используют другие эндпоинты.ОтправитьДляОбработки (или аналогичного) возвращается код ответа 200 (OK). Если возвращается 403 (Forbidden) или 401 (Unauthorized), проблема в подписке или авторизации. Если ошибка 500 — проблема на стороне сервера 1С или в структуре XML/JSON пакета.Важно помнить, что в БП 3.0.100.16 алгоритм может отличаться от УТ 11.4. В БП часто используется фоновое задание для получения данных. Если фоновые задания в базе запрещены (установлен флаг «Блокировка регламентных заданий» в консоли кластера), то заполнение по ИНН может не срабатывать, так как основной поток ожидает ответа от фонового процесса, который даже не запустился.
Для восстановления работы сервиса в «1С:Бухгалтерии» рекомендуется придерживаться следующего алгоритма:
cacert.pem).Администрирование.*.1c.ru и *.1c.pro.Обслуживание — Регламентные операции.Проанализировав все эти факторы, мы сможем точно определить, на каком уровне (сетевом, платформенном или прикладном) происходит блокировка запроса, и успешно восстановить автоматическое заполнение контрагентов.