В процессе работы любой компании справочник Контрагенты неизбежно устаревает. Директора меняются, компании переезжают, а некоторые и вовсе ликвидируются. Когда в базе находится более тысячи записей, ручное обновление каждой карточки через кнопку "Заполнить по ИНН" становится непосильной задачей. В этой статье мы разберем, как автоматизировать этот процесс, какие инструменты использовать и на что обратить внимание, чтобы не испортить данные в базе.
Проанализируем программный способ решения задачи. В современных конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), таких как 1С:УНФ, существует готовый программный интерфейс для взаимодействия с сервисом. Для получения актуальных сведений о юридическом лице используется специализированный метод.
Рассмотрим основной программный код, который позволяет получить структуру данных по ИНН:
// Пример получения данных через сервис
ИНН_Контрагента = "7701234567";
Данные = РаботаСКонтрагентами.СведенияОЮридическомЛицеПоИНН(ИНН_Контрагента);
Если Данные <> Неопределено Тогда
// Здесь выполняется обработка полученной структуры
// Например: Адрес = Данные.ЮридическийАдрес;
КонецЕсли;
Чтобы реализовать массовое обновление, нам необходимо выполнить этот код в цикле по списку контрагентов. Разберем по шагам алгоритм создания простейшей обработки:
Контрагенты.Пример реализации цикла обновления может выглядеть следующим образом:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка,
| Контрагенты.ИНН КАК ИНН
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| НЕ Контрагенты.ЭтоГруппа
| И Контрагенты.ИНН <> """"";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вызов сервиса 1С-Контрагент
Сведения = РаботаСКонтрагентами.СведенияОЮридическомЛицеПоИНН(ВыборкаДетальныеЗаписи.ИНН);
Если Сведения <> Неопределено Тогда
ОбъектКонтрагент = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
// Заполняем реквизиты, например Наименование и КПП
ОбъектКонтрагент.НаименованиеПолное = Сведения.НаименованиеПолное;
ОбъектКонтрагент.КПП = Сведения.КПП;
// Важно: здесь же можно обновить адрес и руководителя
ОбъектКонтрагент.Записать();
КонецЕсли;
КонецЦикла;
Проанализируем ситуацию с доступностью сервиса. Важно понимать, что сервис 1С-Контрагент не является абсолютно безлимитным. В зависимости от вашего тарифа (ИТС Проф или отдельный пакет "1С-Контрагент"), на аккаунт выделяется определенное количество обращений (обычно около 7200 автозаполнений в год).
Выясним причину возможных ошибок при массовой обработке:
Если штатных возможностей сервиса 1С-Контрагент недостаточно или лимиты не позволяют выполнить полную проверку, рассмотрим альтернативные пути.
1. Использование сторонних API (например, DaData): Многие разработчики интегрируют внешние сервисы. Они часто предоставляют более гибкие условия для массовой стандартизации адресов и поиска контрагентов. Это требует написания собственного HTTP-запроса из 1С, но позволяет обрабатывать десятки тысяч записей без привязки к подписке 1С-Контрагент.
2. Прямые запросы к открытым данным ФНС: Налоговая служба предоставляет доступ к реестрам в формате открытых данных. Выясним, как это работает: программа скачивает архивы данных с сайта ФНС, парсит их и сопоставляет с вашей базой. Это самый трудозатратный в плане разработки способ, но он полностью бесплатен и не имеет лимитов.
3. Групповое изменение реквизитов с произвольным кодом: Посмотрим на пример стандартной обработки "Групповое изменение реквизитов". В режиме разработчика (через Дополнительные параметры) она позволяет выполнять произвольный алгоритм. Это удобнее, чем писать внешнюю обработку с нуля, так как интерфейс подбора контрагентов уже готов. Для удобного запуска этого механизма прямо из карточек или списков можно использовать расширение для группового изменения реквизитов с формы.
Перед тем как запускать автоматическое обновление, проанализируем риски потери данных. Мы рекомендуем придерживаться следующих правил:
Наименование (краткое) часто используется бухгалтерами для удобства поиска (например, "Ромашка ООО (склад)"), и автоматическая перезапись сотрет эти пометки. Лучше обновлять только юридически значимые поля: НаименованиеПолное, КПП, ЮридическийАдрес.Рассмотрим подробнее вопрос с адресами. В 1С:УНФ используется формат ФИАС. При автоматическом заполнении через сервис адреса будут приведены к строгому формату ФИАС. Если в вашей базе адреса были заведены вручную "одной строкой", убедитесь, что это не нарушит работу внешних систем (например, логистических сервисов или выгрузок в транспортные компании). Для массового просмотра и корректировки адресов и телефонов подойдёт обработка для работы с контактной информацией объектов.
Массовая актуализация справочника Контрагенты — это задача, которая решается сочетанием программного кода и организационных мер. Используя функцию РаботаСКонтрагентами.СведенияОЮридическомЛицеПоИНН, можно автоматизировать 90% рутины. Главное — помнить об ограничениях по ИНН/КПП для филиалов и следить за остатком лимитов в личном кабинете портала 1С.