Очистка регистров накопления и сведений в 1С 8.3 без потери данных
Содержание
Почистить регистры
в 1С можно тремя путями: отменить проведение или перепровести документы-регистраторы, удалить записи регистра сведений из его списка, а для технической уборки — пересчитать итоги и запустить Тестирование и исправление в Конфигураторе. Прямо «стереть» движения регистра накопления мимо документа нельзя: каждая запись привязана к регистратору.
Типичная ситуация: после переноса данных из старой базы остатки на складе висят в минусе, а в регистре цен лежат тысячи записей десятилетней давности. Бухгалтер просит «почистить регистры», и тут важно понять, какие именно регистры и зачем, иначе вместе с мусором уйдут живые данные.
Перед любой очисткой сделайте резервную копию базы. Для файловой базы — выгрузка в .dt через Конфигуратор → Администрирование → Выгрузить информационную базу, для клиент-серверной — бэкап средствами СУБД.
Как устроено хранение данных в регистрах 1С
Регистры — это таблицы, куда документы пишут свои результаты. Чтобы чистить их правильно, надо знать четыре вида.
| Вид регистра | Что хранит | Как появляются записи | Как их убрать |
|---|---|---|---|
| Регистр накопления | Остатки и обороты (товары, взаиморасчёты) | Только документами-регистраторами | Через документ: отмена проведения, перепроведение, удаление |
| Регистр сведений, подчинённый регистратору | Данные, которые записал документ | Документами | Так же, через документ |
| Независимый регистр сведений | Справочные значения: курсы, цены, настройки | Вручную, обработками, обменом | Прямо из списка регистра или кодом |
| Регистр бухгалтерии | Проводки | Документами и операциями | Через документ или «Операцию» |
Ещё один слой — таблицы итогов. Регистры накопления и бухгалтерии хранят не только записи, но и заранее посчитанные остатки по периодам. Если итоги «разъехались» с записями, отчёты показывают одно, а оборотка по движениям — другое. Это лечится пересчётом итогов, а не удалением записей.
💡 Узнать, в какие регистры пишет конкретный документ, просто: откройте документ и нажмите Ещё → Движения документа (в БП 3.0 — кнопка ДтКт для проводок). Там видно все регистры и строки.
Штатные способы удалить движения документа
Если мусор оставил конкретный документ, работать нужно с ним. Это самый безопасный путь: программа сама уберёт все его записи во всех регистрах сразу.
Отмена проведения
- Откройте журнал документов нужного вида.
- Выделите документы (можно несколько через
ShiftилиCtrl). - Выберите
Ещё → Отменить проведение.
Документ остаётся в базе, а его движения исчезают из всех регистров. Сумма в остатках сразу меняется.
Пометка на удаление и удаление помеченных
- Пометьте документ на удаление клавишей
Delили черезЕщё → Пометить на удаление. Проведённый документ при пометке автоматически распроводится. - Окончательно удалите: в БП 3.0 и ЗУП 3.1 —
Администрирование → Обслуживание → Удаление помеченных объектов. - Выберите режим «Выборочное удаление», отметьте объекты и запустите.
Программа проверит ссылки. Если на документ ссылается другой объект, удаление остановится и покажет, кто мешает.
Ручная корректировка движений
В БП 3.0 на форме проводок документа есть флажок «Ручная корректировка (разрешает редактирование движений документа)». С ним можно удалить отдельную строку движений, не трогая остальные.
Документ с ручной корректировкой не перезаписывает движения при перепроведении. Через полгода никто не вспомнит, почему остаток не сходится. Используйте только точечно и пишите комментарий в документе.
Перепроведение документов как способ почистить регистры
Перепроведение — главный инструмент уборки. При каждом проведении 1С стирает старые движения документа и записывает новые по текущим данным. Значит, всё, что «прилипло» к регистру из-за ошибок, старых алгоритмов или ручных правок, уйдёт.
Когда перепроведение помогает
- 📦 Остатки по складу не совпадают с документами после обмена или обновления.
- 🔁 Документы загружены из другой базы без проведения или с чужими движениями.
- 🧮 Изменили учётную политику или настройки, и движения надо пересчитать.
- 🧾 Поменяли реквизиты номенклатуры, от которых зависят проводки.
Как перепровести группой
В БП 3.0 есть стандартная обработка «Групповое перепроведение документов
». Найти её проще всего через Главное меню → Функции для технического специалиста → Обработки (если пункта нет, включите его в Сервис → Параметры). Там же можно найти обработку поиском по слову «перепроведение».
- Задайте период: от первой проблемной даты до конца текущего месяца.
- Укажите организацию, если в базе их несколько.
- Запустите и дождитесь журнала результатов.
- Разберите документы, которые не провелись: обычно это нехватка остатков или незаполненные реквизиты.
Перепроводите в хронологическом порядке. Документы раньше проблемной даты трогать не нужно — это лишняя нагрузка. На базе с сотнями тысяч документов перепроведение года может идти несколько часов, поэтому запускайте его, когда в базе мало пользователей.
💡 Если в базе стоит дата запрета изменения, сначала проверьте её в разделе Администрирование. Документы закрытого периода не перепроведутся, и журнал заполнится отказами. Временно сдвигать запрет можно, но только с согласия главбуха и с возвратом сразу после перепроведения.
Пример с цифрами
Склад показывает остаток −12 шт. по позиции. В журнале движений — оприходование 50, реализация 40 и реализация 22 от 14-го числа, которая пришла обменом дважды. Помечаете дубль на удаление, перепроводите месяц: остаток становится 50 − 40 = 10 шт.
Очистка регистров сведений, в том числе периодических
Независимые регистры сведений чистят напрямую. Документ тут не нужен.
Удаление вручную
- Откройте
Главное меню → Функции для технического специалиста. - Раскройте ветку Регистры сведений и найдите нужный: например, «Курсы валют» или «Цены номенклатуры».
- Сузьте список отбором по периоду или измерению: в командной панели списка есть настройка отборов, а по одному значению быстро фильтрует строка поиска.
- Выделите строки
Ctrl+Aи удалитеDel.
Для регистров, подчинённых регистратору, кнопка удаления будет неактивна. Это нормально: чистить их надо через документ.
Что можно и нельзя удалять в периодических регистрах
Периодический регистр хранит историю значения. Удаляя старую запись, вы меняете прошлое: отчёт за прошлый год покажет другое значение.
- ✅ Можно: дубли с одинаковым периодом и значением, тестовые записи, явный мусор после неудачного обмена.
- ⚠️ Осторожно: старые цены и курсы. Если документы прошлых лет перепроведут, они возьмут другое значение.
- ❌ Нельзя: последнюю запись по измерению — потеряете текущее значение.
Курсы валют за закрытые периоды не удаляйте — от них зависят суммы проводок и переоценка.
Техническая очистка и сжатие таблиц базы данных
Эти операции не удаляют данные учёта. Они чинят таблицы итогов, убирают «дыры» в файлах базы и уменьшают её размер.
Пересчёт итогов
Главное меню → Функции для технического специалиста → Стандартные → Управление итогами. Там доступны:
- пересчёт итогов по выбранным регистрам;
- установка периода рассчитанных итогов — до какой даты платформа держит готовые остатки.
Пересчёт помогает, когда отчёты по остаткам расходятся с оборотами по движениям.
Тестирование и исправление
Запустите Конфигуратор: Администрирование → Тестирование и исправление. Отметьте нужные пункты:
| Флажок | Что делает | Когда нужен |
|---|---|---|
| Реиндексация таблиц информационной базы | Перестраивает индексы | Медленные отчёты, ошибки индексов |
| Проверка логической целостности | Ищет битые записи | Ошибки при открытии форм |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты | «Объект не найден» в регистрах |
| Пересчёт итогов | Пересчитывает все таблицы итогов | Расхождения остатков |
| Сжатие таблиц информационной базы | Убирает пустое место (файловая база) | Файл 1Cv8.1CD сильно вырос |
| Реструктуризация таблиц | Пересоздаёт таблицы | После массового удаления |
Тестирование и исправление требует монопольного доступа: всех пользователей придётся выгнать из базы, их сеансы оборвутся. Делайте это вечером или в выходной, после бэкапа.
Выгрузка и загрузка .dt
Для файловой базы есть простой приём: выгрузить её в .dt и загрузить в новую пустую базу. Файл 1Cv8.1CD пересоздаётся без мусора и часто уменьшается в 1,5–2 раза после массовых удалений.
Для клиент-серверной базы размер файлов уменьшают средствами СУБД. В MS SQL — сжатие базы и журнала транзакций, в PostgreSQL — VACUUM FULL. Это задача администратора сервера: операции блокируют таблицы и идут долго.
Автоматизация очистки внешней обработкой
Когда записей сотни тысяч, удалять их из списка мучительно. Тут выручает внешняя обработка — файл .epf, который открывают через Файл → Открыть.
Очистка движений одного документа
Запись пустого набора с отбором по регистратору стирает его движения в регистре:
&НаСервере
Процедура ОчиститьДвиженияНаСервере(Документ)
Набор = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Документ);
Набор.Записать(); // пустой набор заменяет все записи регистратора
КонецПроцедуры
Имя регистра подставьте своё — его видно в Конфигураторе в ветке «Регистры накопления».
Полная очистка независимого регистра сведений
&НаСервере
Процедура ОчиститьРегистрНаСервере()
Набор = РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей();
Набор.Записать(); // без отбора — удаляются ВСЕ записи регистра
КонецПроцедуры
Второй пример стирает регистр целиком. Запускайте только на копии, проверьте результат и лишь потом повторяйте в рабочей базе.
Чтобы удалить часть записей, установите отбор по измерению: Набор.Отбор.Номенклатура.Установить(Ссылка). Для нетиповых задач надёжнее сначала выбрать записи запросом и вывести их список, а удалять уже по проверенному списку.
Свёртка информационной базы
В БП 3.0 и других конфигурациях на БСП есть обработка «Свёртка информационной базы»: она удаляет документы до выбранной даты и заменяет их остатками на начало периода. Найти её можно в Администрирование → Обслуживание. Это радикальный способ: история за свёрнутые годы пропадёт, поэтому старую базу сохраняют архивом.
Сравнение методов
| Метод | Когда применять | Риски |
|---|---|---|
| Отмена проведения | Несколько ошибочных документов | Минимальные |
| Перепроведение | Остатки не сходятся с документами | Долго, отказы в закрытом периоде |
| Удаление из списка регистра сведений | Дубли и мусор в ценах, курсах | Изменение исторических данных |
| Пересчёт итогов | Отчёт не совпадает с движениями | Нагрузка на сервер |
| Тестирование и исправление | Битые записи, разрослась база | Монопольный режим |
| Внешняя обработка | Массовая очистка | Удаление лишнего при ошибке в коде |
| Свёртка базы | База за много лет стала неподъёмной | Потеря детальной истории |
Как не допустить засорения регистров
Чистить реже проще, чем чистить часто.
- 🗓️ Регламентная задача удаления помеченных. В
Администрирование → Обслуживание → Удаление помеченных объектовможно включить автоматическое удаление по расписанию, например раз в неделю ночью. - 🔒 Дата запрета изменения. Закрытые периоды не перепроводятся случайно и не портят остатки.
- 🔄 Контроль обменов. Дубли в регистрах чаще всего приходят обменом. После настройки нового обмена сверяйте остатки по нескольким позициям.
- ✋ Минимум ручных корректировок. Каждая такая правка — мина для будущего перепроведения.
- 📉 Период рассчитанных итогов. Сдвигайте его вперёд, чтобы платформа не пересчитывала остатки от начала времён.
- 💾 Ежедневный бэкап. Без копии любая уборка превращается в лотерею.
Частые вопросы
Можно ли удалить записи регистра накопления без документа?
Почему кнопка удаления в списке регистра неактивна?
Уменьшится ли база после удаления документов?
.dt. Клиент-серверная — после сжатия средствами СУБД.