Снятие пометки на удаление в 1С 8.3: все способы

· 6 мин

Содержание

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

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

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

Пометка — это служебный реквизит ПометкаУдаления (тип «булево») у каждого объекта базы. Пока он равен Истина:

  • 🚫 документ нельзя провести;
  • 🔗 объект не подставляется в новые документы через выбор из списка;
  • 🕓 он ждёт финальной операции «Удаление помеченных объектов»;
  • 👁 в списках отображается перечёркнутым значком.

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

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

Как снять пометку на удаление в 1С вручную

Самый частый случай — один документ или элемент справочника, помеченный по ошибке.

  1. Откройте список, где лежит объект (например, Продажи → Реализации или справочник Контрагенты).
  2. Найдите строку с перечёркнутым значком.
  3. Нажмите правой кнопкой мыши → Снять пометку удаления.
  4. Либо выделите строку и нажмите клавишу Delete — она работает как переключатель: снимает и ставит пометку.

Готово — значок станет обычным, объект снова активен.

Снимаем пометку с одного объекта
Выполнено: 0 / 5

Если снимаете пометку с документа, после этого его нужно ещё раз провести — снятие пометки не восстанавливает движения по регистрам автоматически.

Массовое снятие пометки: группа объектов

Когда объектов много — не кликайте по одному.

  • Выделите несколько строк мышью с зажатым Ctrl или Shift.
  • Правый клик по выделению → Снять пометку удаления — применится ко всей группе.
  • Для справочника целиком удобнее открыть его список, отсортировать по колонке пометки (клик по заголовку) — все помеченные соберутся рядом.

Через раздел Администрирование → Обслуживание → Удаление помеченных объектов можно посмотреть весь список кандидатов на удаление перед финальной операцией — и оттуда же снять пометку с тех, кого стирать передумали.

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

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

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

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

Если ничего не помогло — перезайдите в базу. Иногда список показывает старое состояние из кеша: закройте форму, откройте заново или очистите кеш клиента (папка с логами сеанса, параметр /ClearCache при запуске).

Предопределённые элементы: особый случай

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

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

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

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

Для разработчика и в типовых обработках снятие пометки — одна строка. Базовый алгоритм для одного объекта:

Объект = Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка").ПолучитьОбъект();
Объект.ПометкаУдаления = Ложь;
Объект.Записать();

Массовое снятие пометки через выборку — когда нужно пройти по всему справочнику:

Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.ПометкаУдаления Тогда
        Объект = Выборка.ПолучитьОбъект();
        Объект.ПометкаУдаления = Ложь;
        Объект.Записать();
    КонецЕсли;
КонецЦикла;

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

С документами добавьте перепроведение после снятия пометки:

ДокОбъект.ПометкаУдаления = Ложь;
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);

Быстрый разовый прогон удобно делать через консоль запросов или обработку «Групповое изменение реквизитов» из типовой конфигурации — она снимает пометку у отобранных объектов без единой строки кода.

Обработка ошибок при записи

При массовом снятии оборачивайте запись в попытку — один заблокированный объект не должен ронять весь цикл:

Попытка
    Объект.Записать();
Исключение
    Сообщить("Не удалось: " + ОписаниеОшибки());
КонецПопытки;

Типичные ошибки

  • ❌ Сняли пометку с документа, но забыли провести — движений в регистрах нет, отчёты не сходятся.
  • ❌ Запустили удаление помеченных объектов без резервной копии.
  • ❌ Пытались снять пометку с предопределённого элемента кнопкой — не выходит, а причину не поняли.
  • ❌ Массово сняли пометку скриптом без Ctrl по правам — часть объектов не записалась из-за блокировок, но об этом никто не узнал.

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

Чем снятие пометки отличается от удаления в 1С?
Снятие пометки возвращает объект в рабочее состояние. Удаление помеченных объектов — отдельная финальная операция, которая физически стирает данные и необратима.
Как снять пометку на удаление сразу со всех документов?
Выделите нужные строки в списке через Shift/Ctrl, правый клик → «Снять пометку удаления». Для всей базы удобнее обработка «Групповое изменение реквизитов» или короткий скрипт с выборкой.
Почему кнопка «Снять пометку удаления» неактивна?
Чаще всего не хватает прав роли на интерактивное снятие пометки. Реже — объект заблокирован чужим сеансом. Проверьте права и активных пользователей.
Нужно ли проводить документ после снятия пометки?
Да. Снятие пометки не восстанавливает движения по регистрам. Документ надо провести заново, иначе он числится непроведённым.
Можно ли снять пометку с предопределённого элемента?
Обычной кнопкой — нет. Такой элемент нужно вернуть в конфигурацию через конфигуратор или снять признак «предопределённый», после чего пометка снимается штатно.
Пометка снимается и возвращается обратно — что делать?
Проверьте, не помечен ли документ-основание, от которого зависит объект, и нет ли обработки проведения, которая ставит пометку заново.