Как обновить сервис 1С:Контрагент после отключения устаревшего источника данных и устранить проблемы с доступом в старых и нетиповых конфигурациях 1С?

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

В феврале 2022 года пользователи 1С столкнулись с проблемой: планировалось отключение устаревшего источника данных для сервиса 1С:Контрагент. Это событие вызвало необходимость в срочном обновлении и адаптации конфигураций, особенно самописных или не обновляемых до последних типовых релизов. Однако, поначалу старые источники продолжали функционировать, вызывая путаницу. Ситуация усложнилась в апреле 2022 года, когда к проблемам с устаревшим API добавились массированные DDoS-атаки на интернет-ресурсы 1С, что привело к временной недоступности сервиса и появлению ошибок, связанных с сертификатами безопасности. В данном руководстве мы подробно рассмотрим, как решить эти проблемы, включая обновление API и устранение ошибок, вызванных DDoS-атаками, для различных версий конфигураций 1С.

Понимание проблемы: Отключение устаревшего API и новые вызовы

Изначальная проблема заключалась в плановом отключении 7-й версии API сервиса 1С:Контрагент, который использовал адрес https://api.orgregister.1c.ru/orgregister/v7?wsdl. Хотя в феврале 2022 года этот источник мог продолжать работать, данные в нем уже не обновлялись. Это означало, что новые юридические лица и индивидуальные предприниматели не могли быть найдены. В конечном итоге, устаревший API был полностью отключен, что привело к полной неработоспособности сервиса для тех, кто не перешел на актуальные версии.

Для корректной работы сервиса 1С:Контрагент необходимо перейти на более новые версии API. Начиная с версии Библиотеки интернет-поддержки (БИП) 2.2.3 (выпущенной в октябре 2017 года), используется 8-я версия источника данных. С версии БИП 2.5.1 реализована 9-я версия API. Именно на 9-ю версию и рекомендуется переходить для обеспечения стабильной и актуальной работы сервиса.

Актуальные запросы к 9-й версии API используют следующие адреса:

  1. Реквизиты юридических лиц по ИНН: https://api.orgregister.1c.ru/orgregister/v9/json/req?inn={ИНН}
  2. Досье юридических лиц по ИНН: https://api.orgregister.1c.ru/orgregister/v9/json/dossier?inn={ИНН}
  3. Реквизиты иностранного представительства (РАФП) по ИНН: https://api.orgregister.1c.ru/orgregister/v9/json/rafp?inn={ИНН}
  4. Реквизиты юридических лиц/РАФП по ИНН: https://api.orgregister.1c.ru/orgregister/v9/json/reqrafp?inn={ИНН}
  5. Реквизиты ИП по ИНН: https://api.orgregister.1c.ru/orgregister/v9/json/ipreq?inn={ИНН}
  6. Досье ИП по ИНН: https://api.orgregister.1c.ru/orgregister/v9/json/ipdossier?inn={ИНН}

Мы видим, что новые методы вызова API используют более современные REST-интерфейсы, что требует соответствующей адаптации программного кода в конфигурациях.

Обновление Библиотеки Интернет-поддержки (БИП) и адаптация конфигураций

Оптимальным решением является обновление типовой конфигурации 1С до актуальной версии, которая уже содержит необходимую версию БИП (не ниже 2.2.3, а лучше 2.5.1 и выше). Однако, если ваша конфигурация сильно доработана или является устаревшей, обновление всей системы может быть невозможным или слишком трудоемким. В таких случаях мы рассмотрим варианты частичного обновления или ручной адаптации.

Для определения текущей версии подсистем в вашей конфигурации, включая БИП, мы можем воспользоваться специальной ссылкой: e1cib/list/РегистрСведений.ВерсииПодсистем. Перейдя по ней в режиме 1С:Предприятие, вы получите список всех используемых подсистем и их версий, что поможет принять решение о необходимости и объеме доработок.

Адаптация для Управления Торговлей 11.3.2.218

