← На главную
При первичной загрузке базы, переносе справочников или регулярной нормализации данных перед разработчиком нередко встает задача массовой актуализации реквизитов контрагентов. Рассмотрим, можно ли выполнить пакетную обработку пула из 500–700 контрагентов через сервис 1С-Контрагент, какие лимиты накладываются по договору сопровождения и как правильно построить программный алгоритм, чтобы не перегрузить базу и веб-сервис.
Лимиты сервиса и условия тарифного плана
Проанализируем доступные квоты перед запуском массовой обработки. Сервис 1С-Контрагент тарифицируется по числу обращений к веб-сервисам заполнения данных по ИНН/КПП:
- Договор 1С:ИТС уровня ПРОФ: включает бесплатный доступ к автозаполнению реквизитов в объеме 7200 обращений в год (или 600 обращений в месяц при помесячном продлении). Таким образом, разовое обновление массива из 500–700 записей полностью укладывается в доступный лимит.
- Договор 1С:ИТС уровня ТЕХНО: не включает бесплатный пакет сервиса. Для выполнения операции потребуется приобрести отдельный тарифный пакет сервиса 1С-Контрагент.
- Авторизация: для отправки запросов в информационной базе должна быть подключена и активна интернет-поддержка пользователей с действующим логином и паролем от Портала 1С:ИТС.
Архитектура программного вызова и работа с БСП
Разберем по шагам, как устроен вызов сервиса из встроенного языка 1С. В типовых конфигурациях (1С:Бухгалтерия предприятия, 1С:ERP, 1С:Комплексная автоматизация, 1С:Управление торговлей) функционал автозаполнения вынесен в специализированные модули подсистем БСП и БИП:
- Обращение к механизмам сервиса обычно выполняется через методы общих модулей
ЗаполнениеКонтрагентовПоДаннымФНС, СервисЗаполненияКонтрагентовСервер или РаботаСКонтрагентами.
- Входными параметрами для функции получения данных выступают ИНН контрагента и, при наличии, КПП (для филиалов и обособленных подразделений юридических лиц).
- Возвращаемая структура содержит нормализованные данные: краткое и полное наименование, ОГРН/ОГРНИП, юридический адрес в структурированном виде, ФИО руководителя и регистрационные коды.
Правила реализации пакетного заполнения
Посмотрим на ключевые технические требования к алгоритму при обработке сотен элементов справочника:
- Индивидуальные транзакции на каждый объект: категорически не рекомендуется оборачивать весь цикл обработки в одну общую транзакцию. При возникновении сетевого сбоя на 600-м контрагенте откатятся все предыдущие 599 записей. Кроме того, длительное удержание блокировок парализует работу других пользователей. Запись элемента справочника
СправочникОбъект.Контрагенты должна производиться отдельно на каждой итерации.
- Обработка исключительных ситуаций: каждый сетевой вызов к шлюзу обязательно обрамляется конструкцией
Попытка ... Исключение. Это защитит обработку от аварийной остановки при невалидном ИНН, временном отсутствии связи или таймауте ответа.
- Ограничение частоты запросов (Throttling): шлюзы веб-сервисов могут временно ограничивать интенсивные непрерывные потоки запросов. Рекомендуется делить массив на порции (пакеты по 20–50 контрагентов) или добавлять небольшие технологические паузы между сетевыми обращениями.
- Различия между ЮЛ и ИП: для юридических лиц сервис возвращает полный спектр реквизитов, включая адрес. Для индивидуальных предпринимателей в соответствии с требованиями Федерального закона № 152-ФЗ «О персональных данных» адрес места жительства из открытых реестров ЕГРИП не передается.
- Ограничение по резидентам: сервис работает только с базами ЕГРЮЛ и ЕГРИП. Заполнение данных по иностранным контрагентам (нерезидентам РФ) через него невозможно — их необходимо пропускать на этапе выборки.
- Использование фоновых заданий: при массовом заполнении на стороне клиента интерфейс программы может зависать. Оптимально запускать серверную процедуру в фоновом задании с логированием результатов в журнал регистрации или отдельную таблицу отчета.
Таким образом, пакетная актуализация 500–700 контрагентов через 1С-Контрагент является стандартной и выполнимой задачей при соблюдении лимитов ИТС и корректной обработке сетевых исключений.