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

Справочники и Данные · 10 мин

Как удалить строки в 1С: документы, списки и регистры

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

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

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

Удаление строки из табличной части документа

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

Если нужно удалить несколько строк подряд, выделите их с зажатой клавишей Shift (диапазон) или Ctrl (произвольные строки), затем нажмите Delete. После удаления проверьте итоговые суммы документа: количество, сумма и НДС пересчитываются автоматически, но если в документе есть ручные скидки или распределённые суммы, их корректность стоит проверить отдельно.

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

Удаление строк из списка: справочники и документы

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

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

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

Порядок удаления элемента справочника
  1. 1
    Откройте список справочника и найдите нужный элемент через поиск или отбор
  2. 2
    Выделите элемент и нажмите F8 — подтвердите установку пометки удаления
  3. 3
    Перейдите в «Администрирование» — «Обслуживание» — «Удаление помеченных объектов»
  4. 4
    Выберите режим удаления и запустите поиск помеченных объектов
  5. 5
    Если объект не удалён из-за ссылок — откройте список мест использования и устраните ссылки
  6. 6
    Повторите удаление и убедитесь, что объект исчез из списка

Удаление движений и записей регистров

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

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

Программное удаление строк: методы встроенного языка

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

bsl
// Удалить текущую строку табличной части документа
Объект.Товары.Удалить(СтрокаТаблицы);

// Удалить все строки с нулевым количеством
Индекс = Объект.Товары.Количество() - 1;
Пока Индекс >= 0 Цикл
    Если Объект.Товары[Индекс].Количество = 0 Тогда
        Объект.Товары.Удалить(Индекс);
    КонецЕсли;
    Индекс = Индекс - 1;
КонецЦикла;

// Полностью очистить табличную часть
Объект.Товары.Очистить();
Объект.Записать();

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

Важный нюанс при удалении в цикле: перебирайте коллекцию с конца (от последнего индекса к нулю), иначе после удаления строки индексы сместятся и часть строк будет пропущена. Альтернатива — сначала собрать строки-кандидаты в массив, а затем удалять их по ссылкам на строки, не по индексам.

Типичные ошибки
01
Удаление строк в цикле с начала коллекции — индексы сдвигаются, часть строк пропускается
02
Запись пустого набора регистра без отбора — удаляются все записи регистра целиком
03
Удаление строки в форме без последующей записи документа — изменения теряются при закрытии
04
Физическое удаление объектов в обход пометки — остаются битые ссылки в других документах

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

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

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

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

Как выбрать способ удаления

Нужно убрать одну-две строки из открытого документаКлавиша Delete или команда «Удалить» в табличной части, затем запись и перепроведение документа
Нужно удалить элемент справочника или документ из спискаF8 для пометки удаления, затем обработка «Удаление помеченных объектов»
Нужно убрать движения документа по регистрамОтмена проведения или удаление самого документа, а не правка регистра
Нужно удалить тысячи записей по условиюПрограммное удаление через набор записей или обработку, предварительно — резервная копия
Нужно сократить базу за старые периодыШтатная свёртка базы с формированием остатков на дату свёртки

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

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

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

Контрольные точки

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

Итоги документа после удаления строки
Норма

Суммы и НДС пересчитаны, документ проведён без ошибок

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

Итоги не изменились или документ не проводится

Удалённый элемент справочника
Норма

Элемент отсутствует в списке, отчёты его не показывают

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

В документах видна надпись «Объект не найден»

Движения по регистрам
Норма

Отчёт по регистру совпадает с данными документов

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

В отчёте остатки, которым нет документа-основания

Частые вопросы об удалении строк в 1С

Почему клавиша Delete не удаляет строку в табличной части?

Скорее всего, документ открыт в режиме просмотра, закрыт датой запрета редактирования или у пользователя нет прав на изменение. Проверьте, доступна ли кнопка «Ещё» — «Изменить форму» и не стоит ли документ в закрытом периоде. Также строку нельзя удалить, если табличная часть заполняется автоматически и заблокирована настройками конфигурации.

Чем пометка удаления отличается от физического удаления?

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

Как удалить все строки табличной части одним действием?

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

Можно ли восстановить случайно удалённую строку документа?

До записи документа — да, через отмену действия (Ctrl+Z) или закрытие формы без сохранения. После записи строку придётся вводить заново вручную либо восстанавливать документ из резервной копии базы, если она делалась незадолго до удаления.

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

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

Почему объект не удаляется обработкой «Удаление помеченных объектов»?

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

Итог

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

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