Удаление выделенных строк, документов и элементов в 1С 8.3
Содержание
Чтобы удалить выделенное в 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 в рабочей базе для объектов, которые могли попасть в документы. Безопасный путь — пометка и удаление помеченных с контролем ссылок.
Как выделить несколько строк перед удалением
Групповое удаление начинается с правильного выделения. Приёмы одинаковы для списков справочников, журналов документов и большинства табличных частей.
- Одна строка — щелчок мышью или стрелки
↑/↓. - Диапазон подряд — щёлкните первую строку, зажмите
Shiftи щёлкните последнюю. С клавиатуры:Shift+↑илиShift+↓. - Отдельные строки вразброс — зажмите
Ctrlи щёлкайте нужные строки. Повторный щелчок сCtrlснимает выделение со строки. - Все строки —
Ctrl+A. Команда «Выделить все» также есть в менюЕщёнад таблицей.
Количество выделенных строк 1С не показывает, поэтому перед удалением прокрутите список и проверьте выделение глазами.
Удаление по отбору: быстрый способ для сотен документов
Если нужно убрать, например, все черновики поступлений за март, не выделяйте их вручную.
- Откройте журнал нужного вида документов.
- Задайте отбор: период через команду установки периода, контрагента или склад — через поля отбора над списком или через поиск
Ctrl+F. - Убедитесь, что в списке остались только нужные документы.
- Нажмите
Ctrl+A, затемDelete. - Подтвердите вопрос о пометке выделенных объектов.
Ctrl+A выделяет все строки, которые прошли отбор, включая те, что не видны на экране. Перед Delete дважды проверьте, что отбор задан верно.
Иерархические справочники
В справочниках с группами (номенклатура, контрагенты, статьи затрат) пометка группы распространяется на всё её содержимое. Пометили папку «Канцтовары» — пометку получат все позиции внутри и вложенные подгруппы.
Это удобно для чистки, но опасно, если в группе остались рабочие позиции. Перед пометкой раскройте группу и перенесите нужное в другую папку.
Удаление через контекстное меню и командную панель
Если не хотите запоминать сочетания, те же команды доступны мышью.
Контекстное меню. Выделите строки и щёлкните правой кнопкой. В списке объектов появится команда «Пометить на удаление / Снять пометку». В табличной части документа — команда удаления строки.
Командная панель. Над табличной частью обычно есть кнопка удаления строки (значок с крестиком) или та же команда в меню Ещё. Над списком справочника или журнала команда пометки находится в меню Ещё; в некоторых формах она вынесена кнопкой.
Из формы самого объекта. Откройте документ или элемент справочника. В меню Ещё формы есть команда пометки на удаление. Это удобно, когда документ найден через поиск и не хочется возвращаться в журнал.
| Способ | Когда удобен | На что смотреть |
|---|---|---|
Delete в списке | Одна или несколько строк | Работает как переключатель пометки |
| Контекстное меню | Мышью, без клавиатуры | Те же команды, что и на клавишах |
Меню Ещё | Команда скрыта с панели | Справа от команды подписано её сочетание клавиш |
| Форма объекта | Документ уже открыт | Пометить можно только сам этот объект |
| Обработка «Удаление помеченных» | Окончательная чистка базы | Отменить нельзя, только восстановлением из копии |
Если команда пропала с командной панели, проверьте настройку формы: Ещё → Изменить форму. Там можно вернуть кнопку на панель или сбросить настройки к стандартным.
Пометка удаления и окончательная очистка базы
В 1С 8.3 удаление объектов из списков устроено в два этапа. Это сделано ради целостности данных: нельзя стереть контрагента, если на него ссылаются счета и накладные.
Что делает пометка удаления
- 🗂 Объект остаётся в базе, на значке появляется красный крестик.
- 📄 Проведённый документ при пометке теряет проведение: его движения по регистрам и проводки удаляются.
- 🔁 Пометку можно снять тем же
Delete. Чтобы документ снова попал в учёт, его нужно провести заново. - 🔗 Ссылки в других документах сохраняются, пока объект не удалён окончательно.
Как окончательно удалить помеченные объекты
Окончательное удаление выполняет обработка «Удаление помеченных объектов». Пути к ней:
| Где запускать | Путь |
|---|---|
| 1С:Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов |
| Конфигурации на БСП (ЗУП 3.1, УТ 11 и др.) | Раздел Администрирование, группа команд обслуживания |
| Любая конфигурация | Главное меню → Все функции → Стандартные → Удаление помеченных объектов |
Пункт «Все функции» по умолчанию скрыт. Включите его в Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”».
Порядок работы:
- Сделайте резервную копию базы
— выгрузку
.dtили копию каталога файловой базы. - Запустите обработку и выберите режим с выбором объектов, чтобы видеть, что именно будет удалено.
- Снимите флажки с объектов, которые удалять не нужно.
- Нажмите команду удаления и дождитесь окончания проверки ссылок.
- Просмотрите список объектов, которые удалить не удалось, и причину по каждому.
Окончательное удаление необратимо: ни Ctrl+Z, ни снятие пометки уже не помогут — только восстановление из резервной копии.
Запускайте обработку в нерабочее время. Если в базе работают другие пользователи, объекты, которые они держат открытыми, могут не удалиться, а сама проверка ссылок на большой базе идёт долго.
Удаление строк в табличной части документа
С табличными частями работать проще: здесь нет пометки, строка удаляется сразу.
- Откройте документ, например реализацию или поступление.
- Перейдите на вкладку с нужной таблицей — «Товары», «Услуги» и т. п.
- Выделите строки (
ShiftилиCtrl+ щелчок). - Нажмите
Deleteили кнопку удаления строки на панели таблицы. - Нажмите «Записать» или «Провести и закрыть».
Строки удалены только в открытой форме. Пока документ не записан, их можно вернуть: закройте форму без сохранения, ответив «Нет» на вопрос о записи изменений.
Если документ уже проведён, после удаления строк обязательно перепроведите его. Иначе в учёте останутся старые движения — например, списание товара, которого в документе больше нет. Проще всего нажать «Провести и закрыть».
Очистить всю табличную часть
Чтобы убрать все строки разом, выделите их через Ctrl+A и нажмите Delete. В некоторых документах в меню Ещё над таблицей есть отдельная команда очистки — ищите её по слову «Очистить».
Почему 1С не удаляет выделенное
Если Delete не срабатывает или программа показывает ошибку, причина почти всегда в одном из случаев ниже.
Помечали не то — как вернуть
Пока не запускалась обработка удаления помеченных, всё обратимо:
- 🔍 Найдите объект в списке: помеченные отображаются с красным крестиком.
- ⌨️ Выделите его и нажмите
Delete— пометка снимется. - 📄 Для документа после снятия пометки выполните проведение, иначе он не попадёт в учёт.
Если помечали десятки документов по отбору, повторите тот же отбор, выделите всё через Ctrl+A и снова нажмите Delete. Только учтите: в выборку не должны попасть документы, помеченные раньше и намеренно.
Массовое удаление обработками и кодом
Когда объектов тысячи, ручное выделение неудобно. Есть три пути: стандартные обработки, обработка удаления по расписанию и собственная внешняя обработка.
Стандартные средства
- 🧹 Удаление помеченных объектов — описано выше. В актуальных версиях обработки можно включить автоматическое удаление помеченных по расписанию. Тогда база чистится регулярным заданием без участия администратора.
- 🛠 Групповое изменение реквизитов (в БП 3.0 рядом с удалением помеченных, в группе «Корректировка данных») — меняет выбранный реквизит сразу у многих объектов. Подходит, когда объекты нужно не удалить, а, например, перенести в другую группу.
Внешняя обработка: пометить документы за период
Если нужно пометить на удаление все документы одного вида за период, программист пишет короткую внешнюю обработку . Пример для документов поступления в БП 3.0, код выполняется на сервере:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК Док
|ГДЕ
| Док.Дата МЕЖДУ &Начало И &Конец
| И НЕ Док.ПометкаУдаления";
Запрос.УстановитьПараметр("Начало", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("Конец", КонецДня(ДатаОкончания));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
Попытка
ДокОбъект.УстановитьПометкуУдаления(Истина);
Исключение
Сообщить("Не удалось пометить: " + Строка(Выборка.Ссылка)
+ ". " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Что здесь важно:
УстановитьПометкуУдаления(Истина)ставит именно пометку, а не удаляет. Проведённые документы при этом теряют проведение — так же, как при ручномDelete.- Документы в закрытом периоде вызовут исключение. Они попадут в сообщения, остальные будут помечены.
- Окончательное удаление после этого — штатной обработкой «Удаление помеченных объектов», с проверкой ссылок.
Метод Удалить() у объекта стирает его сразу, без проверки ссылок. В рабочей базе его не используйте: так появляются документы со ссылками <Объект не найден>. Любую самописную обработку сначала прогоните на копии базы.