Очистка регистров по зарплате в 1С: от перепроведения до наборов записей
Содержание
Регистр по зарплате в 1С почти никогда не чистят напрямую. Данные в него пишут документы начислений, удержаний и выплат, поэтому правильный путь — отменить проведение или удалить сами документы, а не стирать записи регистра руками. После отмены проведения движения из регистра исчезают; после перепроведения формируются заново по текущим настройкам.
Исключение — итоги регистров накопления: их пересчитывают отдельной обработкой Управление итогами, не трогая сами движения. А вот прямое редактирование таблиц регистра через наборы записей или внешние обработки — крайняя мера, которая рвёт связь между документом и его движениями.
Ниже — чем отличаются типы регистров зарплаты, какой способ очистки выбрать под свою задачу и как подстраховаться копией базы, чтобы ошибку можно было откатить.
Какие регистры хранят данные о зарплате
В подсистеме зарплаты (1С:ЗУП 3.1, а также блок зарплаты в 1С:Бухгалтерии 3.0) работают три разных типа регистров, и «очистка» для каждого означает своё.
- 🧮 Регистры расчёта — хранят начисления и удержания с их периодами действия и базой (например,
Начисления,Удержания). Движения в них создают документы начисления зарплаты, отпусков, больничных. - 📊 Регистры накопления — накапливают суммы: взаиморасчёты с сотрудниками, зарплата к выплате, данные для отчётности. У них есть движения и отдельно — итоги (остатки и обороты).
- 📁 Регистры сведений — хранят постоянные и периодические значения: плановые начисления, кадровые данные, настройки. Чаще управляются кадровыми документами, а не расчётными.
Когда говорят «очистить регистр по зарплате», обычно имеют в виду одно из двух: убрать движения конкретных документов за период (пересчитать зарплату с нуля) или сбросить накопленные итоги, если в отчётах «поехали» остатки.
Прежде чем чистить, откройте движения документа. В открытом документе начисления нажмите кнопку с пиктограммой движений (в командной панели, рядом с печатью) — увидите список регистров, в которые он пишет. Это подскажет, какой регистр на самом деле нужно поправить.
Главное правило: чистим документы, а не записи регистра
Безопасный способ очистить регистр зарплаты — работать с документами, которые его заполняют. У движений нет «своей жизни»: они полностью определяются проведённым документом.
Отмена проведения одного документа. Откройте документ (например, Начисление зарплаты и взносов) и нажмите Отменить проведение (пиктограмма со снятой галочкой в командной панели, либо Ещё → Отменить проведение). Движения этого документа из всех регистров удалятся сразу.
Массовая очистка через удаление документов. Если нужно убрать целую группу начислений за месяц:
- В списке документов выделите нужные строки (с
CtrlилиShift). - Нажмите
Ещё → Пометить на удаление / Снять пометку. - Перейдите в
Администрирование → Обслуживание → Удаление помеченных объектов. - Запустите поиск, проверьте список и удалите.
Удаление помеченных объектов проверяет ссылки: если на документ кто-то ссылается (например, ведомость на выплату ссылается на начисление), программа не даст его удалить и покажет, что мешает. Это защита от «дыр» в учёте.
Перед удалением документов сделайте резервную копию базы. Удаление помеченных объектов необратимо: вернуть данные можно будет только из копии. В файловой базе операцию желательно выполнять в монопольном режиме, иначе чужие сеансы могут помешать.
Отдельно про зависимости. Начисление зарплаты обычно связано с ведомостью на выплату и с документами отражения в учёте. Если вы отменяете проведение или удаляете начисление, движения по выплате и по бухгалтерскому отражению останутся «висеть». Поэтому цепочку разбирают сверху вниз: сначала отменяют проведение выплат и отражения, затем — самого начисления. Иначе взаиморасчёты с сотрудниками уйдут в минус.
Когда чистить НЕ нужно. Если в отчёте по зарплате неверные суммы, но документы на месте — сначала попробуйте перепровести их (следующий раздел) и пересчитать итоги . Часто этого достаточно, и удалять ничего не придётся.
Перепроведение документов зарплаты за период
Перепроведение — это не очистка в прямом смысле, а переформирование движений: программа заново проводит документы, старые движения заменяются новыми. Так лечат расхождения, которые появились после изменения настроек, видов начислений или кадровых данных задним числом.
Порядок важен: кадровые документы и начисления проводятся по дате, и неверный порядок даёт неверные остатки. Поэтому перепроводят не вручную по одному, а стандартной обработкой.
- Откройте
Главное меню → Все функции → Обработки → Групповое перепроведение документов. - Если пункта
Все функциинет, включите его:Сервис → Параметры → Отображать команду «Все функции». - Задайте период (например, месяц, с которого «поехало») и отбор по нужным видам документов зарплаты.
- Запустите перепроведение и дождитесь завершения.
Обработка проводит документы в хронологическом порядке, поэтому движения регистров выстраиваются корректно. Если какой-то документ не проводится, она покажет его в списке ошибок — его придётся разобрать отдельно.
Частая причина отказа — закрытый период. Если дата запрета редактирования
стоит раньше, чем документ, перепровести его не получится, пока запрет не снят или не сдвинут (Администрирование → Настройки пользователей и прав → Даты запрета изменения). Снимать запрет на закрытый период стоит осознанно: он защищает сданную отчётность от случайных правок.
Перепроведение за большой период в рабочей базе лучше запускать, когда пользователи вышли: операция нагружает базу и может надолго заблокировать документы. Выбирайте минимально необходимый период.
Сброс и пересчёт итогов регистров накопления
Итоги регистра накопления (остатки и обороты) хранятся отдельно от движений — для скорости отчётов. Иногда движения верные, а итоги устарели: тогда нужен не удалять записи, а пересчитать итоги.
Для этого есть стандартная обработка Управление итогами:
Главное меню → Все функции → Стандартные → Управление итогами.- Выберите нужный регистр накопления по зарплате (например, взаиморасчёты с сотрудниками).
- Нажмите пересчёт итогов — за весь период или с определённой даты.
Здесь же задаётся «граница» рассчитанных итогов: период, до которого итоги хранятся в готовом виде. Сдвиг границы и пересчёт — штатный способ привести остатки в порядок без вмешательства в документы.
Отключать использование итогов у рабочего регистра зарплаты не нужно — отчёты станут считаться «на лету» и замедлятся. Достаточно пересчитать.
Пересчёт итогов не меняет сами движения и не удаляет данные — он только перестраивает служебные таблицы. Поэтому это самая безопасная из «очисток»: даже если запустить зря, учётные данные не пострадают.
Технические способы: наборы записей и консоль
Когда документов нет, а «мусорные» движения в регистре остались (например, после сбоя или некорректной загрузки), штатных кнопок не хватает — нужны технические инструменты. Это уровень администратора или программиста 1С.
Консоль запросов здесь — только для диагностики. Запросом вы читаете содержимое регистра и находите, какие записи лишние (по регистратору, периоду, сотруднику). Удалять данные консоль запросов не умеет — запрос ничего не меняет в базе.
Удаление движений кодом. Очистку делают через набор записей регистра. Для регистра накопления с отбором по регистратору это выглядит так:
НаборЗаписей = РегистрыНакопления.ВзаиморасчетыССотрудниками.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Записать(); // пустой набор затирает прежние движения регистратора
Пустой набор записей при записи затирает все прежние движения этого регистратора — так очищают «осиротевшие» движения. Код выполняют во внешней обработке или в консоли кода; подставьте реальное имя своего регистра.
Прямая запись в регистр разрывает связь «документ → движения». После такой очистки документ может остаться проведённым, но без движений. Применяйте этот способ только к движениям без документа-регистратора или когда сам документ будет удалён следом. Обязательно на копии сначала.
Для регистра сведений набор записей создают так же, через РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей(), но отбор задают по тем измерениям, которые объявлены ведущими или по которым разрешена запись. Если регистр сведений
подчинён регистратору — отбор ставят по регистратору, как у накопления; если независимый — по его измерениям (например, по сотруднику и периоду).
Редактировать записи регистра «руками» в самой таблице штатно нельзя: формы регистров открыты только на чтение. Любая ручная правка движений — это код, и каждая такая операция должна быть покрыта резервной копией.
С регистрами расчёта (начисления, удержания) отдельная тонкость: у их записей есть период действия и фактический период, а также зависимость по базе. Простое затирание набором записей оставит пересчитанные суммы в других документах неверными. Поэтому начисления почти всегда корректнее не «вычищать» кодом, а отменять проведение и перепроводить документы — тогда база пересчитается штатно.
Резервная копия и восстановление после очистки
Любая очистка регистров зарплаты обратима ровно настолько, насколько свежа ваша копия базы . Отмена проведения, удаление документов и запись наборов — всё это необратимо средствами самой 1С.
Перед очисткой выгрузите базу:
- 📦 Файловая база:
Администрирование → Обслуживание → Резервное копирование и восстановление → Создать резервную копию, либо выгрузка в файл.dtчерез конфигуратор (Администрирование → Выгрузить информационную базу). - 🗄️ Клиент-серверная база: средствами СУБД (резервная копия базы данных) или той же выгрузкой в
.dtв монопольном режиме.
Восстановление возможно двумя путями. Если нужно откатить всё — загрузите сохранённую копию (Загрузить информационную базу из .dt или восстановление средствами СУБД). Если откатывать всю базу нельзя, данные восстанавливают точечно: заново проводят или перезаполняют удалённые документы.
Тестирование и исправление информационной базы в конфигураторе и Удаление помеченных объектов не восстанавливают удалённые данные — они только проверяют целостность и чистят мусор. Рассчитывать на них как на «отмену» нельзя.
Какой способ очистки выбрать под конкретную ситуацию:
Как проверить, что регистр очистился
После любой очистки стоит убедиться, что движения действительно ушли, а остатки сошлись. Для этого не нужны специальные права — достаточно универсального отчёта.
- Откройте
Главное меню → Все функции → Отчёты → Универсальный отчёт. - В поле источника данных выберите тип
Регистр накопления(илиРегистр расчёта,Регистр сведений) и нужный регистр зарплаты. - Выберите таблицу
ДвиженияилиОстаткии задайте период. - Сформируйте отчёт и посмотрите записи — по очищенному регистратору или сотруднику их быть не должно.
Второй ориентир — штатные зарплатные отчёты. Если вы чистили взаиморасчёты, проверьте отчёт по задолженности перед сотрудниками: после корректного перепроведения и пересчёта итогов остатки должны соответствовать реально начисленному и выплаченному.
Если в универсальном отчёте движения ещё видны, а документ вы отменили — обновите итоги через Управление итогами. Отчёт по остаткам мог показать старую, ещё не пересчитанную границу.
Если после очистки «минусов» или лишних остатков не осталось, а движения нужных документов на месте — регистр приведён в порядок. Если расхождения остались, возвращайтесь к перепроведению документов за период: как правило, дело в их порядке или в пропущенном документе, а не в самих записях регистра.
Частые вопросы
Чем отмена проведения отличается от пометки на удаление?
Удалением помеченных объектов стирает и документ, и движения без возможности штатного отката.Можно ли очистить движения, не удаляя документ?
Почему после перепроведения остатки всё равно неверные?
Управление итогами.