При работе в конфигурациях 1С:Управление производственным предприятием 1.3 (УПП), Бухгалтерия государственного учреждения 1.0 (БГУ) или старых редакциях Бухгалтерии предприятия пользователи часто сталкиваются с ошибкой при попытке автоматического заполнения реквизитов контрагента по ИНН. В Журнале регистрации при этом фиксируется ошибка: Несоответствие типов (параметр номер '1') в общем модуле ПользователиПолныеПрава при вызове метода НайтиПоУникальномуИдентификатору.
Рассмотрим подробнее причины этой проблемы, разберем по шагам диагностику и выясним, как восстановить работоспособность сервиса 1С:Контрагент.
На первый взгляд кажется, что ошибка программная, так как стек вызовов указывает на процедуру ОпределитьТекущегоПользователя. Однако в старых конфигурациях этот механизм тесно связан с проверкой прав доступа при выполнении запросов к внешним веб-сервисам. Проанализируем ситуацию: когда программа обращается к серверу api.orgregister.1c.ru, она делает это в контексте фонового задания или с использованием механизмов интернет-поддержки. Если запрос прерывается из-за сетевой ошибки или отсутствия прав, система может некорректно обрабатывать потерю контекста пользователя, передавая в метод НайтиПоУникальномуИдентификатору() пустое значение или объект неверного типа, что и вызывает исключение.
Чаще всего это происходит по трем причинам:
Первым делом проанализируем, видит ли ваш сервер 1С ресурсы, необходимые для работы сервиса. Для этого выполним диагностику непосредственно с того компьютера, где установлена информационная база (для файловых баз — с рабочего места пользователя, для клиент-серверных — с сервера приложений).
Попробуем выполнить команду ping и трассировку маршрута до узла api.orgregister.1c.ru. Рассмотрим пример того, как выглядит проблема в командной строке:
Pinging api.orgregister.1c.ru [185.12.155.122] with 32 bytes of data:
Request timed out.
Request timed out.
Если ping не проходит, а трассировка (tracert) обрывается на внешних узлах или на вашем роутере, это явный признак того, что сетевой экран блокирует пакеты. Проверьте правила вашего фаервола или обратитесь к системному администратору. Убедитесь, что открыт порт 443 (HTTPS) для всех поддоменов *.1c.ru.
Если сеть доступна, но ошибка сохраняется в конфигурациях на обычных формах (УПП, БГУ 1.0), причина может крыться в устаревшем файле сертификатов платформы. Сервис 1С:Контрагент использует сертификат GlobalSign Root R3, который может отсутствовать в старых версиях платформы 1С.
Разберем, как обновить сертификаты вручную:
C:\Program Files\1cv8\8.3.20.1674\bin\conf).cacert.pem.cacertGS.zip).Современные стандарты безопасности требуют использования протокола шифрования TLS 1.2. Если ваш сервер работает под управлением Windows Server 2008 R2 или Windows 7, этот протокол может быть отключен по умолчанию. Это приведет к тому, что 1С не сможет установить защищенное соединение с сервером api.orgregister.1c.ru.
Для включения TLS 1.2 проанализируем состояние реестра. Необходимо создать или изменить следующие параметры:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
После внесения правок в реестр обязательна перезагрузка сервера.
Выясним еще одну важную деталь: воспроизводится ли ошибка под пользователем с полными правами? Если под администратором заполнение по ИНН работает (или хотя бы не выдает ошибку, даже если заполняется только КПП), значит, проблема связана с ограничениями доступа. В старых конфигурациях выполнение запроса часто происходит в «Безопасном режиме», где доступ к внешним ресурсам ограничен.
Проверьте в коде общий модуль ПолныеПрава. В некоторых случаях помогает вставка кода для временного повышения привилегий перед вызовом интернет-поддержки:
УстановитьПривилегированныйРежим(Истина);
// Вызов функции получения данных по ИНН
УстановитьПривилегированныйРежим(Ложь);
Если вы используете УПП 1.3, важно понимать, что 1С недавно обновила API для работы с контрагентами. Старый программный код пытается стучаться на /rest/v1, который более не поддерживается. Для исправления требуется обновить конфигурацию до актуального релиза или выполнить выборочное обновление объектов из новой версии БИП через «Сравнение и объединение конфигураций».
Резюме: Если вы видите ошибку Несоответствие типов в модуле пользователей при работе с ИНН — это «эхо» неудачного сетевого соединения. Последовательно проверьте доступность узла api.orgregister.1c.ru, обновите файл cacert.pem и убедитесь, что роутер не блокирует HTTPS-трафик к серверам 1С.