7 фишек подготовки 1С к налоговым проверкам ФНС

7 фишек подготовки 1С к налоговым проверкам ФНС

Коротко: Налоговая проверка ФНС — это не повод паниковать, если база 1С подготовлена правильно. Из 7 описанных ниже приёмов большинство занимает от 30 минут до 2 часов настройки, но способны сократить риск штрафов на 60–80%. Ключевые направления: корректность регистров НДС, целостность цепочек документов, журнал изменений и экспорт данных в формате ФНС.

Почему стандартная «уборка» базы 1С перед ФНС не работает?

Большинство бухгалтеров перед налоговой проверкой делают одно и то же: проводят все документы, закрывают периоды и надеются на лучшее. Но инспекторы ФНС давно перешли на автоматизированный анализ данных через систему АСК НДС-2 и её преемника АСК НДС-3. Эти системы сопоставляют данные книг покупок и продаж всех контрагентов в режиме реального времени. Любое расхождение — даже на 1 копейку — автоматически генерирует «разрыв» и требование о пояснениях.

Проблема в том, что 1С хранит гораздо больше информации, чем видит пользователь. История изменений документов, удалённые объекты, служебные регистры сведений — всё это может стать источником вопросов при проверке. Поэтому подготовка к ФНС — это не «уборка», а системная работа с данными.

Рассмотрим 7 неочевидных, но критически важных приёмов, которые помогут пройти проверку без штрафов и лишних вопросов.

Фишка 1: Аудит журнала регистрации — ваш главный союзник

Журнал регистрации 1С фиксирует все действия пользователей: кто, когда и что изменил. Инспектор ФНС при выездной проверке вправе запросить этот журнал. Если он покажет, что документы массово перепроводились или удалялись накануне проверки — это красный флаг для налоговой.

Что нужно сделать заранее:

  • Настроить хранение журнала регистрации не менее чем за 3 года (по умолчанию — 1 год).
  • Убедиться, что журнал не очищался за проверяемый период.
  • Проверить, какие пользователи имеют право на удаление документов — и ограничить эти права через роли.

Для программного анализа журнала используйте следующий код:


// Анализ подозрительных событий в журнале регистрации
// Ищем массовые удаления и изменения документов за период

Процедура ПроверитьЖурналРегистрации(ДатаНачала, ДатаОкончания)

	Фильтр = Новый Структура;
	Фильтр.Вставить("ДатаНачала", ДатаНачала);
	Фильтр.Вставить("ДатаОкончания", ДатаОкончания);
	Фильтр.Вставить("Событие", "_$Data$_.Delete"); // Удаление объектов

	ЗаписиЖурнала = Новый МассивЗаписейЖурналаРегистрации;
	ВыгрузитьЖурналРегистрации(ЗаписиЖурнала, Фильтр);

	// Группируем по пользователям
	СчётчикПоПользователям = Новый Соответствие;

	Для Каждого Запись Из ЗаписиЖурнала Цикл
		Пользователь = Запись.ИмяПользователя;
		Если СчётчикПоПользователям[Пользователь] = Неопределено Тогда
			СчётчикПоПользователям[Пользователь] = 0;
		КонецЕсли;
		СчётчикПоПользователям[Пользователь] = СчётчикПоПользователям[Пользователь] + 1;
	КонецЦикла;

	// Выводим результат
	Для Каждого ЭлементСоответствия Из СчётчикПоПользователям Цикл
		Сообщить("Пользователь: " + ЭлементСоответствия.Ключ
			+ " — удалений: " + ЭлементСоответствия.Значение);
	КонецЦикла;

КонецПроцедуры

Если вы видите сотни удалений от одного пользователя — это сигнал разобраться с ситуацией до прихода инспектора, а не во время проверки. Помните: скрыть факт удаления нельзя, но можно подготовить обоснование.

Фишка 2: Проверка целостности цепочек НДС в регистрах

