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