При ведении учета в программе 1С:Зарплата и управление персоналом нередко возникают ситуации, когда из-за методологических ошибок прошлых периодов у сотрудников накапливаются фиктивные долги, некорректные остатки по взаиморасчетам или неверные данные по налогам. Если количество сотрудников велико (например, более 2000 человек), ручная корректировка каждого документа становится невозможной. В такой ситуации возникает потребность «обнулить» финансовую составляющую базы, оставив при этом кадровые данные: приказы о приеме, переводах, увольнениях и штатное расписание. Разберем наиболее эффективные методы решения этой задачи.
Проанализируем архитектуру 1С:ЗУП 3.1. Все финансовые показатели хранятся не только в документах, но и в соответствующих регистрах накопления. Чтобы «забыть» старые долги, нам необходимо очистить или скорректировать остатки по ключевым регистрам. Для этого идеально подходит технический документ Перенос данных.
Рассмотрим пошагово, какие регистры требуют внимания:
Для реализации этого метода создадим документ Перенос данных с датой, предшествующей началу нового учета (например, 31.12.2023). В настройках состава регистров выберем вышеуказанные объекты и внесем корректирующие записи, которые выведут остатки в ноль. Это позволит сохранить «историю» в базе, но начать финансовый год с чистого листа.
Если база слишком «замусорена» и очистка регистров кажется трудоемкой, рассмотрим вариант с использованием универсальной обработки Выгрузка и загрузка данных XML. Этот способ позволяет перенести только нужные объекты из старой базы в новую, пустую конфигурацию.
Важные нюансы при выгрузке:
Во время настройки выгрузки выберем справочники (Физические лица, Сотрудники, Подразделения, Должности) и кадровые документы (Прием на работу, Кадровый перевод). Важно: при выгрузке документов программа может попытаться «подтянуть» по ссылкам связанные расчетные документы. Чтобы этого не произошло, необходимо внимательно настраивать правила или использовать фильтры по датам.
Разберем ситуацию с ошибкой «Нарушение прав доступа» при загрузке на Postgresql. Часто это связано с тем, что процесс сервера 1С не имеет прав на запись в каталог временных файлов или возникают конфликты при попытке записи констант. Проанализируем решение: попробуйте исключить Константы из списка выгружаемых объектов и выполнять загрузку под пользователем с полными административными правами, убедившись, что в базе-приемнике нет активных сессий других пользователей.
Если мы хотим оставить все документы в базе, но сделать так, чтобы они не влияли на учет, мы можем массово отменить их проведение. Рассмотрим, как это сделать быстро с помощью встроенных инструментов.
Использовать простое выделение через Ctrl+A в больших списках не рекомендуется, так как это может привести к зависанию системы. Вместо этого воспользуемся обработкой Групповое изменение реквизитов:
Начисление зарплаты и взносов, Премия, Материальная помощь и другие расчетные документы.Проведен и установим значение Ложь.После выполнения этой операции документы останутся в базе как «черновики», их движения по регистрам исчезнут, и финансовая картина обнулится. Однако помните, что после этого отчетность за прошлые периоды будет пустой.
Профессиональный способ «отсечения» лишних данных — штатная обработка Свертка информационной базы. Она объединяет в себе несколько подходов: автоматически создает документы Перенос данных с остатками на определенную дату и помечает на удаление все документы за предыдущие периоды.
Выясним, в чем преимущество этого метода для кадровика: при свертке можно указать, что кадровые документы удалять не нужно. Программа сама проанализирует связи и сохранит всю цепочку приемов и переводов, при этом очистив регистры начислений.
Проанализируем серьезную проблему, с которой вы столкнетесь после любой очистки: расчет среднего заработка для отпусков и больничных. Для расчета отпуска программе нужны данные о начислениях за последние 12 месяцев. Если вы удалите документы или очистите регистры за прошлый год, программа посчитает средний заработок равным нулю.
Чтобы этого избежать, после очистки базы необходимо заполнить специальные документы:
Ввод данных для расчета среднего заработка (общий) — сюда вносятся суммы для будущих отпусков и командировок.Ввод данных для расчета среднего заработка (ФСС) — для корректного расчета больничных листов.Эти документы не делают движений по взаиморасчетам (не создают долгов), но хранят информацию, которую алгоритмы расчета зарплаты будут использовать в будущем.
Если вам требуется программно отменить проведение большого количества документов, можно использовать следующий фрагмент кода в консоли кода или внешней обработке:
Выборка = Документы.НачислениеЗарплаты.Выбрать(НачалоГода, КонецГода);
Пока Выборка.Следующий() Цикл
ОбъектДок = Выборка.ПолучитьОбъект();
Если ОбъектДок.Проведен Тогда
Попытка
ОбъектДок.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Сообщить("Отменено проведение: " + ОбъектДок);
Исключение
Сообщить("Ошибка при отмене документа: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Использование РежимЗаписиДокумента.ОтменаПроведения гарантирует, что все движения по всем регистрам (начисления, НДФЛ, взносы) будут корректно удалены системой автоматически.
Резюме: Для быстрого результата на большой базе лучше всего подходит сочетание свертки базы и последующего ввода данных для среднего заработка. Это обеспечит чистоту взаиморасчетов при сохранении работоспособности механизмов расчета отпусков и больничных.