К статье
Практический материал

Администрирование · 11 мин

Как почистить регистр в 1С 8.3 Бухгалтерия

Как очистить регистр сведений или накопления в 1С 8.3 Бухгалтерия: обработка, код, удаление записей по периоду, риски и проверка результата после чистки.

Регистры в 1С 8.3 Бухгалтерия накапливают данные о движениях документов, остатках, курсах валют, адресных сведениях и служебной информации. Со временем часть записей устаревает: регистр сведений «Адресные сокращения» или «Курсы валют» может содержать тысячи лишних строк, а регистры накопления раздуваются из-за тестовых или ошибочно введённых документов. Чистка регистра уменьшает размер базы и ускоряет проведение документов и формирование отчётов.

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

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

Какие регистры бывают и что можно чистить без риска

В конфигурации «1С:Бухгалтерия 8» используются четыре вида регистров. Регистры сведений хранят справочную информацию: курсы валют, адресные классификаторы, настройки. Регистры накопления содержат обороты и остатки по товарам, расчётам, затратам. Регистры бухгалтерии — это проводки по плану счетов. Регистры расчёта используются в зарплатных конфигурациях и в «Бухгалтерии» практически не встречаются.

Относительно безопасно чистить служебные регистры сведений: «Удалить адресные объекты», устаревшие версии данных, кэши, регистры очередей обмена. Осторожности требуют регистры накопления и бухгалтерии: их записи создаются документами, и ручное удаление нарушит связность учёта — остатки в отчётах перестанут сходиться с документами.

Определить, подчинён ли регистр регистратору, можно в конфигураторе: откройте свойства регистра и посмотрите поле «Режим записи». Если указано «Подчинение регистратору», записи появляются только при проведении документов, и чистить их нужно через отмену проведения или пометку документов, а не напрямую.

Подготовка: резервная копия и анализ регистра

Перед чисткой создайте выгрузку информационной базы. В клиент-серверном варианте базу выгружают средствами СУБД (например, pg_dump для PostgreSQL) или через конфигуратор: меню «Администрирование» → «Выгрузить информационную базу». В файловом варианте достаточно выгрузки через конфигуратор в файл с расширением .dt.

Далее выясните, чем заполнен регистр. Откройте его через «Все функции» (Shift+F9 в настройках меню, если пункт скрыт): «Все функции» → «Регистры сведений» или «Регистры накопления» → нужный регистр. Оцените количество записей, период, наличие регистраторов. Если записи создают документы — составьте список этих документов через отчёт «Движения документа» или универсальный отчёт.

Подготовка к чистке регистра
  1. 1
    Сделайте выгрузку базы в файл .dt через конфигуратор
  2. 2
    Откройте регистр через «Все функции» и оцените объём и период записей
  3. 3
    Проверьте режим записи: подчинён регистратору или независимый
  4. 4
    Составьте список документов-регистраторов, если записи создаются документами
  5. 5
    Убедитесь, что в базе нет активных сеансов других пользователей на время чистки

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

Способ 1. Чистка через документы: отмена проведения и удаление

Это единственный корректный способ очистить регистры накопления и бухгалтерии, подчинённые регистраторам. Записи в таких регистрах — зеркало проведённых документов. Удалите или распроведите документ — исчезнут его движения во всех регистрах сразу.

Для массовой отмены проведения используйте обработку «Групповое изменение реквизитов» (раздел «Администрирование» → «Обслуживание» → «Корректировка данных») или типовую обработку «Проведение документов» из поставки ИТС. В «Групповом изменении реквизитов» выберите вид документов, установите отбор по периоду и выполните действие «Пометить на удаление» или измените признак проведения.

После пометки документов на удаление выполните «Удаление помеченных объектов» («Администрирование» → «Обслуживание»). Программа проверит ссылочную целостность: если на документ ссылаются другие объекты, удаление будет заблокировано с указанием причин. Только после физического удаления документов записи регистров окончательно исчезнут.

Способ 2. Ручное удаление записей независимого регистра сведений

Независимые регистры сведений (без регистратора) можно чистить прямо из пользовательского интерфейса. Откройте регистр через «Все функции», выделите строки с помощью Ctrl+A или выборочно с Ctrl и нажмите Delete. Подтвердите удаление — записи исчезнут сразу.

Для больших объёмов ручное удаление неудобно: список из сотен тысяч строк будет тормозить, а выделение — занимать время. В этом случае используйте отбор списка (кнопка «Ещё» → «Настроить список»), чтобы отобразить только нужный период или значения измерений, и удаляйте порциями.

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

Способ 3. Программная очистка через консоль кода

Самый быстрый способ удалить все записи регистра — выполнить код во внешней обработке «Консоль кода» или через «Выполнить произвольное выражение». Код создаёт пустой набор записей и записывает его с замещением, что физически очищает таблицу регистра.

bsl
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Записать(Истина);

Для частичной очистки добавьте отбор по измерению или периоду. Например, чтобы удалить курсы одной валюты, установите отбор по полю «Валюта» перед записью набора. Для регистра, подчинённого регистратору, отбор ставится по полю «Регистратор» — так можно удалить движения конкретного документа, не трогая сам документ, но это аварийный приём, а не штатная операция.