Самая частая причина «разрывов» в АСК НДС — несоответствие между данными регистра «НДС Покупки» и «НДС Продажи» и данными деклараций. В 1С:Бухгалтерия эти регистры заполняются автоматически при проведении документов, но ручные корректировки или незакрытые авансы могут создать расхождения.

Проверьте целостность через запрос к регистрам накопления:


// Проверка расхождений между регистром НДС Покупки и книгой покупок
// Запрос сравнивает суммы НДС по кварталам

Функция ПолучитьРасхожденияНДС(НачалоПериода, КонецПериода) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	НДСПокупки.СчётФактураПолученный КАК СчётФактура,
		|	НДСПокупки.Контрагент КАК Контрагент,
		|	НДСПокупки.СуммаНДС КАК СуммаНДСРегистр,
		|	КнигаПокупок.СуммаНДС КАК СуммаНДСКнига,
		|	НДСПокупки.СуммаНДС - КнигаПокупок.СуммаНДС КАК Расхождение
		|ИЗ
		|	РегистрНакопления.НДСПокупки КАК НДСПокупки
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЖурналУчётаСчетовФактур КАК КнигаПокупок
		|		ПО НДСПокупки.СчётФактураПолученный = КнигаПокупок.СчётФактура
		|ГДЕ
		|	НДСПокупки.Период МЕЖДУ &НачалоПериода И &КонецПериода
		|	И НДСПокупки.СуммаНДС <> КнигаПокупок.СуммаНДС
		|УПОРЯДОЧИТЬ ПО
		|	Расхождение УБЫВ";

	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);

	Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

Дополнительно используйте встроенный отчёт «Экспресс-проверка ведения учёта» в 1С:Бухгалтерия. Он автоматически выявляет типовые ошибки в учёте НДС. Если вы работаете с 1С:Бухгалтерия на Кодерион, специалисты помогут настроить регламентные проверки в автоматическом режиме.

Фишка 3: Контроль «технических» счетов и незакрытых авансов

Счёт 76.АВ («НДС по авансам полученным») и 76.ВА («НДС по авансам выданным») — настоящая головная боль при налоговых проверках. Незакрытые авансы, висящие годами, автоматически вызывают вопросы: почему НДС с аванса не восстановлен? Где документ о зачёте?

Как найти «зависшие» авансы автоматически?


// Поиск незакрытых авансов покупателей старше 90 дней
// Критичны для проверки НДС с авансов (счёт 76.АВ)

Функция НайтиЗависшиеАвансы(ДатаАнализа) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Взаиморасчёты.Контрагент КАК Контрагент,
		|	Взаиморасчёты.ДоговорКонтрагента КАК Договор,
		|	Взаиморасчёты.СуммаОстаток КАК СуммаАванса,
		|	Взаиморасчёты.СуммаОстаток * 20 / 120 КАК НДСАванса
		|ИЗ
		|	РегистрНакопления.РасчётыСПокупателями.Остатки(
		|		&ДатаАнализа,
		|		ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
		|	) КАК Взаиморасчёты
		|ГДЕ
		|	Взаиморасчёты.СуммаОстаток > 0
		|УПОРЯДОЧИТЬ ПО
		|	Взаиморасчёты.СуммаОстаток УБЫВ";

	Запрос.УстановитьПараметр("ДатаАнализа", ДатаАнализа);

	Результат = Запрос.Выполнить().Выгрузить();
	Сообщить("Найдено незакрытых авансов: " + Результат.Количество());

	Возврат Результат;

КонецФункции

По каждому «зависшему» авансу подготовьте письменное обоснование: либо документ о зачёте, либо соглашение о переносе срока поставки. Инспектор обязательно запросит эти данные.

Фишка 4: Настройка прав доступа и защита от несанкционированных изменений

Один из самых неочевидных, но мощных инструментов защиты — правильно настроенная система прав доступа. Если у рядового бухгалтера есть право удалять проведённые документы или изменять закрытые периоды — это риск не только для безопасности данных, но и для налоговой проверки.

