Как правильно выполнить свертку базы 1С:Зарплата и управление персоналом 3.1?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Почему в ЗУП 3.1 нет типовой обработки свертки?

Проанализируем архитектуру программы. В конфигурации Зарплата и управление персоналом данные не просто распределены по счетам, они формируют сложные зависимости. Если в бухгалтерии достаточно обрезать проводки и ввести остатки по счетам, то в ЗУП удаление первичного документа (например, начисления зарплаты за прошлый год) может привести к невозможности рассчитать отпускные в текущем периоде. Официальная позиция разработчиков сводится к тому, что вместо классической свертки необходимо выполнять перенос данных в новую чистую базу.

Метод 1: Создание новой базы и «свертка через перенос»

Выясним, как реализовать наиболее безопасный вариант — имитацию перехода на новую систему. Этот метод позволяет оставить только работающих сотрудников и необходимые остатки. Разберем этот процесс по шагам:

  1. Подготовка исходной базы. Перед началом работ обязательно создадим резервную копию. Проверим актуальность кадровых данных. Если в справочнике Сотрудники числится 13 000 записей, а фактически работают только 200, нам нужно четко определить критерии отбора.
  2. Использование помощника начальной настройки. В новой пустой базе ЗУП запустим механизм «Начальная настройка программы». Выберем пункт «Перенос данных из предыдущей программы», указав в качестве источника нашу текущую базу ЗУП 3.1. Подобная технология переноса сотрудников и их среднего заработка успешно применяется и при задачах по объединению и слиянию организаций.
  3. Настройка состава переносимых данных. Программа предложит выбрать дату, на которую будут сформированы остатки. Обычно это начало текущего года или начало отчетного периода.
  4. Фильтрация сотрудников. Это самый важный этап. Рассмотрим возможность программной доработки правил выгрузки, чтобы в новую базу попали только те физические лица, у которых на дату свертки нет документа Увольнение или по которым есть ненулевые остатки в регистрах взаиморасчетов.

Метод 2: Работа с документами «Перенос данных»

Посмотрим на техническую сторону реализации. Основным инструментом, который заменяет исторические документы в свернутой базе, является документ Перенос данных. Проанализируем, какие именно данные он должен содержать для корректной работы:

Средний заработок. Для того чтобы в новой базе правильно рассчитывались больничные и отпуска, необходимо заполнить данные за предыдущие 12 месяцев (для отпусков) и 24 месяца (для пособий). Эти сведения записываются в специализированные регистры:

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

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

Специфика свертки для версии Казахстана (ЗУП КЗ)

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

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

  1. Социальные платежи. Данные по ОПВ, СО и ОСМС должны быть перенесены корректно для формирования справок о доходах и подтверждения стажа.
  2. Экологические надбавки и стаж. Если сотрудники имеют право на специфические выплаты, зависящие от стажа в определенных зонах, необходимо перенести данные из регистров сведений, хранящих историю стажа, даже если кадровые приказы 10-летней давности будут удалены.

Технические приемы оптимизации объема базы

Иногда свертка требуется только для уменьшения размера файла БД. Выясним причину разрастания базы. Часто это не сами документы, а сопутствующая информация. Разберем, что можно очистить без удаления расчетных данных:

1. Версионирование объектов. Регистр сведений Сведения о версиях объектов может занимать колоссальный объем. Если бизнес-логика позволяет, мы можем безболезненно очистить этот регистр за старые периоды. Посмотрим на пример логики очистки:


Набор = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
Набор.Отбор.ДатаВерсии.Установить(ДатаСреза, Ложь); // Установка фильтра по дате
// Далее следует программный перебор и удаление старых записей

2. Присоединенные файлы. Хранение сканов паспортов и договоров внутри базы — плохая практика. Рекомендуем перенести их в Тома хранения файлов на диске — для этой задачи есть перенос присоединенных файлов в тома хранения. Это значительно облегчит базу и ускорит создание резервных копий.

Алгоритм действий для программиста 1С

Если принято решение писать собственную обработку для «обрезания» базы, придерживайтесь следующего плана:

  1. Определяем список «живых» сотрудников. Используем запрос к срезу последних регистра Кадровая история сотрудников.
  2. Пометка на удаление. Помечаем на удаление всех уволенных сотрудников, чья дата увольнения меньше даты свертки минус 3 года (срок хранения данных для проверок). Кроме того, можно произвести универсальную очистку базы, чтобы удалить устаревшие элементы других справочников.
  3. Удаление документов. Используем стандартную обработку «Удаление помеченных объектов». Важно: программа не даст удалить документы, на которые есть ссылки. На больших базах стандартный механизм может работать медленно, поэтому стоит рассмотреть альтернативы для удаления помеченных объектов с предварительным отбором. В этом и заключается главная сложность ЗУП.
  4. Прямая очистка регистров. Для записей в регистрах накопления за старые периоды, которые не закрываются (например, «зависшие» копейки во взаиморасчетах), придется использовать корректировку регистров или программную очистку наборов записей. Для этих целей существуют специальные обработки для корректировки остатков по невыплаченной зарплате.

Важный совет: Никогда не пытайтесь удалять данные напрямую через SQL-запросы в обход объектной модели 1С. Это гарантированно нарушит ссылочную целостность базы ЗУП, что проявится в виде «битых» ссылок в отчетах по налогам и взносам гораздо позже.

Заключение

Подводя итог, отметим: полноценная свертка ЗУП 3.1 — это всегда проект, требующий высокой квалификации. Рассмотрим наиболее рациональный путь: если бюджет позволяет, приобретите проверенное стороннее решение, такое как готовая Свертка ЗУП 3.1 и ЗКГУ 3.1, которое уже учитывает нюансы заполнения регистров Перенос данных. Если же вы решили делать это самостоятельно, ориентируйтесь на метод создания новой базы и переноса в нее только актуальных остатков и оборотов за последние 1-2 года для расчета среднего заработка.

← На главную