Как удалить документ Перенос данных в 1С:ЗУП 3.1, если он заблокирован начислением зарплаты

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет
← На главную

При переходе с версии 1С:ЗУП 2.5 на 3.1 или при выполнении корректировок прошлых периодов системные администраторы и программисты часто сталкиваются с ситуацией, когда документ Перенос данных невозможно удалить или снять с проведения. Система выдает ошибку о наличии ссылок, указывая на документ Начисление зарплаты и взносов. При этом визуальный осмотр начисления не дает результатов: в видимых табличных частях (НДФЛ, Пособия, Удержания) упоминаний о переносе нет.

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

Почему возникает блокировка документа Перенос данных

Документ Перенос данных в 1С:ЗУП 3.1 является техническим контейнером для записей в различные регистры накопления и сведения. При расчете НДФЛ в документе Начисление зарплаты и взносов программа анализирует доходы и налоги нарастающим итогом с начала года. Если в текущем месяце происходит пересчет или уточнение данных, которые были введены через Перенос данных, система автоматически создает внутреннюю связь между ними.

Проанализируем ситуацию: программа должна «знать», какие именно первичные документы сформировали налоговую базу, чтобы правильно рассчитать вычеты и прогрессивную ставку. Эти связи записываются в служебные области, которые не отображаются пользователю в обычном интерфейсе, чтобы избежать случайного повреждения логики расчета НДФЛ.

Поиск скрытой связи в табличных частях

Одной из самых «коварных» областей в документе Начисление зарплаты и взносов является табличная часть УчтенныеПриРасчетеНДФЛДокументы. Рассмотрим подробнее ее назначение. В ней фиксируются ссылки на все документы (включая Перенос данных), которые программа «увидела» при расчете налога в конкретном экземпляре начисления.

Даже если вы вручную очистили вкладку «НДФЛ» в документе начисления или удалили строки в основных таблицах, запись в УчтенныеПриРасчетеНДФЛДокументы может сохраниться. Именно она блокирует удаление объекта-основания. Выясним причину, по которой обычное пересчитывание документа не всегда помогает: при записи документа механизмы проверки целостности могут восстанавливать ссылки из кэша или регистров пересчета.

Способ 1. Использование обработки Групповое изменение реквизитов

Этот метод является наиболее безопасным и эффективным. Разберем по шагам процесс очистки скрытых ссылок:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных и выберем Групповое изменение реквизитов.
  2. В поле «Выбирать элементы типа» укажем Начисление зарплаты и взносов.
  3. С помощью ссылки «Все элементы» настроим отбор по конкретному документу, который блокирует удаление (ссылку на него можно получить из стандартного окна «Поиск ссылок на объекты»).
  4. Нажмем кнопку Дополнительные параметры и установим флажки Показывать служебные реквизиты и Режим разработчика. Это критически важно, так как без этих опций служебные табличные части будут скрыты.
  5. В списке реквизитов найдем табличную часть Учтенные при расчете НДФЛ документы (или УчтенныеПриРасчетеНДФЛДокументы).
  6. Нам необходимо очистить строки, содержащие ссылку на удаляемый Перенос данных. Если программный интерфейс группового изменения позволяет редактировать состав ТЧ, удалим соответствующие записи.

Способ 2. Программная очистка через консоль кода

Если визуальные средства не помогают, проанализируем ситуацию с точки зрения кода. Мы можем программно обратиться к объекту документа и очистить коллекцию строк. Рассмотрим пример кода, который выполняет эту задачу:


// Определяем ссылку на документ начисления
ДокументОбъект = НачислениеСсылка.ПолучитьОбъект();

// Получаем таблицу учтенных документов
ТаблицаУчтенных = ДокументОбъект.УчтенныеПриРасчетеНДФЛДокументы;

// Создаем массив для удаления строк
СтрокиДляУдаления = Новый Массив;

Для Каждого СтрокаТЧ Из ТаблицаУчтенных Цикл
    Если СтрокаТЧ.ДокументОснование = ПереносДанныхСсылка Тогда
        СтрокиДляУдаления.Добавить(СтрокаТЧ);
    КонецЕсли;
КонецЦикла;

// Удаляем найденные ссылки
Для Каждого СтрокаДляУдаления Из СтрокиДляУдаления Цикл
    ТаблицаУчтенных.Удалить(СтрокаДляУдаления);
КонецЦикла;

// Записываем документ без пересчета (чтобы ссылка не вернулась)
ДокументОбъект.ОбменДанными.Загрузка = Истина;
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);

Обратите внимание на использование флага ОбменДанными.Загрузка = Истина. Это позволяет записать объект в обход стандартных подписок на события и процедур ПередЗаписью, которые в ЗУП 3.1 могут инициировать фоновые пересчеты и вернуть удаленную ссылку на место.

Влияние регистров накопления

Документ Перенос данных — это, прежде всего, записи в регистрах. Выясним, какие регистры чаще всего «держат» документ:

Если после очистки табличных частей документ все равно не удаляется, выполним проверку через Администрирование — Обслуживание — Удаление помеченных объектов. Если в списке зависимостей появились регистры сведений, такие как Пересчет зарплаты или Очередь расчета НДФЛ, их следует очистить вручную. Программа ставит в очередь на пересчет всех сотрудников, чьи данные были затронуты в Переносе данных, и пока запись в очереди существует, объект считается активным.

Особенности версий ЗУП 3.1.8 и выше

В современных релизах конфигурации механизмы контроля стали еще более жесткими. Проанализируем дополнительные места, где может «зависнуть» ссылка:

  1. Регистр сведений «Соответствие объектов информационных баз»: если данные переносились стандартной обработкой, в этом регистре может храниться уникальный идентификатор (GUID) объекта из старой базы. Иногда это мешает физическому удалению записи из таблиц SQL.
  2. Документы выплаты: если в начислении, которое ссылается на перенос, уже заполнена вкладка «Выплаты» или на его основании создана ведомость, связь становится «бетонной». В этом случае сначала придется пометить на удаление ведомость, затем очистить начисление, и только потом удалять Перенос данных.

Итоги и рекомендации

Подводя итог, отметим, что «суровый и беспощадный» НДФЛ в ЗУП 3.1 требует системного подхода. Посмотрим на алгоритм действий при возникновении проблемы:

Во-первых, всегда используйте специализированные инструменты (Групповое изменение реквизитов) с включенными служебными полями. Обычное редактирование форм не показывает и 10% реальных связей в документе.

Во-вторых, помните о табличной части УчтенныеПриРасчетеНДФЛДокументы. В 90% случаев причина блокировки кроется именно в ней. Ее очистка позволяет разорвать связь с начислением, не удаляя само начисление (что важно, если по нему уже прошли выплаты и закрыт период).

В-третьих, если вы удаляете перенос данных, пришедший из 2.5, убедитесь, что вы не оставляете «дыр» в налоговом учете. Удаление таких документов оправдано только в случае полной перегрузки данных или если бухгалтер переввел все остатки вручную другими документами (например, Доход в натуральной форме или Операция учета НДФЛ).

← На главную