Администрирование · 9 мин
Как удалить регистр в 1С: очистка данных и удаление объекта
Как удалить регистр в 1С: очистка записей регистра сведений и накопления, удаление объекта из конфигурации, типовые обработки, риски и проверка результата.
Запрос «как удалить реестр в 1С» обычно означает одну из трёх задач: очистить записи регистра сведений или регистра накопления, удалить сам объект «Регистр» из конфигурации или удалить движения конкретного документа по регистру. Термин «реестр» здесь употребляется неточно: в 1С правильное название — регистр, и от того, какой именно сценарий вам нужен, зависят инструменты и риски.
Любые операции с регистрами затрагивают учётные данные: остатки товаров, взаиморасчёты, курсы валют, цены номенклатуры. Ошибочное удаление записей приводит к расхождениям в отчётах и невозможности восстановить информацию без резервной копии. Поэтому перед любыми действиями создаётся выгрузка базы или бэкап средствами СУБД.
Ниже разобраны все сценарии: от безопасной очистки через типовые механизмы до удаления объекта из конфигуратора и программной очистки через встроенный язык. Отдельно описаны проверка результата и типичные ошибки.
Что именно вы хотите удалить: определяем сценарий
Прежде чем искать кнопку «Удалить», нужно понять, с чем вы работаете. В 1С регистр — это объект метаданных, который хранит данные в виде таблиц записей. Удалить можно либо сами записи (данные), либо объект целиком, либо часть записей, относящихся к конкретному документу.
Регистры бывают четырёх видов: сведений, накопления, бухгалтерии и расчёта. Чаще всего под «удалением реестра» понимают очистку регистра сведений (например, устаревших курсов валют или цен) или регистра накопления (ошибочных движений). Регистры бухгалтерии и расчёта очищать вручную крайне не рекомендуется — они связаны с проводками и начислениями.
Как выбрать действие
Подготовка: резервная копия и анализ связей
Первый обязательный шаг — резервная копия. Для файловой базы достаточно скопировать файл 1Cv8.1CD при выключенной базе или выполнить выгрузку через конфигуратор: «Администрирование» → «Выгрузить информационную базу». Для клиент-серверной базы используйте средства СУБД (MS SQL, PostgreSQL) — выгрузка в dt больших баз занимает много времени и не всегда удобна.
Второй шаг — анализ зависимостей. В конфигураторе выделите регистр, нажмите правую кнопку и выберите «Поиск ссылок на объект». Вы увидите, какие документы записывают в регистр движения, какие отчёты и запросы его читают. Если регистр используется в типовых механизмах, удаление объекта сломает обновление конфигурации и работу документов.
Как очистить записи регистра сведений
Регистр сведений, не подчинённый регистратору (независимый), можно очистить вручную прямо в режиме «Предприятие»: откройте список регистра через «Все функции» → «Регистры сведений», выделите записи и удалите их. Это подходит для небольшого количества строк.
Для массовой очистки удобнее обработка или консоль запросов. Программный способ через встроенный язык выглядит так: получаем набор записей регистра, не загружаем в него данные и записываем пустой набор — все записи удаляются одной транзакцией.
НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
НаборЗаписей.Записать(Истина); // записываем пустой набор — регистр очищенЕсли нужно удалить не всё, а только часть записей (например, за старый период), на набор записей устанавливают отбор по измерению или периоду, а затем записывают пустой набор с этим отбором. Для регистра сведений, подчинённого регистратору, записи удаляются только через документы-регистраторы — напрямую их очистить нельзя.
Как очистить регистр накопления и движения документа
Регистр накопления всегда подчинён регистраторам: каждая запись привязана к документу. Поэтому корректный способ убрать данные — отменить проведение документов, которые сделали движения. Для массовой отмены используют обработку «Групповое изменение реквизитов» или специализированные обработки отмены проведения по периоду.
Программно движения конкретного документа очищаются так: у объекта документа обращаются к коллекции «Движения», выбирают нужный регистр, очищают набор и записывают его. Это безопаснее, чем удалять записи напрямую из таблиц SQL, что категорически запрещено — прямые правки в СУБД нарушают целостность базы и лишают поддержки.
Если задача — уменьшить объём базы, в типовых конфигурациях есть штатный механизм свёртки: он формирует документы ввода остатков на дату и удаляет старые движения. Это предпочтительнее ручной очистки, потому что сохраняет текущие остатки.
Как удалить объект «Регистр» из конфигурации
Удаление объекта выполняется в конфигураторе. Откройте конфигурацию, найдите нужный регистр в ветке «Регистры сведений» или «Регистры накопления», выполните поиск ссылок на объект и убедитесь, что он нигде не используется: ни в документах, ни в отчётах, ни в коде модулей. Затем выделите объект и нажмите Delete.
После удаления обновите конфигурацию базы данных (F7). Платформа предупредит, что таблица с данными будет удалена безвозвратно вместе со всеми записями. Если конфигурация типовая и стоит на поддержке, объект сначала нужно снять с поддержки или включить возможность изменения — но помните, что это усложнит будущие обновления.
Универсальные обработки и типовые инструменты
Для очистки регистров без программирования часто используют универсальные обработки: «Универсальный подбор и обработка объектов», консоль запросов, обработки группового удаления движений. В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) часть задач решается штатно: регламентные операции, свёртка базы, пометка на удаление документов с последующим удалением помеченных объектов.
Механизм «Удаление помеченных объектов» («Администрирование» → «Обслуживание») удаляет документы вместе с их движениями по всем регистрам — это самый безопасный способ избавиться от ненужных данных целиком, потому что платформа контролирует ссылочную целостность и не даст удалить объект, на который есть ссылки.
Перед массовой очисткой большого регистра запустите операцию сначала на копии базы и замерьте время. Удаление миллионов записей одной транзакцией может занять часы и заблокировать работу пользователей — на больших объёмах данные удаляют порциями по несколько тысяч записей в цикле.
Проверка результата и типичные ошибки
После очистки откройте регистр в режиме «Предприятие» или сформируйте отчёт по нему — таблица должна быть пустой либо содержать только нужные записи. Дополнительно сверьте связанные отчёты: оборотно-сальдовую ведомость, отчёты по остаткам товаров и взаиморасчётам. Если цифры «поплыли», восстановите базу из копии и пересмотрите подход.
Проверьте также журнал регистрации: там видно, какие операции выполнялись и не было ли ошибок записи. Для клиент-серверных баз после массового удаления имеет смысл выполнить реиндексацию и обновление статистики средствами СУБД — это восстановит скорость работы запросов.
Часто задаваемые вопросы
Можно ли удалить записи регистра без программирования?
Да. Независимый регистр сведений очищается вручную через список в режиме «Предприятие», а для массовых операций подходят универсальные обработки. Движения регистров накопления удаляются отменой проведения документов или механизмом удаления помеченных объектов.
Чем отличается очистка регистра от удаления объекта?
Очистка удаляет только данные — структура регистра, отчёты и документы продолжают работать. Удаление объекта из конфигурации уничтожает и структуру, и данные, а также требует исправления всех мест в коде и метаданных, где регистр использовался.
Почему записи регистра сведений не удаляются вручную?
Скорее всего, регистр подчинён регистратору. Такие записи создаются и удаляются только документами: найдите документ-регистратор и отмените его проведение или очистите его движения.
Что будет с отчётами после очистки регистра накопления?
Все отчёты, построенные по этому регистру (остатки, обороты, взаиморасчёты), покажут нулевые или неполные данные. Если регистр участвует в цепочке учёта, возможны расхождения с бухгалтерскими отчётами. Поэтому перед очисткой оцените, какие отчёты зависят от регистра.
Как уменьшить размер базы, не удаляя регистры полностью?
Используйте свёртку базы на дату: старые движения заменяются документами ввода остатков. Дополнительно удалите помеченные объекты и выполните сжатие базы средствами СУБД для клиент-серверного варианта.
Можно ли восстановить удалённый регистр или его записи?
Только из резервной копии. Платформа не ведёт корзину удалённых данных, поэтому выгрузка базы перед операцией — обязательное условие, а не рекомендация.
Что важно запомнить
Сначала определите сценарий: очистка записей, удаление движений документа или удаление объекта конфигурации. Всегда делайте резервную копию, проверяйте ссылки на регистр и используйте штатные механизмы — отмену проведения, удаление помеченных объектов, свёртку. Прямая правка таблиц в СУБД недопустима.