Что нужно настроить в 1С перед проверкой?

  • Закрытие периода: установите запрет редактирования документов до даты закрытия через «Настройки пользователей и прав» → «Даты запрета изменения».
  • Разграничение ролей: роль «Полные права» должна быть только у системного администратора, не у главного бухгалтера.
  • Двойное утверждение: для крупных операций (свыше 1 млн руб.) настройте бизнес-процесс согласования.
  • Запрет удаления: снимите право «Интерактивное удаление» у всех пользователей кроме администратора.

// Программная установка даты запрета изменения данных
// Защищает закрытые периоды от случайных правок

Процедура УстановитьДатуЗапретаИзменения(ДатаЗапрета, Пользователь = Неопределено)

	// Получаем объект настроек пользователей
	Настройки = ПользователиИнформационнойБазы.НайтиПоИмени(
		?(Пользователь = Неопределено, "Администратор", Пользователь)
	);

	Если НастройкиПользователей <> Неопределено Тогда
		// Устанавливаем дату запрета через константу
		Константы.ДатаЗапретаИзменения.Установить(ДатаЗапрета);
		Сообщить("Дата запрета изменения установлена: " + Формат(ДатаЗапрета, "ДФ=дд.ММ.гггг"));
	КонецЕсли;

КонецПроцедуры

// Проверка: есть ли у пользователей «лишние» права
Процедура ПроверитьПраваПользователей()

	ОпасныеРоли = Новый Массив;
	ОпасныеРоли.Добавить("ПолныеПрава");
	ОпасныеРоли.Добавить("АдминистраторСистемы");

	Для Каждого Пользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
		Для Каждого Роль Из Пользователь.Роли Цикл
			Если ОпасныеРоли.Найти(Роль.Имя) <> Неопределено Тогда
				Сообщить("ВНИМАНИЕ! Пользователь '" + Пользователь.Имя
					+ "' имеет роль: " + Роль.Имя);
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;

КонецПроцедуры

Правильная настройка прав — это не только защита от проверки, но и элемент внутреннего контроля. Если вам нужна помощь с настройкой безопасности 1С, вы можете найти разработчика 1С на Кодерион с опытом именно в этой области.

Фишка 5: Экспорт данных в форматах ФНС и проверка XML-файлов

С 2020 года ФНС активно использует электронные форматы запросов: инспектор может запросить данные не в бумажном виде, а в виде XML-файлов установленного формата. 1С поддерживает выгрузку в форматы ФНС, но здесь есть подводные камни.

Какие форматы ФНС поддерживает 1С?

  • Книга покупок/продаж — формат XML по приказу ФНС ММВ-7-15/820@
  • Журнал учёта счетов-фактур — формат по приказу ФНС ММВ-7-15/954@
  • Счета-фактуры — формат УПД (универсальный передаточный документ)
  • Первичные документы — форматы по приказам ФНС для различных типов документов

Перед проверкой обязательно тестово выгрузите данные и проверьте их через официальный сервис ФНС «Налогоплательщик ЮЛ» или через онлайн-валидатор на сайте налоговой. Типичные ошибки в XML-файлах:

  • Некорректный ИНН/КПП контрагента (не совпадает с ЕГРЮЛ)
  • Отсутствующий или неверный код вида операции (КВО)
  • Расхождение суммы НДС из-за округления
  • Дублирующиеся строки в книге покупок

// Проверка корректности ИНН контрагентов перед выгрузкой
// Некорректный ИНН — одна из частых причин ошибок в XML ФНС

