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