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

· 8 мин

Содержание

Чтобы пометить сразу несколько документов, откройте их список (журнал), выделите нужные строки мышью с зажатым Ctrl или Shift и нажмите клавишу Delete. Платформа спросит подтверждение и поставит пометку удаления на всю выделенную группу за один раз. Это самый быстрый способ, когда документы лежат рядом в одном журнале.

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

Выделяем документы в списке и ставим пометку

Самый простой сценарий — когда все документы видны в одном журнале или списке.

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

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

Чтобы отфильтровать список перед выделением, используйте поиск по колонке (Ctrl + F) или настройку отбора в командной панели списка. Например, отобрать все документы за один месяц, а потом нажать Ctrl + A и Delete.

Ограничение способа одно: выделять приходится вручную, и объекты должны быть в одном списке. Для сотен документов или для отбора по сложному условию берите групповую обработку.

Массовая пометка через «Групповую обработку справочников и документов»

Это штатный инструмент типовых конфигураций (БП 3.0, ЗУП 3.1, УТ 11, КА, ERP). Он позволяет задать вид объектов, наложить отбор и одним действием пометить на удаление всё, что под отбор попало.

Открыть обработку:

  • через главное меню — Все функции → Обработки → Групповая обработка справочников и документов;
  • если пункта «Все функции» нет — включите его в Сервис → Параметры → Отображать команду «Все функции» (в разных релизах пункт настройки платформы расположен в разделе параметров).

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

  1. На закладке отбора в поле вида объектов выберите, что обрабатываем — Документы, затем конкретный вид (например, «Поступление товаров и услуг») или сразу несколько видов.
  2. Задайте условия отбора: период, организация, контрагент, статус проведения. Условий можно добавить несколько — они работают вместе.
  3. Нажмите кнопку заполнения списка (поиск) — обработка подберёт все подходящие документы.
  4. Проверьте результат: лишние строки из списка можно снять вручную.
  5. Перейдите на закладку действий, выберите Установить пометку удаления и выполните.

Та же обработка умеет снимать пометку (Снять пометку удаления), проводить и отменять проведение группы. Это удобно, когда нужно, например, распровести и пометить все черновики за квартал.

Отбор задавайте максимально узко и перед действием глазами просмотрите подобранный список. Обработка пометит ровно то, что показала, — ошибка в условии отбора зацепит нужные документы.

Как выбрать способ массовой пометки?

Внешние обработки и расширения конфигурации

Когда штатных средств не хватает (нестандартный отбор, пометка подчинённых объектов, своя логика), применяют внешние обработки.

Способы подключить внешнюю обработку (.epf):

  • разово — Файл → Открыть и указать файл обработки. Платформа в безопасном режиме попросит разрешить небезопасные операции; соглашайтесь только для файла из доверенного источника;
  • постоянно — зарегистрировать в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Для этого должен быть включён флаг использования дополнительных обработок в этом же разделе.

Расширения конфигурации (появились в платформе 8.3.6) подключают через Администрирование → Печатные формы, отчёты и обработки → Расширения. После загрузки файла .cfe обновление конфигурации базы данных — отдельный шаг, платформа предложит его выполнить.

Внешняя обработка выполняет код в вашей базе. Берите её только у проверенного поставщика и сначала проверяйте на копии базы. Чужой файл из интернета способен изменить данные непредсказуемо.

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

Почему не стоит помечать документы напрямую через SQL

Соблазн понятен: в клиент-серверной базе на СУБД таблицы документов лежат в базе данных, и поле признака удаления можно было бы переключить запросом UPDATE. Делать так в рабочей базе нельзя.

Причины:

  • Имена таблиц и полей скрыты. Платформа хранит документы в таблицах вида _Document123 с техническим полем-признаком удаления. Соответствие «метаданные → таблица» платформа держит внутри себя и меняет его при реструктуризации. Запрос, написанный под один релиз, после обновления попадёт не в ту таблицу.
  • Нет контроля ссылок. Прямой UPDATE ничего не знает о подчинённых записях и регистрах. Вы пометите документ, но его движения и связанные объекты останутся рассогласованными.
  • Потеря поддержки и целостности. Любое прямое изменение данных в обход платформы — повод для отказа в поддержке и прямой путь к порче базы.

