Переход со старых программ учета заработной платы (например, 1С:ЗБУ 1.0 или 1С:ЗиК 7.7) на современные конфигурации «1С:Зарплата и кадры государственного учреждения 3» (ЗКГУ 3) или «1С:Зарплата и управление персоналом 3» (ЗУП 3) нередко сопровождается переносом закрытых или недействующих организаций. Вместе с ними в новую информационную базу переносятся структуры подразделений, штатные расписания, документы переноса и сотни тысяч записей в регистрах сведений и накопления.
Попытка просто пометить организацию на удаление и запустить стандартную процедуру очистки обычно приводит к ошибке ссылочной целостности: программа сообщает о наличии множества зависимых объектов и блокирует удаление. Разберем по шагам архитектурные особенности ЗКГУ 3, выясним причины блокировок и рассмотрим эффективные методики полной очистки базы данных от лишних сведений.
---
Перед началом очистки важно развеять частое опасение: не пострадают ли действующие сотрудники в активных учреждениях, если удалить сотрудника закрытой организации, оформленного на того же человека?
Проанализируем структуру хранения персональных и кадровых данных в 1С:ЗКГУ 3 / 1С:ЗУП 3:
ФизическиеЛица: хранит сведения о человеке как о личности (ФИО, паспортные данные, ИНН, СНИЛС, контакты, информация о семье, стажи). Этот справочник является сквозным для всех учреждений информационной базы.Сотрудники: представляет собой конкретный трудовой договор или кадровое назначение человека в рамках определенной организации.Таким образом, если один и тот же человек работал в закрытом учреждении и продолжает работать в основном, в системе созданы два разных элемента справочника Сотрудники, ссылающихся на один общий элемент справочника ФизическиеЛица. Удаление сотрудника закрытого учреждения никоим образом не повлияет на карточку работающего сотрудника в действующей организации.
---
В конфигурациях редакции 3.0 и 3.1 архитектура учета существенно усложнена по сравнению с предыдущими поколениями программ. Выделим основные факторы, создающие ссылки:
ТД — трудовые договоры, КД — кадровые данные, РЗ — расчет зарплаты, ПД — плановые начисления и т.д.). Эти документы выступают регистраторами для десятков подчиненных регистров.Подразделения и ШтатноеРасписание имеют жесткую привязку к организации и позициям сотрудников.---
Посмотрим на наиболее быстрый и чистый способ избавления от записей подчиненных регистров. Если записи сформированы в процессе переноса, нам не требуется вручную чистить каждый отдельный регистр — достаточно удалить документы-регистраторы.
Разберем процедуру по шагам:
Ctrl + A) и пометим их на удаление (клавиша Delete).Перенос данных платформа 1С автоматически очистит все связанные движения по всем регистрам накопления и сведений, в которые данный документ делал записи.---
После удаления документов переноса необходимо пометить на удаление справочные данные, привязанные к организации (сотрудников, позиции штатного расписания, подразделения и саму карточку организации).
Рассмотрим, как это сделать с помощью стандартной обработки Групповое изменение реквизитов:
Сотрудники.Организация Равно [Закрытая организация].Да.Штатное расписание (или позиции штатного расписания);Подразделения организаций;---
Некоторые регистры в ЗКГУ 3 являются независимыми (не имеют документа-регистратора) и хранят данные в разрезе измерений Организация или ФизическоеЛицо. Если такие записи препятствуют удалению, разберем программный способ их очистки через внешнюю обработку или консоль кода.
Посмотрим на пример очистки набора записей регистра сведений по отбору:
// Пример программной очистки независимого регистра сведений
НенужнаяОрганизация = Справочники.Организации.НайтиПоНаименованию("Ликвидированное МКУ");
Если ЗначениеЗаполнено(НенужнаяОрганизация) Тогда
// Получаем менеджер набора записей целевого регистра
Набор = РегистрыСведений.КадроваяИсторияСотрудниковИнтервальный.СоздатьНаборЗаписей();
// Устанавливаем отбор по организации
Набор.Отбор.Организация.Установить(НенужнаяОрганизация);
// Очищаем набор и записываем пустой состав (удаление записей)
Набор.Очистить();
Набор.Записать();
Сообщить("Записи регистра успешно очищены для организации: " + Строка(НенужнаяОрганизация));
КонецЕсли;
---
Когда все документы и зависимые справочники помечены, выполним окончательное удаление:
Важное действие после завершения чистки: в ЗКГУ 3 кадровые данные завязаны на интервальные механизмы. После масштабных удалений обязательно запустим тестирование и исправление:
---
Если процесс удаления представляется слишком рискованным или трудоемким из-за большого объема исторических связей, рассмотрим два альтернативных административных решения: