Физическое удаление помеченных документов и справочников в 1С 7.7

· 9 мин

Содержание

Помеченный на удаление объект в 1С 7.7 остаётся в базе до тех пор, пока вы не запустите отдельную обработку. Физически документы и справочники удаляет пункт Операции → Удаление помеченных объектов в режиме 1С:Предприятие — и только монопольно, когда в базе больше никого нет.

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

Разберём весь путь: от прав пользователя и пометки объектов до запуска обработки, разбора ошибок блокировки и упаковки таблиц, которая реально освобождает место на диске.

Чем пометка отличается от физического удаления

В 1С 7.7 удаление двухэтапное, и это сделано специально.

Сначала объект помечается — ставится логический флаг. Документ или элемент справочника при этом никуда не исчезает: он остаётся в журнале, продолжает участвовать в проводках и ссылках, просто получает перечёркнутый значок. Такую пометку можно снять в любой момент.

Физически строку из таблиц базы убирает уже отдельная обработка. Она проходит по всей базе, собирает все помеченные объекты и пытается их удалить — но с проверкой: не ссылается ли на них что-то непомеченное.

Двухэтапность спасает от случайной потери данных. Пока вы не запустили обработку, любую ошибочную пометку можно отменить тем же Del.

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

Зачем вообще чистить базу:

  • 🗂️ ошибочно заведённые документы и дубли справочников засоряют журналы и списки выбора;
  • 🐌 в файловой (DBF) базе лишние записи раздувают таблицы и тормозят работу;
  • 🔗 «висящие» неверные элементы мешают контролировать остатки и взаиморасчёты.

Откуда вообще берутся помеченные объекты в рабочей базе:

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

Накопив десятки и сотни таких объектов, базу периодически чистят. И вот тут важно действовать аккуратно.

Физическое удаление необратимо. Прежде чем запускать обработку, сделайте резервную копию базы. Для DBF-версии достаточно скопировать каталог базы целиком, для SQL-версии — сделать бэкап базы средствами SQL Server.

Права и монопольный режим: без чего обработка не стартует

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

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

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

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

Проверить, кто ещё держит базу, в 1С 7.7 помогает режим Монитор — отдельный режим запуска той же базы (наряду с 1С:Предприятие и Конфигуратором). Он показывает список активных пользователей и их текущие действия. Удобно открыть его перед удалением и убедиться, что список пуст, — тогда обработка точно стартует в монопольном режиме.

Порядок подготовки удобно держать перед глазами:

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

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

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

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

  1. нажмите клавишу Del, либо
  2. вызовите Действия → Пометить на удаление (в контекстном меню по правой кнопке мыши пункт тоже есть);
  3. подтвердите пометку в появившемся запросе.

После этого строка получает характерный перечёркнутый значок — это и есть признак пометки. Снимается она ровно так же: Del на помеченной строке → подтверждение → значок возвращается в обычный вид.

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

И про группы (папки) справочников. Если помечаете группу, проследите за её содержимым: группа с непустыми вложенными элементами физически не удалится, пока сами элементы не перенесены в другую папку или тоже не помечены. Иначе на этапе контроля ссылок группа окажется в списке «удалить нельзя».

Что полезно помнить при массовой чистке:

  • 📋 пометить несколько строк за раз можно, выделив их мышью с зажатым Ctrl или Shift;
  • 🔁 если помечаете документ, по которому уже есть зависимые документы (например, оплату по удаляемой накладной), они физически не удалятся, пока вы не пометите или не перенаправите и их — об этом ниже, в разделе про контроль ссылок;
  • 👀 просмотреть, что именно помечено по всей базе, проще уже на этапе самой обработки — она соберёт полный список.

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

Запуск обработки и контроль ссылок

Когда база свободна и копия сделана, в режиме 1С:Предприятие выберите Операции → Удаление помеченных объектов.

Дальше обработка работает в два прохода:

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

