Многие пользователи при попытке отфильтровать список контрагентов по статусу «Отсутствует в базе ФНС» сталкиваются с тем, что стандартные возможности динамического списка не позволяют этого сделать. Система выдает ошибку, связанную с некорректным использованием полей отбора. Давайте разберемся, почему так происходит и как правильно решить эту задачу.
Проблема заключается в архитектуре хранения данных. Статус проверки контрагента — это не реквизит справочника Контрагенты. Эти данные хранятся во внешнем объекте — регистре сведений (как правило, с названием СостоянияКонтрагентов). Когда вы открываете карточку контрагента, система программно обращается к этому регистру и выводит информацию о статусе, полученную ранее через сервис 1С:Контрагент или внешние API ФНС.
Так как поле состояния не является прямой частью справочника, динамический список формы не может наложить по нему прямой фильтр. Попытка настроить отбор через параметры данных вызывает системную ошибку, так как система ожидает работы с реквизитами, доступными в рамках основного запроса списка.
Для решения задачи по получению отчета или списка всех «проблемных» контрагентов, нам потребуется воспользоваться Системой компоновки данных (СКД). Это позволит нам объединить данные справочника с данными регистра сведений.
Контрагенты.СостоянияКонтрагентов.ИНН и КПП. Это ключевой этап, так как именно по этим идентификаторам система сопоставляет контрагента с данными в базе ФНС.Состояние или РезультатПроверки) в блок отборов. Теперь вы сможете задать условие, чтобы вывести только тех контрагентов, у которых состояние равно значению «Отсутствует в базе ФНС».При анализе полученного списка важно учитывать несколько технических нюансов:
РегламентныеЗадания для периодической автоматической проверки актуальности сведений. Если вы видите, что статус контрагента устарел, проверьте, корректно ли настроены задания в консоли администрирования.Если вам необходимо программно обратиться к данным проверки, вы можете использовать запрос к регистру сведений. Разберем пример логики такого запроса:
ВЫБРАТЬ
Контрагенты.Наименование КАК Наименование,
СостоянияКонтрагентов.Состояние КАК Статус
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.СостоянияКонтрагентов КАК СостоянияКонтрагентов
ПО
Контрагенты.ИНН = СостоянияКонтрагентов.ИНН
И Контрагенты.КПП = СостоянияКонтрагентов.КПП
ГДЕ
СостоянияКонтрагентов.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияКонтрагентов.ОтсутствуетВБазеФНС)
Используя этот подход, вы получите гибкий инструмент для контроля данных. Проанализировав ситуацию таким образом, вы сможете не только вывести список «проблемных» контрагентов, но и массово пометить их для последующей проверки или уточнения данных у клиентов. Помните, что регулярный аудит справочника контрагентов помогает избежать ошибок в налоговой отчетности и повышает точность учета.