bsl
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Валюта.Установить(ВалютаСсылка);
НаборЗаписей.Записать(Истина);

Выполняйте код в монопольном режиме или при отсутствии активных пользователей: запись большого набора блокирует таблицу, и параллельные сеансы получат ошибку блокировки. Для очень больших регистров удаляйте порциями в цикле с отбором по периоду — это снижает нагрузку на СУБД и размер транзакции.

Способ 4. Типовые обработки и свёртка базы

Если задача — не разовая чистка, а уменьшение базы за старые периоды, используйте обработку «Свёртка информационной базы» с диска ИТС. Она формирует документы «Операция» с остатками на дату свёртки и помечает на удаление все документы раньше этой даты, что автоматически очищает регистры накопления и бухгалтерии за закрытые периоды.

Также полезны обработки с портала 1С: «Удаление движений документов» (удаляет движения без удаления самих документов — для исправления ошибок проведения) и «Поиск и удаление дублей» для справочников, чьи записи дублируются в регистрах сведений. Перед запуском любой обработки проверьте её совместимость с вашей версией конфигурации.

Сравнение способов чистки

Удаление документов

Корректен для регистров с регистратором; медленно при больших объёмах, сохраняет целостность учёта

Ручное удаление записей

Подходит для небольших независимых регистров сведений; неприменимо к регистрам накопления

Программный код

Самый быстрый для полной очистки; требует навыков и резервной копии, легко ошибиться в отборе

Свёртка базы

Оптимальна для закрытия старых периодов; длительная процедура, требует монопольного доступа

Проверка результата и типичные ошибки

После чистки откройте регистр и убедитесь, что лишние записи удалены, а нужные остались. Для регистров накопления сформируйте оборотно-сальдовую ведомость или универсальный отчёт по регистру и сравните остатки с данными до чистки — они должны совпадать, если вы удаляли только ошибочные движения.

Дополнительно запустите «Тестирование и исправление» информационной базы (конфигуратор → «Администрирование») с проверкой ссылочной целостности. Если после удаления записей появились битые ссылки — объекты с полями вида «Объект не найден», восстановите базу из копии и повторите чистку корректным способом.

Типичные ошибки
01
Чистка регистра накопления напрямую без удаления документов — остатки в отчётах перестают сходиться с первичкой
02
Отсутствие резервной копии — при ошибке данные восстановить невозможно
03
Удаление всех записей периодического регистра сведений — срез последних становится пустым, документы теряют курсы и настройки
04
Чистка при активных сеансах пользователей — конфликты блокировок и незавершённые транзакции
05
Игнорирование планов обмена — удалённые записи не передаются в другие узлы, возникают расхождения при синхронизации
Контрольные точки

Как проверить результат

Список записей регистра
Норма

Лишние записи удалены, актуальные на месте

Тревожный признак

Пустой регистр там, где должны быть данные

Оборотно-сальдовая ведомость
Норма

Остатки совпадают с данными до чистки

Тревожный признак

Расхождения остатков или пустые обороты

Тестирование и исправление
Норма

Ошибок ссылочной целостности нет

Тревожный признак

Сообщения о битых ссылках и объектах «не найден»

Синхронизация данных
Норма

Обмен завершается без ошибок

Тревожный признак

Коллизии и предупреждения о расхождении данных

FAQ

Можно ли очистить регистр бухгалтерии (проводки) напрямую?

Технически — да, через набор записей с отбором по регистратору, но это аварийный приём. Штатно проводки удаляются только отменой проведения или удалением документа. Прямая чистка нарушит связь проводок с первичными документами и приведёт к ошибкам в отчётности.

Уменьшит ли чистка регистров размер файла базы?

Для файловой базы — не сразу: физический размер файла 1Cv8.1CD уменьшается только после тестирования и исправления с включённым сжатием таблиц. В клиент-серверном варианте освобождение места зависит от настроек СУБД: в PostgreSQL может потребоваться VACUUM FULL, в MS SQL — сжатие базы данных.

Как удалить записи регистра сведений только за старые периоды?

Создайте набор записей с отбором по измерениям, а в цикле обойдите записи запросом с условием по полю «Период» и удаляйте их порциями. Либо откройте список регистра, настройте отбор по периоду и удалите отобранные строки вручную, если объём невелик.

Что делать, если после чистки регистра перестали формироваться отчёты?

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

Нужны ли права администратора для очистки регистров?

Для ручного удаления записей достаточно прав на изменение конкретного регистра. Для запуска консоли кода, обработок и операции «Удаление помеченных объектов» в типовой конфигурации требуются права администратора. В файловой базе дополнительно понадобится монопольный доступ для свёртки и тестирования.

Можно ли автоматизировать регулярную чистку служебных регистров?

Да, через регламентное задание: создайте внешнюю обработку с кодом очистки устаревших записей (например, старше заданного срока) и подключите её через «Дополнительные отчеты и обработки» с настройкой расписания. Обязательно предусмотрите в коде запись в журнал регистрации, чтобы отслеживать результат каждого запуска.

Итог

Что важно запомнить

Перед чисткой регистра всегда делайте резервную копию. Регистры с регистратором чистите только через удаление документов, независимые регистры сведений — вручную или кодом с отбором. После чистки проверьте остатки в отчётах и ссылочную целостность базы.