Проход 2. Контроль ссылок. Это ключевой момент 1С 7.7. Перед удалением обработка проверяет ссылочную целостность: ищет, не ссылается ли на помеченный объект что-то непомеченное. Если ссылается — такой объект удалён не будет.

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

Что показываетЧто это значит
Объекты можно удалитьНа них никто не ссылается из непомеченных — удалятся физически
Объекты удалить нельзяНа них есть ссылки; показаны объекты-«держатели» ссылок

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

Разберите вторую часть списка. Варианты действий, когда объект держат ссылки:

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

Когда список «к удалению» вас устраивает, подтвердите удаление. После этого объекты физически убираются из таблиц базы.

Чем крупнее база, тем дольше идут оба прохода. На большой DBF-базе удаление может занять десятки минут — не прерывайте процесс и не выключайте компьютер на середине.

Типичные ошибки и как их снять

Большинство проблем при удалении помеченных объектов в 1С 7.7 сводится к трём ситуациям.

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

Отдельно про файловую (DBF) базу: если список и журналы ведут себя странно — пустые строки, сбитый порядок, ошибки при открытии, — перед удалением стоит выполнить тестирование и исправление базы (см. следующий раздел). Удаление по «битой» базе может завершиться ошибкой на середине.

Упаковка таблиц: освобождаем место после удаления

Здесь версии 1С 7.7 ведут себя по-разному, и это важно.

Файловая (DBF) версия. Даже после успешного удаления записи физически остаются в DBF-файлах, помеченные как удалённые внутри самой таблицы. Размер файлов на диске не уменьшается, и скорость работы сразу не вырастет. Чтобы реально освободить место, базу нужно «упаковать».

Для этого служит режим Тестирование и исправление информационной базы. Запускают его монопольно, по той же свободной базе, и в настройках включают упаковку таблиц и переиндексацию. После упаковки:

  • из DBF-файлов физически вычищаются удалённые записи;
  • перестраиваются индексы (CDX);
  • размер базы на диске заметно падает.

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

Сколько это занимает — зависит от размера базы: от пары минут на небольшой базе до получаса и больше на крупной, активно работающей DBF-базе. Процесс монопольный, так что планируйте его на время, когда пользователи не работают.

Упаковку таблиц полезно делать не только после удаления, но и планово — например, раз в месяц на регулярно работающей DBF-базе.

SQL-версия (на MS SQL Server). Здесь физическим размещением данных управляет сервер. После удаления помеченных объектов место внутри файлов базы освобождается силами SQL Server; отдельной «упаковки таблиц» средствами 1С 7.7 здесь не требуется. Если нужно уменьшить файл на диске и ускорить работу, администратор SQL обычно перестраивает индексы и при необходимости сжимает базу средствами самого сервера.

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

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

Можно ли вернуть объект, если его уже удалили физически?
Нет. Физическое удаление необратимо. Восстановить можно только из резервной копии, сделанной до запуска обработки. Поэтому копия перед удалением — обязательна.
Почему объект помечен, но обработка его не удаляет?
На него ссылается непомеченный документ или элемент. Контроль ссылок показывает такие объекты отдельно, вместе с держателями ссылок. Пометьте держателей или исправьте в них ссылку и перезапустите удаление.
Нужно ли выгонять всех пользователей из базы?
Да. Удаление помеченных объектов работает только монопольно. Пока в базе есть хотя бы один активный сеанс, обработка не запустится.
Чем отличается удаление в DBF- и SQL-версии?
Сам порядок пометки и запуска обработки одинаков. Разница в финале: DBF-базу после удаления нужно упаковать через тестирование и исправление, чтобы освободить место, а в SQL-версии размещением данных управляет сервер.
Удалил много документов, а база на диске не уменьшилась — это нормально?
Для DBF-версии — да, пока вы не выполнили упаковку таблиц. Именно упаковка физически убирает удалённые записи из файлов и сокращает размер базы.