Удаление выделенных строк, документов и элементов в 1С 8.3

· 10 мин

Содержание

Чтобы удалить выделенное в 1С 8.3, нажмите Delete. В списке справочника или журнале документов эта клавиша ставит пометку удаления на выделенные объекты. В табличной части документа она сразу удаляет выделенные строки. Окончательно помеченные объекты стирает обработка «Удаление помеченных объектов».

Удаление «в один шаг» из списка выполняет сочетание Shift+Delete, но оно доступно только пользователю с правом интерактивного удаления. Остальным пользователям остаётся двухэтапный путь: пометка, затем очистка базы администратором.

Горячие клавиши для удаления выделенного

В 1С одна и та же клавиша ведёт себя по-разному. Всё зависит от того, где стоит курсор: в списке объектов, в таблице внутри документа или в текстовом поле.

Где вы находитесьКлавишаЧто произойдёт
Список справочника, журнал документовDeleteПометка удаления на выделенные объекты (или снятие пометки, если она уже стоит)
Список справочника, журнал документовShift+DeleteНепосредственное удаление без пометки (только при наличии права)
Табличная часть документа (товары, услуги, сотрудники)DeleteУдаление выделенных строк
Текстовое поле, реквизит формыDelete / BackspaceУдаление выделенного текста
Текстовое полеCtrl+XВырезать выделенный текст в буфер обмена
Текстовое полеCtrl+ZОтменить последнее изменение текста

Самая частая путаница — между списком и табличной частью. В журнале документов Delete ничего не стирает: документ остаётся в базе с красным крестиком на значке. А вот в табличной части накладной строки исчезают сразу.

Delete в списке работает как переключатель. Нажали второй раз на помеченном объекте — пометка снимается. Это самый быстрый способ «отменить удаление», пока объекты ещё не стёрты окончательно.

Shift+Delete: когда работает и когда нет

Сочетание Shift+Delete в списке удаляет объект физически, минуя пометку. Проверки ссылок при этом не будет: если на справочник ссылаются документы, в них останутся «битые» ссылки вида <Объект не найден>.

В типовых конфигурациях право интерактивного удаления есть только у полных прав, и то не всегда. У обычного бухгалтера Shift+Delete просто не сработает или выдаст Нарушение прав доступа!. Это защита, а не ошибка.

Не используйте Shift+Delete в рабочей базе для объектов, которые могли попасть в документы. Безопасный путь — пометка и удаление помеченных с контролем ссылок.

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

Групповое удаление начинается с правильного выделения. Приёмы одинаковы для списков справочников, журналов документов и большинства табличных частей.

  1. Одна строка — щелчок мышью или стрелки ↑ / ↓.
  2. Диапазон подряд — щёлкните первую строку, зажмите Shift и щёлкните последнюю. С клавиатуры: Shift+↑ или Shift+↓.
  3. Отдельные строки вразброс — зажмите Ctrl и щёлкайте нужные строки. Повторный щелчок с Ctrl снимает выделение со строки.
  4. Все строки — Ctrl+A. Команда «Выделить все» также есть в меню Ещё над таблицей.

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

Удаление по отбору: быстрый способ для сотен документов

Если нужно убрать, например, все черновики поступлений за март, не выделяйте их вручную.

  1. Откройте журнал нужного вида документов.
  2. Задайте отбор: период через команду установки периода, контрагента или склад — через поля отбора над списком или через поиск Ctrl+F.
  3. Убедитесь, что в списке остались только нужные документы.
  4. Нажмите Ctrl+A, затем Delete.
  5. Подтвердите вопрос о пометке выделенных объектов.

Ctrl+A выделяет все строки, которые прошли отбор, включая те, что не видны на экране. Перед Delete дважды проверьте, что отбор задан верно.

Иерархические справочники

В справочниках с группами (номенклатура, контрагенты, статьи затрат) пометка группы распространяется на всё её содержимое. Пометили папку «Канцтовары» — пометку получат все позиции внутри и вложенные подгруппы.

Это удобно для чистки, но опасно, если в группе остались рабочие позиции. Перед пометкой раскройте группу и перенесите нужное в другую папку.

Удаление через контекстное меню и командную панель

Если не хотите запоминать сочетания, те же команды доступны мышью.

Контекстное меню. Выделите строки и щёлкните правой кнопкой. В списке объектов появится команда «Пометить на удаление / Снять пометку». В табличной части документа — команда удаления строки.

Командная панель. Над табличной частью обычно есть кнопка удаления строки (значок с крестиком) или та же команда в меню Ещё. Над списком справочника или журнала команда пометки находится в меню Ещё; в некоторых формах она вынесена кнопкой.

Из формы самого объекта. Откройте документ или элемент справочника. В меню Ещё формы есть команда пометки на удаление. Это удобно, когда документ найден через поиск и не хочется возвращаться в журнал.

СпособКогда удобенНа что смотреть
Delete в спискеОдна или несколько строкРаботает как переключатель пометки
Контекстное менюМышью, без клавиатурыТе же команды, что и на клавишах
Меню ЕщёКоманда скрыта с панелиСправа от команды подписано её сочетание клавиш
Форма объектаДокумент уже открытПометить можно только сам этот объект
Обработка «Удаление помеченных»Окончательная чистка базыОтменить нельзя, только восстановлением из копии

Если команда пропала с командной панели, проверьте настройку формы: Ещё → Изменить форму. Там можно вернуть кнопку на панель или сбросить настройки к стандартным.

Пометка удаления и окончательная очистка базы

В 1С 8.3 удаление объектов из списков устроено в два этапа. Это сделано ради целостности данных: нельзя стереть контрагента, если на него ссылаются счета и накладные.

Что делает пометка удаления

  • 🗂 Объект остаётся в базе, на значке появляется красный крестик.
  • 📄 Проведённый документ при пометке теряет проведение: его движения по регистрам и проводки удаляются.
  • 🔁 Пометку можно снять тем же Delete. Чтобы документ снова попал в учёт, его нужно провести заново.
  • 🔗 Ссылки в других документах сохраняются, пока объект не удалён окончательно.

Как окончательно удалить помеченные объекты

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

Где запускатьПуть
1С:Бухгалтерия предприятия 3.0Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов
Конфигурации на БСП (ЗУП 3.1, УТ 11 и др.)Раздел Администрирование, группа команд обслуживания
Любая конфигурацияГлавное меню → Все функции → Стандартные → Удаление помеченных объектов

Пункт «Все функции» по умолчанию скрыт. Включите его в Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”».

Порядок работы:

  1. Сделайте резервную копию базы — выгрузку .dt или копию каталога файловой базы.
  2. Запустите обработку и выберите режим с выбором объектов, чтобы видеть, что именно будет удалено.
  3. Снимите флажки с объектов, которые удалять не нужно.
  4. Нажмите команду удаления и дождитесь окончания проверки ссылок.
  5. Просмотрите список объектов, которые удалить не удалось, и причину по каждому.

Окончательное удаление необратимо: ни Ctrl+Z, ни снятие пометки уже не помогут — только восстановление из резервной копии.

Запускайте обработку в нерабочее время. Если в базе работают другие пользователи, объекты, которые они держат открытыми, могут не удалиться, а сама проверка ссылок на большой базе идёт долго.

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

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

  1. Откройте документ, например реализацию или поступление.
  2. Перейдите на вкладку с нужной таблицей — «Товары», «Услуги» и т. п.
  3. Выделите строки (Shift или Ctrl + щелчок).
  4. Нажмите Delete или кнопку удаления строки на панели таблицы.
  5. Нажмите «Записать» или «Провести и закрыть».

