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

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

Как удалить регистр в 1С: очистка данных и удаление объекта

Как удалить регистр в 1С: очистка записей регистра сведений и накопления, удаление объекта из конфигурации, типовые обработки, риски и проверка результата.

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

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

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

Что именно вы хотите удалить: определяем сценарий

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

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

Маршрут решения

Как выбрать действие

Нужно убрать устаревшие или ошибочные данные, но регистр используетсяОчищайте записи через обработку или запрос, объект не трогайте
Регистр создан ошибочно и нигде не используетсяУдалите объект в конфигураторе после поиска ссылок на него
Нужно убрать движения одного документаОтмените проведение документа или очистите его движения, а не весь регистр
Регистр занимает много места и тормозит базуИспользуйте свёртку базы или удаление записей за старые периоды

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

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

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

Как очистить записи регистра сведений

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

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

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

Если нужно удалить не всё, а только часть записей (например, за старый период), на набор записей устанавливают отбор по измерению или периоду, а затем записывают пустой набор с этим отбором. Для регистра сведений, подчинённого регистратору, записи удаляются только через документы-регистраторы — напрямую их очистить нельзя.

Как очистить регистр накопления и движения документа

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

Программно движения конкретного документа очищаются так: у объекта документа обращаются к коллекции «Движения», выбирают нужный регистр, очищают набор и записывают его. Это безопаснее, чем удалять записи напрямую из таблиц SQL, что категорически запрещено — прямые правки в СУБД нарушают целостность базы и лишают поддержки.

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

Как удалить объект «Регистр» из конфигурации

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

После удаления обновите конфигурацию базы данных (F7). Платформа предупредит, что таблица с данными будет удалена безвозвратно вместе со всеми записями. Если конфигурация типовая и стоит на поддержке, объект сначала нужно снять с поддержки или включить возможность изменения — но помните, что это усложнит будущие обновления.

Универсальные обработки и типовые инструменты

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

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

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

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

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

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

Часто задаваемые вопросы

Можно ли удалить записи регистра без программирования?

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

Чем отличается очистка регистра от удаления объекта?

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

Почему записи регистра сведений не удаляются вручную?

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

Что будет с отчётами после очистки регистра накопления?

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

Как уменьшить размер базы, не удаляя регистры полностью?

Используйте свёртку базы на дату: старые движения заменяются документами ввода остатков. Дополнительно удалите помеченные объекты и выполните сжатие базы средствами СУБД для клиент-серверного варианта.

Можно ли восстановить удалённый регистр или его записи?

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

Итог

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

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