Функция ПроверитьИНН(ИНН) Экспорт

	// Проверка длины ИНН
	Если СтрДлина(ИНН) <> 10 И СтрДлина(ИНН) <> 12 Тогда
		Возврат Ложь;
	КонецЕсли;

	// Проверка, что ИНН состоит только из цифр
	Для Сч = 1 По СтрДлина(ИНН) Цикл
		Символ = Сред(ИНН, Сч, 1);
		Если Найти("0123456789", Символ) = 0 Тогда
			Возврат Ложь;
		КонецЕсли;
	КонецЦикла;

	// Контрольная сумма для 10-значного ИНН (юридическое лицо)
	Если СтрДлина(ИНН) = 10 Тогда
		Коэффициенты = Новый Массив;
		Коэффициенты.Добавить(2);
		Коэффициенты.Добавить(4);
		Коэффициенты.Добавить(10);
		Коэффициенты.Добавить(3);
		Коэффициенты.Добавить(5);
		Коэффициенты.Добавить(9);
		Коэффициенты.Добавить(4);
		Коэффициенты.Добавить(6);
		Коэффициенты.Добавить(8);

		Сумма = 0;
		Для Сч = 1 По 9 Цикл
			Сумма = Сумма + Число(Сред(ИНН, Сч, 1)) * Коэффициенты[Сч - 1];
		КонецЦикла;

		КонтрольнаяЦифра = (Сумма % 11) % 10;
		Возврат КонтрольнаяЦифра = Число(Сред(ИНН, 10, 1));
	КонецЕсли;

	Возврат Истина;

КонецФункции

// Массовая проверка ИНН всех контрагентов в базе
Процедура ПроверитьВсеИНН()

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Контрагенты.Наименование КАК Наименование,
		|	Контрагенты.ИНН КАК ИНН
		|ИЗ
		|	Справочник.Контрагенты КАК Контрагенты
		|ГДЕ
		|	НЕ Контрагенты.ПометкаУдаления
		|	И Контрагенты.ИНН <> """"";

	Выборка = Запрос.Выполнить().Выбрать();

	КоличествоОшибок = 0;
	Пока Выборка.Следующий() Цикл
		Если НЕ ПроверитьИНН(Выборка.ИНН) Тогда
			Сообщить("Некорректный ИНН: " + Выборка.Наименование
				+ " — " + Выборка.ИНН);
			КоличествоОшибок = КоличествоОшибок + 1;
		КонецЕсли;
	КонецЦикла;

	Сообщить("Проверка завершена. Ошибок: " + КоличествоОшибок);

КонецПроцедуры

Связанная тема — электронный документооборот с контрагентами. Если документы подписаны КЭП и переданы через оператора ЭДО, это само по себе является дополнительным доказательством их подлинности для ФНС.

Фишка 6: Анализ «серых зон» — взаимозависимые лица и нетипичные операции

ФНС особое внимание уделяет операциям с взаимозависимыми лицами (статья 105.1 НК РФ) и нетипичным для вашего бизнеса сделкам. В 1С можно настроить автоматический мониторинг таких операций.

Что привлекает внимание налоговой?

  • Сделки с контрагентами, у которых совпадают учредители или директора с вашей компанией
  • Операции по ценам, существенно отличающимся от рыночных (более чем на 20%)
  • Разовые крупные сделки с новыми контрагентами без деловой истории
  • Займы между взаимозависимыми компаниями без процентов или по нерыночным ставкам
  • Убыточные периоды при наличии оборотов (признак «налоговой оптимизации»)

// Поиск нетипично крупных операций с новыми контрагентами
// Новый контрагент = зарегистрирован в справочнике менее года назад

Функция НайтиОперацииСНовымиКонтрагентами(ДатаНачала, ДатаОкончания, ПорогСуммы) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Продажи.Контрагент КАК Контрагент,
		|	Продажи.Контрагент.ДатаРегистрации КАК ДатаРегистрацииКонтрагента,
		|	СУММА(Продажи.СуммаОборот) КАК ОбщаяСумма,
		|	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Регистратор) КАК КоличествоДокументов
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&ДатаНачала,
		|		&ДатаОкончания,
		|		Регистратор,
		|		
		|	) КАК Продажи
		|ГДЕ
		|	Продажи.Контрагент.ДатаРегистрации >= ДОБАВИТЬКДАТЕ(&ДатаНачала, ГОД, -1)
		|СГРУППИРОВАТЬ ПО
		|\

Найдите специалиста для решения этой задачи на koderion.ru

Автор: редакция Koderion. Обновлено: 9 мая 2026. Источники: Бухгалтерия.ру, Infostart, ИТС 1С.