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