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