Строки удалены только в открытой форме. Пока документ не записан, их можно вернуть: закройте форму без сохранения, ответив «Нет» на вопрос о записи изменений.

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

Очистить всю табличную часть

Чтобы убрать все строки разом, выделите их через Ctrl+A и нажмите Delete. В некоторых документах в меню Ещё над таблицей есть отдельная команда очистки — ищите её по слову «Очистить».

Почему 1С не удаляет выделенное

Если Delete не срабатывает или программа показывает ошибку, причина почти всегда в одном из случаев ниже.

Диагностика: выберите симптом

Помечали не то — как вернуть

Пока не запускалась обработка удаления помеченных, всё обратимо:

  • 🔍 Найдите объект в списке: помеченные отображаются с красным крестиком.
  • ⌨️ Выделите его и нажмите Delete — пометка снимется.
  • 📄 Для документа после снятия пометки выполните проведение, иначе он не попадёт в учёт.

Если помечали десятки документов по отбору, повторите тот же отбор, выделите всё через Ctrl+A и снова нажмите Delete. Только учтите: в выборку не должны попасть документы, помеченные раньше и намеренно.

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

Когда объектов тысячи, ручное выделение неудобно. Есть три пути: стандартные обработки, обработка удаления по расписанию и собственная внешняя обработка.

Стандартные средства

  • 🧹 Удаление помеченных объектов — описано выше. В актуальных версиях обработки можно включить автоматическое удаление помеченных по расписанию. Тогда база чистится регулярным заданием без участия администратора.
  • 🛠 Групповое изменение реквизитов (в БП 3.0 рядом с удалением помеченных, в группе «Корректировка данных») — меняет выбранный реквизит сразу у многих объектов. Подходит, когда объекты нужно не удалить, а, например, перенести в другую группу.

Внешняя обработка: пометить документы за период

Если нужно пометить на удаление все документы одного вида за период, программист пишет короткую внешнюю обработку . Пример для документов поступления в БП 3.0, код выполняется на сервере:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|	Док.Ссылка КАК Ссылка
|ИЗ
|	Документ.ПоступлениеТоваровУслуг КАК Док
|ГДЕ
|	Док.Дата МЕЖДУ &Начало И &Конец
|	И НЕ Док.ПометкаУдаления";
Запрос.УстановитьПараметр("Начало", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("Конец", КонецДня(ДатаОкончания));

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
	Попытка
		ДокОбъект.УстановитьПометкуУдаления(Истина);
	Исключение
		Сообщить("Не удалось пометить: " + Строка(Выборка.Ссылка)
			+ ". " + ОписаниеОшибки());
	КонецПопытки;
КонецЦикла;

Что здесь важно:

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

Метод Удалить() у объекта стирает его сразу, без проверки ссылок. В рабочей базе его не используйте: так появляются документы со ссылками <Объект не найден>. Любую самописную обработку сначала прогоните на копии базы.

Частые вопросы

Чем пометка удаления отличается от удаления?
Пометка оставляет объект в базе и снимает проведение документа; её можно отменить. Удаление стирает объект навсегда, вернуть его можно только из резервной копии.
Почему помеченные документы видны в журнале?
Пометка не прячет объект, а только отмечает его крестиком. Строка исчезнет после запуска обработки «Удаление помеченных объектов».
Влияют ли помеченные документы на отчёты?
Нет. Помеченный документ не проведён, поэтому движений по регистрам и проводок у него нет, и в отчёты он не попадает.
Можно ли удалить пользователя или организацию так же, как документ?
Технически да, через пометку. Но организацию, по которой есть учёт, удалить не получится: на неё ссылаются все документы. Пользователя обычно не удаляют, а отключают ему вход в программу, чтобы сохранить историю его действий.
Удалённые строки табличной части можно восстановить после записи?
Только из резервной копии или если в базе включено версионирование объектов: тогда в истории изменений документа видна прежняя версия, и строки можно восстановить вручную.