Для конфигураций, подобных УТ 11.3.2.218, где изначально использовалась версия БИП 2.1.9, мы можем выполнить частичное обновление до версии БИП 2.2.3. Этот процесс потребует не только обновления существующих объектов, но и дополнения общих модулей из Библиотеки стандартных подсистем (БСП). Рассмотрим подробнее, какие объекты необходимо доработать:

  1. Справочник Партнеры:
    • Форма элемента ФормаЭлементаРеквизитыКонтрагента. Нам предстоит модифицировать эту форму, чтобы она корректно взаимодействовала с обновленным сервисом. Это может включать изменение обработчиков событий, связанных с заполнением реквизитов, и адаптацию логики вызова сервиса.
  2. Справочник Контрагенты:
    • Форма элемента ФормаЭлемента. Аналогично справочнику Партнеры, основная форма элемента Контрагенты требует внимания. Мы должны убедиться, что все кнопки и процедуры, отвечающие за заполнение по ИНН или обновление данных, используют новые методы API.
  3. Общие модули: Эти модули содержат основную бизнес-логику и вспомогательные функции для работы сервиса.
    • ОбщегоНазначенияПовтИсп: Вероятно, содержит функции для повторного использования, которые могут быть связаны с сетевыми запросами или обработкой XML/JSON данных. Мы проверим, не требуются ли в нем изменения для работы с новыми типами запросов или ответов.
    • ОбщегоНазначения: Общий модуль, который может содержать служебные процедуры и функции, необходимые для взаимодействия с внешними сервисами. Мы должны убедиться, что все вызовы сервиса 1С:Контрагент в этом модуле были обновлены.
    • ОбщегоНазначенияУТ: Модуль, специфичный для конфигурации УТ. Он может содержать специализированные функции, которые используют сервис 1С:Контрагент. Мы должны внимательно проанализировать его на предмет устаревших вызовов.
    • ОтправкаSMS: В этом модуле была обнаружена конфликтная процедура. Для обеспечения совместимости и бесперебойной работы сервиса 1С:Контрагент, мы закомментируем данную процедуру. Этот шаг позволяет избежать ошибок, не связанных напрямую с 1С:Контрагентом, но мешающих общей работе системы после обновлений.
    • ДанныеЕдиныхГосРеестров: Этот модуль является центральным для работы с государственными реестрами, включая данные о контрагентах. Он требует наиболее тщательной доработки для перехода на новый API. В нем будут меняться адреса сервисов, форматы запросов и парсинг ответов.
  4. Регистр сведений КешПрограммныхИнтерфейсов:
    • Этот регистр используется как общий модуль и может содержать кешированные данные или настройки для программных интерфейсов. Мы должны проверить, не требуется ли его адаптация для работы с новыми API или очистка кеша после обновления.

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

Адаптация для Комплексной Автоматизации 1.1.58.2

Для Комплексной Автоматизации 1.1, особенно в версии 1.1.58.2, процесс адаптации сервиса 1С:Контрагент также требует специфических изменений. В этом случае мы сфокусируемся на корректировке конкретной процедуры и добавлении необходимых функций в основной модуль работы с данными реестров. Это решение доказало свою стабильность для старых версий КА.

  1. Справочник Контрагенты, форма элемента:
    • Процедура ДозаполнимЗначенияРеквизитов. Нам необходимо скорректировать логику этой процедуры, которая отвечает за дополнительное заполнение реквизитов контрагента. Мы адаптируем ее для вызова нового API и корректной обработки полученных данных, обеспечивая полное и точное заполнение информации.
  2. Общий модуль СервисДанныхЕдиныхГосРеестров: Этот модуль является ключевым для взаимодействия с сервисом 1С:Контрагент в старых конфигурациях КА. Нам предстоит добавить в него ряд новых функций:
    • Функции для обхода проблем режима совместимости:
      • СтрНайти_83_82: Адаптированная функция поиска подстроки, учитывающая особенности работы в режимах совместимости платформы 1С:Предприятие 8.3 и 8.2.
      • СтрСоединить: Функция для корректного объединения строк, необходимая для формирования URL-адресов или данных запросов.
      • СтрРазделить: Функция для разделения строк, используемая при парсинге ответов от сервиса.
    • Функции для работы с параметрами сервиса:
      • Функция БазовыйURLСервиса: Эта функция будет возвращать актуальный базовый URL для нового API сервиса 1С:Контрагент. В старых базах это должно быть реализовано в модуле ДанныеЕдиныхГосРеестров.
      • ПараметрыСервисаЮридическиеЛица: Функция, которая формирует специфические параметры для запросов, касающихся юридических лиц.
      • ПараметрыСервисаИндивидуальныеПредприниматели: Функция для формирования параметров запросов, специфичных для индивидуальных предпринимателей.
      • ДополнительныеПараметрыВызоваОперацииСервиса: Эта функция позволит добавлять любые необходимые дополнительные параметры при вызове операций сервиса, обеспечивая гибкость в работе с API.
      • ПроверитьДополнительныеАдресныеЭлементы: Функция для валидации или обработки дополнительных элементов адреса, получаемых от сервиса.
      • ЭтоЗаписьЧисловогоЭлементаАдреса: Функция для определения, является ли элемент адреса числовым, что важно для корректного парсинга и хранения адресных данных.

Тщательная реализация этих функций и корректировка процедур позволит восстановить полную работоспособность сервиса 1С:Контрагент в устаревших версиях Комплексной Автоматизации.

Расширение функционала для физических лиц