Если задача — именно подобрать документы по сложному SQL-условию, правильный путь другой: получить список запросом только на чтение (например, через консоль запросов), выгрузить идентификаторы, а пометку поставить штатной обработкой из списка выше. Данные меняет платформа, а не прямой запрос к СУБД.

Проверка ссылок перед удалением

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

Контроль ссылок работает так: прежде чем удалить помеченный объект, платформа ищет по всей базе ссылки на него из других документов, справочников и регистров. Если на документ кто-то ссылается, удалить его без разрешения ссылки не получится — иначе в базе появились бы «висящие» ссылки на несуществующий объект.

Что показывает проверка:

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

По второму списку нужно принять решение по каждому объекту: либо снять пометку и оставить документ, либо сначала разобраться со ссылающимися объектами (перепровести, перенести, тоже пометить). Отчёт о найденных ссылках платформа формирует прямо в окне удаления — по нему видно, какой документ держит объект.

Перед удалением помеченных объектов
Выполнено: 0 / 4

Физическое удаление помеченных объектов

Окончательно убирает данные отдельная обработка: Администрирование → Обслуживание → Удаление помеченных объектов. Альтернативно — Все функции → Стандартные → Удаление помеченных объектов.

Порядок:

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

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

Про режим доступа. В старых версиях удаление требовало монопольного (исключительного) режима — всех пользователей приходилось выгонять из базы. В актуальных типовых конфигурациях обработка работает в обычном многопользовательском режиме, но смысл проводить её в тихое время сохраняется: так ниже риск, что кто-то в параллельной сессии сошлётся на удаляемый документ.

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

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

Иногда пометка не ставится или объект не удаляется, хотя всё сделано правильно. Типичные причины:

  • Дата запрета изменения. Если документ попадает в закрытый период, платформа не даст ни распровести его, ни поставить пометку. Проверьте настройку в Администрирование → Настройки пользователей и прав → Даты запрета изменения. Для разовой операции дату запрета временно сдвигают, затем возвращают.
  • Нет прав. Роль пользователя может не разрешать интерактивную пометку на удаление или запуск удаления помеченных объектов. Права настраивает администратор в профилях доступа.
  • Объект предопределённый. Предопределённые элементы справочников (создаются при разработке конфигурации) пометить на удаление штатно нельзя — так и задумано.
  • На документ ссылаются. Пометить можно, а вот физически удалить — только после снятия всех ссылок. Это не ошибка, а контроль целостности.

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

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

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

Чем пометка на удаление отличается от самого удаления?
Пометка — обратимый признак «кандидат на удаление»: документ остаётся в базе, но распроводится и выводится из движений. Удаляет объект физически только обработка «Удаление помеченных объектов» с контролем ссылок.
Как снять пометку сразу с нескольких документов?
Так же, как ставили: выделить строки в списке и нажать Delete повторно, либо в групповой обработке выбрать действие «Снять пометку удаления».
Почему помеченный документ не удаляется?
На него есть ссылки из других объектов. Обработка удаления покажет, кто ссылается. Пока ссылки не сняты (документ перепроведён, ссылающийся объект изменён или тоже помечен), объект останется в базе.
Можно ли удалить помеченные объекты, не выгоняя пользователей?
В актуальных типовых конфигурациях — да, обработка работает в обычном режиме. Но запускать её лучше при минимальной активности, чтобы в параллельных сеансах не возникали новые ссылки на удаляемые объекты.
Что будет с движениями по регистрам при пометке?
При установке пометки проведённый документ автоматически распроводится, и его движения из регистров убираются. При снятии пометки проведение нужно восстановить вручную — заново провести документ.