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

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

Задача свертки информационной базы в конфигурации «Зарплата и управление персоналом 3.1» (ЗУП 3.1) кардинально отличается от аналогичной процедуры в «Бухгалтерии предприятия». Это связано с тем, что ЗУП 3.1 построена на принципе хранения непрерывной истории событий (кадровых изменений, начислений, учета времени), а не просто на остатках по счетам. Стандартной обработки свертки от фирмы «1С» для этой конфигурации не существует, поэтому разработчикам приходится реализовывать этот процесс самостоятельно.

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

Выбор стратегии: очистка текущей базы или перенос в новую

Проанализируем два основных подхода к сокращению объема данных:

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

Для реализации второго варианта нам потребуется четкое понимание структуры регистров ЗУП 3.1.

Подготовка данных для расчета среднего заработка

Выясним причину, по которой нельзя просто удалить все документы прошлых периодов. Для расчета отпусков и больничных листов программе требуются данные о начислениях и отработанном времени за предыдущие 12 месяцев (для отпусков) или 2 года (для пособий ФСС). Если эти данные будут удалены, бухгалтерия не сможет корректно начислять выплаты.

Разберем по шагам, какие регистры накопления необходимо свернуть и перенести в документ Перенос данных:

Процесс переноса выглядит так: мы считываем обороты по этим регистрам в разрезе сотрудников и месяцев, формируем записи в документе Перенос данных на дату свертки, а затем помечаем на удаление первичные документы (начисления зарплаты, разовые начисления и т.д.).

Работа с кадровой историей и уволенными сотрудниками

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

Рассмотрим эффективный алгоритм действий:

  1. Определяем список уволенных сотрудников, чья дата увольнения меньше даты свертки.
  2. Используем метод НайтиПоСсылкам, чтобы понять, в каких объектах задействован сотрудник.
  3. В списочных документах (например, ВедомостьНаВыплатуЗарплаты или НачислениеЗарплаты) необходимо программно удалять строки, относящиеся к этим сотрудникам.
  4. Если документ индивидуальный (например, ПриемНаРаботу), он помечается на удаление целиком.

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

Технические приемы очистки данных

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

Рассмотрим фрагмент кода для очистки движений или перезаписи документов:


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

Использование этого режима позволяет записывать документы без срабатывания подписок на события и кода в модуле объекта (процедуры ПередЗаписью, ПриЗаписи), что критически важно при массовой обработке данных в «тяжелых» конфигурациях, таких как ЗУП 3.1.

Очистка взаиморасчетов и НДФЛ

Проанализируем ситуацию с «хвостами» в ведомостях. Часто бухгалтеры жалуются, что при заполнении ведомостей подтягиваются копейки за 2015-2016 годы. Это происходит из-за перекосов в регистре накопления ЗарплатаКВыплате по разрезам (подразделения, статьи финансирования, периоды).

Для исправления ситуации выполним следующие действия:

  1. Сформируем остатки по регистру ЗарплатаКВыплате на дату свертки.
  2. Все ненулевые остатки перенесем в документ Перенос данных, схлопнув их по возможности (обнулив развернутое сальдо).
  3. Аналогичную процедуру проведем для регистров НДФЛ: РасчетыНалогоплательщиковСБюджетомПоНДФЛ и РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.

Помните, что отчетный период по НДФЛ — год. Если вы делаете свертку внутри года, вам обязательно нужно оставить все обороты с 1 января текущего года по регистрам СведенияОДоходахНДФЛ, иначе вы не сможете сформировать регламентированную отчетность (6-НДФЛ).

Заключение и рекомендации

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

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

← На главную