Важно отметить, что решение, ориентированное на юридических лиц и ИП, может не работать для физических лиц. Это связано с тем, что запросы и процедуры вызова для физических лиц часто отличаются. Если требуется функционал по заполнению данных физических лиц, мы должны будем дополнительно доработать конфигурацию. Рекомендуется использовать соответствующую версию БИП (например, 2.2.3, так как она относительно проста для анализа) для вытягивания и адаптации аналогичных модулей и процедур, отвечающих за работу с физическими лицами, в вашу самописную или измененную конфигурацию.

Дополнительные сложности: DDoS-атаки и сертификаты безопасности

Начиная с 21 апреля 2022 года, доступ к сервисам 1С, включая 1С:Контрагент, был затруднен из-за мощных DDoS-атак. Эти атаки приводили к временной недоступности или значительному замедлению работы сервисов. Кроме того, для защиты от атак ресурсы 1С перешли на новые сертификаты Globalsign вместо Digicert, что также могло вызвать проблемы с доступом.

Для решения проблем, связанных с DDoS-атаками и сертификатами, мы рассмотрим следующие действия:

  1. Обновление сертификата cacert.pem или установка специального патча:
    • Пользователям, использующим платформы 1С:Предприятие версии 8.3.7 и ниже, а также платформам 8.3, работающим в режиме совместимости со старыми версиями, может потребоваться ручное обновление сертификата безопасности в файле cacert.pem или установка специального патча. Это критично для того, чтобы ваша система могла устанавливать защищенные соединения с серверами 1С, использующими новые сертификаты.
  2. Переход на новые сертификаты GlobalSign:
    • Как уже было упомянуто, 1С перешел на использование сертификатов GlobalSign. Если ваша операционная система или платформа 1С не обновляли свои хранилища доверенных центров сертификации, возникнет ошибка при попытке установить защищенное соединение.
  3. Автоматическое обновление доверенных центров сертификации:
    • Для платформ 1С:Предприятие версии 8.3.8 и выше, работающих на поддерживаемой операционной системе (например, современные версии Windows), доверенные центры сертификации обычно обновляются автоматически. Это означает, что в большинстве случаев ручные действия не потребуются, если ОС и платформа актуальны.
  4. Ручное добавление корневых сертификатов для устаревших ОС:
    • Если ваша операционная система снята с поддержки (например, Windows XP, Windows 7, Windows Server 2008 R2), автоматическое обновление корневых сертификатов не происходит. В этом случае мы должны будем добавить необходимые корневые сертификаты GlobalSign в ОС вручную.
  5. Открытие доступа к точкам проверки отзыва сертификатов GlobalSign:
    • При проблемах с доступом к интернет-ресурсам из-за ограниченного доступа в интернет (например, через прокси-сервер или файрвол), даже на поддерживаемых ОС и платформах 8.3.8+, необходимо обеспечить доступ к точкам проверки отзыва сертификатов GlobalSign. Это включает адреса, такие как ocsp.globalsign.com и crl.globalsign.com. Мы должны настроить сетевое оборудование или брандмауэр для разрешения исходящих соединений к этим ресурсам.

Эти меры помогут восстановить стабильный доступ к сервисам 1С, включая 1С:Контрагент, даже в условиях продолжающихся DDoS-атак и изменений в инфраструктуре безопасности.

Общие рекомендации и диагностика

В процессе работы с сервисом 1С:Контрагент и при возникновении проблем мы рекомендуем придерживаться следующих общих подходов и методов диагностики:

  1. Проверка подписки и интернет-поддержки: Сервис 1С:Контрагент является платным и требует наличия активной интернет-поддержки. Мы всегда должны убеждаться, что ваша подписка на ИТС активна и включает этот сервис.
  2. Проверка журнала регистрации: При возникновении любых ошибок или неожиданного поведения сервиса 1С:Контрагент, первым делом мы обращаемся к Журналу регистрации. Он содержит подробную информацию об ошибках, включая трассировку стека вызовов и текстовые описания, что существенно упрощает локализацию и устранение проблемы.
  3. Очистка и обновление индекса поиска данных: В некоторых случаях причиной проблем с поиском контрагентов, особенно после обновлений, может быть повреждение или устаревание индекса поиска данных. Мы можем попробовать очистить и обновить этот индекс в общих настройках администрирования вашей конфигурации. Этот шаг может помочь в случаях, когда сервис работает, но не находит даже старых юридических лиц.
  4. Требования к платформе: Для полноценной работы с API 1С, включая веб-сервисы, мы помним, что требуется платформа 1С:Предприятие версии 8.3.10 и выше. Убедитесь, что ваша платформа соответствует этому требованию.
  5. Контакт с техподдержкой 1С: Если после всех предпринятых мер проблема сохраняется, или возникают сложности с пониманием официальных рекомендаций, не стесняйтесь обращаться в службу поддержки портала 1С:ИТС по адресу webits-info@1c.ru. Они смогут предоставить актуальную информацию и специфичные для вашей ситуации рекомендации.

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

← На главную