Администрирование · 10 мин
Как удалить запись регистра сведений в 1С
Как удалить запись регистра сведений в 1С: через форму списка, обработку и код. Отличия подчинённых и независимых регистров, риски, проверка результата.
Регистр сведений в 1С хранит информацию в разрезе измерений: курсы валют, цены номенклатуры, штрихкоды, адреса контрагентов. Записи в него попадают из документов, обменов данными, обработок и ручного ввода, поэтому со временем там накапливаются ошибочные строки — дубли, устаревшие значения, результаты неудачной загрузки. Удалить такую запись можно несколькими способами, и выбор зависит от типа регистра и объёма чистки.
Главное различие — режим подчинения регистра. Независимый регистр сведений позволяет удалять записи напрямую из формы списка. Регистр, подчинённый регистратору, наполняется только движениями документов, и удалить отдельную строку в нём штатно нельзя — нужно отменять проведение документа-регистратора или корректировать его движения. Попытка «вычистить» подчинённый регистр вручную через код приводит к рассинхронизации данных и ошибкам при перепроведении.
Перед любым удалением убедитесь, что запись действительно лишняя: проверьте, не используется ли она в отчётах, обменах, регламентных заданиях. Удаление в регистре сведений необратимо — корзины в 1С нет, восстановить данные можно только из резервной копии.
Как определить тип регистра перед удалением
Откройте регистр сведений через «Все функции» или стандартную навигацию конфигурации и посмотрите на форму списка. Если в таблице есть колонка «Регистратор» со ссылками на документы — регистр подчинён регистратору, и его записи создаются только проведением документов. Если колонки «Регистратор» нет, регистр независимый, и записи в нём можно добавлять и удалять вручную.
Точный ответ даёт конфигуратор: в дереве метаданных выберите регистр, откройте свойства и найдите параметр «Режим записи». Значение «Подчинение регистратору» означает, что ручное удаление строк недоступно штатными средствами. Значение «Независимый» разрешает прямую работу с записями.
Ещё один признак — поведение кнопки удаления. В независимом регистре команда «Удалить» активна для выделенной строки. В подчинённом регистре она либо неактивна, либо платформа выдаёт сообщение о невозможности удаления записи, подчинённой регистратору.
Удаление записи через форму списка
Это основной способ для независимых регистров. Откройте регистр сведений через меню конфигурации или через «Все функции → Регистры сведений». Найдите нужную строку — для больших регистров используйте отбор по измерениям или поиск по содержимому, чтобы не листать тысячи записей вручную.
Выделите строку и нажмите клавишу Delete, либо кнопку удаления на панели, либо «Ещё → Удалить». Платформа попросит подтверждение — после согласия запись удаляется сразу и безвозвратно. Пометки на удаление, как у справочников и документов, у записей регистра сведений нет.
Если нужно удалить несколько записей, удерживайте Ctrl или Shift для множественного выделения и удаляйте пакетом. Для массовой чистки по условию удобнее сначала установить отбор, чтобы в списке остались только удаляемые строки, — так ниже риск зацепить лишнее.
- 1Откройте регистр сведений через «Все функции» или меню конфигурации
- 2Установите отбор по измерениям, чтобы найти нужную запись
- 3Выделите строку и нажмите Delete или «Ещё → Удалить»
- 4Подтвердите удаление в диалоге платформы
- 5Обновите список (F5) и убедитесь, что запись исчезла
Удаление записей регистра, подчинённого регистратору
Штатный путь — работа с документом-регистратором. Найдите документ по ссылке в колонке «Регистратор», отмените его проведение или пометьте на удаление. При отмене проведения платформа автоматически удаляет все движения документа по этому регистру.
Если удалить нужно не весь документ, а только часть его движений, используйте обработку «Корректировка движений документа» (в типовых конфигурациях доступна в разделе администрирования или через «Все функции»). Она позволяет отредактировать набор записей документа, включая удаление отдельных строк, после чего движения записываются вручную. Учтите: при следующем перепроведении документа ручные правки будут затёрты.
Ручное удаление записей подчинённого регистра программным кодом технически возможно, но опасно: документ останется проведённым, а его движения исчезнут. Отчёты, построенные по регистру, перестанут сходиться с данными документов, а при групповом перепроведении записи могут «воскреснуть». Прибегайте к этому только при осознанном ремонте данных и обязательно на копии базы.
Массовое удаление записей программным кодом
Когда записей тысячи или удалять нужно по сложному условию, используют встроенный язык. Для независимого регистра создают набор записей с отбором по измерениям и записывают его пустым — это стандартный и безопасный механизм удаления, который корректно работает и в клиент-серверном режиме.
Типовой пример: удаление всех записей по конкретному значению измерения. Набор записей с установленным отбором, не заполненный строками, при записи с параметром «Замещение» удаляет из регистра всё, что попадает под отбор.
НаборЗаписей = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Владелец.Установить(НоменклатураСсылка);
НаборЗаписей.Записать(Истина); // пустой набор замещает и удаляет записи по отбору
Для удаления одной конкретной записи можно использовать менеджер записи: прочитать запись по ключу и вызвать метод «Удалить». Для больших объёмов выполняйте операцию в транзакции и порциями, чтобы не блокировать таблицу надолго — в многопользовательской базе длительная блокировка регистра вызовет ошибки у других пользователей.
МенеджерЗаписи = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ДатаЗаписи;
МенеджерЗаписи.Валюта = ВалютаСсылка;
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
МенеджерЗаписи.Удалить();
КонецЕсли;Удаление через консольные и универсальные обработки
В типовых конфигурациях на управляемых формах часто доступна обработка «Групповое изменение реквизитов» и инструменты администратора, но для регистров сведений удобнее специализированные обработки: «Редактирование регистров сведений», универсальные подбор и обработка объектов, консоль запросов. Они позволяют отобрать записи произвольным запросом и удалить их пакетно.
Работают такие обработки по тому же принципу — через наборы записей с отбором, поэтому ограничения те же: подчинённые регистры требуют указания регистратора, а удаление происходит без возможности отката. Перед запуском на рабочей базе проверьте отбор на копии и посмотрите, сколько записей попадает под условие.
В файловых базах для разовой чистки допустимо использовать консоль кода с правами администратора. В клиент-серверных базах массовые операции лучше выполнять в монопольном режиме или в нерабочее время — это снижает риск конфликтов блокировок.
Способы удаления записей
Подходит для единичных записей независимого регистра. Неудобен при массовой чистке и недоступен для подчинённых регистров.
Единственный корректный способ для подчинённых регистров. Удаляет все движения документа, а не отдельную строку.
Оптимален для массового удаления по условию. Требует навыков программирования и осторожности с отбором.
Удобны для разовой чистки без написания кода. Результат зависит от корректности заданного отбора.
Проверка результата и типичные ошибки
После удаления обновите список регистра клавишей F5 и повторите отбор — запись не должна находиться. Если удаляли через документ-регистратор, дополнительно откройте отчёт по регистру или движения документа и убедитесь, что строк исчезли именно те, что планировалось.
Контрольный признак корректной чистки — сходимость смежных данных. Например, после удаления ошибочных цен номенклатуры сформируйте прайс и проверьте, что не осталось «дыр» там, где цена должна быть. Для регистров, участвующих в обменах, убедитесь, что удаление не вызвало повторной выгрузки удалённых записей в другую базу.
Самая частая ошибка — слишком широкий отбор в наборе записей: если не установить отбор вообще и записать пустой набор, очистится весь регистр целиком. Вторая типичная ошибка — попытка удалить запись подчинённого регистра напрямую, из-за чего данные расходятся с документами. Третья — работа без резервной копии, когда ошибку замечают уже после сохранения.
Как проверить результат
Удалённая запись не находится
Запись на месте — удаление не выполнено или не подтверждено
Строки по регистру отсутствуют после отмены проведения
Движения остались — документ всё ещё проведён
Итоги изменились ожидаемым образом
Появились пропуски данных там, где записи должны быть
Частые вопросы
Почему кнопка «Удалить» в регистре сведений неактивна?
Скорее всего, регистр подчинён регистратору — в таких регистрах записи создаются и удаляются только проведением документов. Проверьте наличие колонки «Регистратор» в списке. Удаляйте запись через отмену проведения документа или корректировку его движений.
Можно ли восстановить удалённую запись регистра сведений?
Штатных средств восстановления нет — пометка удаления для записей регистров не предусмотрена. Вернуть данные можно только из резервной копии базы или повторным вводом. Поэтому перед массовой чисткой всегда делайте копию или выгрузку.
Как удалить сразу все записи регистра сведений?
Создайте набор записей регистра без отбора и запишите его пустым с замещением — регистр очистится полностью. Для подчинённого регистра полная очистка возможна только через пометку на удаление всех документов-регистраторов. Операция необратима, выполняйте её на копии.
Удалится ли запись регистра при удалении документа?
Да, если регистр подчинён регистратору: при отмене проведения или пометке документа на удаление его движения по всем регистрам удаляются автоматически. Записи независимых регистров с документами не связаны и при удалении документа не затрагиваются.
Что делать, если удалённая запись появилась снова?
Чаще всего запись возвращается из обмена данными — другой узел рассылает её повторно, или после перепроведения документа-регистратора. Проверьте настройки синхронизации, зарегистрированные изменения и расписание регламентных заданий загрузки данных.
Что важно запомнить
Независимый регистр сведений чистится напрямую — из формы списка или набором записей с отбором. Подчинённый регистратору — только через документы: отмена проведения или корректировка движений. Удаление необратимо, поэтому перед массовой чисткой делайте копию базы и проверяйте отбор на тестовых данных.