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

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

Как удалить запись из регистра сведений в 1С 8

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

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

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

Определите тип регистра перед удалением

Откройте конфигуратор, найдите нужный регистр в ветке «Регистры сведений» и посмотрите свойство «Режим записи». Значение «Независимый» означает, что записи создаются и удаляются вручную или программно. Значение «Подчинение регистратору» — что каждая строка привязана к документу.

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

Удаление записи через форму списка

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

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

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

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

Удаление записей подчинённого регистра

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

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

Массовое удаление обработкой

Когда нужно очистить сотни или тысячи строк, ручное удаление не подходит. В типовых конфигурациях и на диске ИТС есть универсальные обработки — например, «Групповое изменение реквизитов» не удаляет записи регистров, поэтому чаще используют обработку «Удаление данных» из стандартных подсистем или самописную внешнюю обработку.

Общий принцип: обработка открывает набор записей регистра, устанавливает отбор по измерениям (или оставляет его пустым для полной очистки) и записывает пустой набор. Перед запуском всегда проверяйте отбор на тестовой копии: пустой отбор означает удаление всех записей регистра без исключения.

Удаление записей программно

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

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

МенеджерЗаписи.Период = Дата(2026, 1, 15);

МенеджерЗаписи.Валюта = Справочники.Валюты.НайтиПоКоду("840");

МенеджерЗаписи.Удалить();

Массовое удаление по условию выполняется через набор записей с отбором:

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.ТипЦен.Установить(НужныйТипЦен);

НаборЗаписей.Записать(); // пустой набор заменяет отобранные записи

Полная очистка регистра — тот же приём без установки отбора: НаборЗаписей.Записать() сразу после создания набора удалит все записи. Выполняйте такой код только после выгрузки базы: транзакция записи набора необратима.

bsl
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(СсылкаНаТовар);
НаборЗаписей.Записать(); // удаляет все записи по этому товару

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

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

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

Типичные ошибки
01
Удаление записей без резервной копии — восстановить их штатно невозможно
02
Попытка удалить запись подчинённого регистра напрямую — нарушается связь с документом-регистратором
03
Пустой отбор в наборе записей вместо заданного — очищается весь регистр
04
Удаление актуальной записи вместо устаревшей в периодическом регистре — в документы подставляется старое значение
Контрольные точки

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

Форма списка регистра после обновления
Норма

Целевая запись отсутствует, остальные на месте

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

Пропали лишние записи или нужная осталась

Документы, использовавшие данные регистра
Норма

Перепроводятся без ошибок

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

Сообщения о незаполненной цене или курсе

Обмен данными
Норма

Удаление корректно выгружено в связанную базу

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

Ошибки выгрузки, расхождения данных между базами

Частые вопросы

Почему кнопка «Удалить» в регистре сведений неактивна?

Две основные причины: регистр подчинён регистратору (записи удаляются только через документ) или у вашей роли нет права «Удаление» на этот объект. Проверьте свойство «Режим записи» в конфигураторе и права роли.

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

Штатного механизма отмены нет — записи регистров не помечаются на удаление, а стираются сразу. Восстановление возможно только из резервной копии базы или выгрузки dt, сделанной до удаления.

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

Создайте набор записей без отбора и запишите его пустым: РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей().Записать(). Это удалит все строки регистра. Обязательно сделайте копию базы перед выполнением.

Удалится ли запись регистра, если удалить документ-регистратор?

Да. При отмене проведения или пометке документа на удаление его движения по всем подчинённым регистрам удаляются автоматически. Это единственный корректный способ очистки подчинённого регистра.

Чем удаление через отбор отличается от удаления в цикле?

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

Опасно ли удалять записи регистра, участвующего в обмене?

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

Итог

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

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