В феврале 2022 года пользователи 1С столкнулись с проблемой: планировалось отключение устаревшего источника данных для сервиса 1С:Контрагент. Это событие вызвало необходимость в срочном обновлении и адаптации конфигураций, особенно самописных или не обновляемых до последних типовых релизов. Однако, поначалу старые источники продолжали функционировать, вызывая путаницу. Ситуация усложнилась в апреле 2022 года, когда к проблемам с устаревшим API добавились массированные DDoS-атаки на интернет-ресурсы 1С, что привело к временной недоступности сервиса и появлению ошибок, связанных с сертификатами безопасности. В данном руководстве мы подробно рассмотрим, как решить эти проблемы, включая обновление API и устранение ошибок, вызванных DDoS-атаками, для различных версий конфигураций 1С.
Изначальная проблема заключалась в плановом отключении 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 используют следующие адреса:
https://api.orgregister.1c.ru/orgregister/v9/json/req?inn={ИНН}https://api.orgregister.1c.ru/orgregister/v9/json/dossier?inn={ИНН}https://api.orgregister.1c.ru/orgregister/v9/json/rafp?inn={ИНН}https://api.orgregister.1c.ru/orgregister/v9/json/reqrafp?inn={ИНН}https://api.orgregister.1c.ru/orgregister/v9/json/ipreq?inn={ИНН}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, где изначально использовалась версия БИП 2.1.9, мы можем выполнить частичное обновление до версии БИП 2.2.3. Этот процесс потребует не только обновления существующих объектов, но и дополнения общих модулей из Библиотеки стандартных подсистем (БСП). Рассмотрим подробнее, какие объекты необходимо доработать:
Партнеры:
ФормаЭлементаРеквизитыКонтрагента. Нам предстоит модифицировать эту форму, чтобы она корректно взаимодействовала с обновленным сервисом. Это может включать изменение обработчиков событий, связанных с заполнением реквизитов, и адаптацию логики вызова сервиса.Контрагенты:
ФормаЭлемента. Аналогично справочнику Партнеры, основная форма элемента Контрагенты требует внимания. Мы должны убедиться, что все кнопки и процедуры, отвечающие за заполнение по ИНН или обновление данных, используют новые методы API.ОбщегоНазначенияПовтИсп: Вероятно, содержит функции для повторного использования, которые могут быть связаны с сетевыми запросами или обработкой XML/JSON данных. Мы проверим, не требуются ли в нем изменения для работы с новыми типами запросов или ответов.ОбщегоНазначения: Общий модуль, который может содержать служебные процедуры и функции, необходимые для взаимодействия с внешними сервисами. Мы должны убедиться, что все вызовы сервиса 1С:Контрагент в этом модуле были обновлены.ОбщегоНазначенияУТ: Модуль, специфичный для конфигурации УТ. Он может содержать специализированные функции, которые используют сервис 1С:Контрагент. Мы должны внимательно проанализировать его на предмет устаревших вызовов.ОтправкаSMS: В этом модуле была обнаружена конфликтная процедура. Для обеспечения совместимости и бесперебойной работы сервиса 1С:Контрагент, мы закомментируем данную процедуру. Этот шаг позволяет избежать ошибок, не связанных напрямую с 1С:Контрагентом, но мешающих общей работе системы после обновлений.ДанныеЕдиныхГосРеестров: Этот модуль является центральным для работы с государственными реестрами, включая данные о контрагентах. Он требует наиболее тщательной доработки для перехода на новый API. В нем будут меняться адреса сервисов, форматы запросов и парсинг ответов.КешПрограммныхИнтерфейсов:
После всех доработок и тестирования мы убедимся, что сервис 1С:Контрагент работает корректно, а все реквизиты заполняются и обновляются в соответствии с актуальными данными.
Для Комплексной Автоматизации 1.1, особенно в версии 1.1.58.2, процесс адаптации сервиса 1С:Контрагент также требует специфических изменений. В этом случае мы сфокусируемся на корректировке конкретной процедуры и добавлении необходимых функций в основной модуль работы с данными реестров. Это решение доказало свою стабильность для старых версий КА.
Контрагенты, форма элемента:
ДозаполнимЗначенияРеквизитов. Нам необходимо скорректировать логику этой процедуры, которая отвечает за дополнительное заполнение реквизитов контрагента. Мы адаптируем ее для вызова нового API и корректной обработки полученных данных, обеспечивая полное и точное заполнение информации.СервисДанныхЕдиныхГосРеестров: Этот модуль является ключевым для взаимодействия с сервисом 1С:Контрагент в старых конфигурациях КА. Нам предстоит добавить в него ряд новых функций:
СтрНайти_83_82: Адаптированная функция поиска подстроки, учитывающая особенности работы в режимах совместимости платформы 1С:Предприятие 8.3 и 8.2.СтрСоединить: Функция для корректного объединения строк, необходимая для формирования URL-адресов или данных запросов.СтрРазделить: Функция для разделения строк, используемая при парсинге ответов от сервиса.Функция БазовыйURLСервиса: Эта функция будет возвращать актуальный базовый URL для нового API сервиса 1С:Контрагент. В старых базах это должно быть реализовано в модуле ДанныеЕдиныхГосРеестров.ПараметрыСервисаЮридическиеЛица: Функция, которая формирует специфические параметры для запросов, касающихся юридических лиц.ПараметрыСервисаИндивидуальныеПредприниматели: Функция для формирования параметров запросов, специфичных для индивидуальных предпринимателей.ДополнительныеПараметрыВызоваОперацииСервиса: Эта функция позволит добавлять любые необходимые дополнительные параметры при вызове операций сервиса, обеспечивая гибкость в работе с API.ПроверитьДополнительныеАдресныеЭлементы: Функция для валидации или обработки дополнительных элементов адреса, получаемых от сервиса.ЭтоЗаписьЧисловогоЭлементаАдреса: Функция для определения, является ли элемент адреса числовым, что важно для корректного парсинга и хранения адресных данных.Тщательная реализация этих функций и корректировка процедур позволит восстановить полную работоспособность сервиса 1С:Контрагент в устаревших версиях Комплексной Автоматизации.
Важно отметить, что решение, ориентированное на юридических лиц и ИП, может не работать для физических лиц. Это связано с тем, что запросы и процедуры вызова для физических лиц часто отличаются. Если требуется функционал по заполнению данных физических лиц, мы должны будем дополнительно доработать конфигурацию. Рекомендуется использовать соответствующую версию БИП (например, 2.2.3, так как она относительно проста для анализа) для вытягивания и адаптации аналогичных модулей и процедур, отвечающих за работу с физическими лицами, в вашу самописную или измененную конфигурацию.
Начиная с 21 апреля 2022 года, доступ к сервисам 1С, включая 1С:Контрагент, был затруднен из-за мощных DDoS-атак. Эти атаки приводили к временной недоступности или значительному замедлению работы сервисов. Кроме того, для защиты от атак ресурсы 1С перешли на новые сертификаты Globalsign вместо Digicert, что также могло вызвать проблемы с доступом.
Для решения проблем, связанных с DDoS-атаками и сертификатами, мы рассмотрим следующие действия:
cacert.pem или установка специального патча:
cacert.pem или установка специального патча. Это критично для того, чтобы ваша система могла устанавливать защищенные соединения с серверами 1С, использующими новые сертификаты.ocsp.globalsign.com и crl.globalsign.com. Мы должны настроить сетевое оборудование или брандмауэр для разрешения исходящих соединений к этим ресурсам.Эти меры помогут восстановить стабильный доступ к сервисам 1С, включая 1С:Контрагент, даже в условиях продолжающихся DDoS-атак и изменений в инфраструктуре безопасности.
В процессе работы с сервисом 1С:Контрагент и при возникновении проблем мы рекомендуем придерживаться следующих общих подходов и методов диагностики:
Журналу регистрации. Он содержит подробную информацию об ошибках, включая трассировку стека вызовов и текстовые описания, что существенно упрощает локализацию и устранение проблемы.webits-info@1c.ru. Они смогут предоставить актуальную информацию и специфичные для вашей ситуации рекомендации.Следуя этим рекомендациям, мы значительно повысим шансы на успешное восстановление и стабильную работу сервиса 1С:Контрагент в любых, даже самых сложных и устаревших конфигурациях.