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