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