Как удалить данные и очистить базу в 1С Розница 2.3

· 9 мин

Содержание

Штатный способ убрать данные в 1С Розница 2.3 — пометить объект на удаление, а затем запустить обработку Удаление помеченных объектов. Схема из двух шагов: сначала пометка (её в любой момент можно снять), потом окончательное удаление с контролем ссылок. Напрямую стереть документ одной кнопкой в программе нельзя — и это защита от потери связанных данных.

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

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

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

Чтобы убрать один документ, его сначала помечают на удаление:

  1. Откройте нужный список — например, Продажи → Чеки ККМ или Закупки → Поступления товаров.
  2. Выделите строку с документом.
  3. Нажмите клавишу Delete либо команду Ещё → Пометить на удаление / Снять пометку.
  4. У строки появится значок с красным крестиком — объект помечен, но пока остаётся в базе.

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

Сначала отмена проведения, потом пометка

Проведённый документ сформировал движения: остатки товаров, продажи, взаиморасчёты. Если просто пометить его на удаление, движения какое-то время остаются в регистрах и портят отчёты. Поэтому порядок такой:

  1. Выделите документ в списке и выполните Ещё → Отменить проведение (или откройте документ и отмените проведение в его командной панели).
  2. Убедитесь, что движения сняты.
  3. Только теперь помечайте на удаление.

Если удаляете пачку чеков или поступлений, выделите сразу несколько строк мышью с зажатым Ctrl или Shift — и команды «Отменить проведение» и «Пометить на удаление» сработают для всей группы.

Есть нюанс с датой запрета. Если в базе установлена дата запрета изменения данных, отменить проведение и удалить документ «за закрытым» периодом не выйдет — программа не даст. Запрет снимают в разделе Администрирование, в настройках дат запрета изменения, и только с нужными правами.

Массовое удаление через обработку «Удаление помеченных объектов»

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

  1. Откройте Главное меню (значок меню в левом верхнем углу окна).
  2. Если в меню нет пункта Все функции, включите его: Сервис → Параметры → Отображать команду "Все функции".
  3. Перейдите Все функции → Стандартные → Удаление помеченных объектов.

В самой Рознице эта же обработка обычно доступна и из раздела Администрирование в группе обслуживания базы — название пункта в вашем релизе может немного отличаться.

Дальше работает мастер:

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

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

Перед массовым удалением
Выполнено: 0 / 5

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

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

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

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

Порядок для номенклатуры:

  1. Откройте Нормативно-справочная информация → Номенклатура (или раздел с товарами в вашем интерфейсе).
  2. Найдите позицию через поиск по списку.
  3. Пометьте на удаление клавишей Delete.
  4. Запустите удаление помеченных объектов.

Если позиция участвовала хотя бы в одном чеке, поступлении или инвентаризации, напрямую она не удалится — на неё есть ссылки из этих документов. Варианты:

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

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

Отдельно про группы. Справочники в Рознице иерархические — товары и контрагенты разложены по папкам. Если пометить на удаление саму группу, вместе с ней помечаются и вложенные элементы и подгруппы. Это быстрый способ убрать целый раздел каталога, но перед запуском удаления проверьте, что внутри не осталось нужных позиций: контроль ссылок отработает по каждому элементу отдельно, и часть из них, скорее всего, останется из-за ссылок из документов.

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

Присоединённые файлы и удаление самой базы данных

Здесь важно различать два разных «файла».

Присоединённые файлы — это картинки, сканы, документы, которые вы прикрепляли к карточкам и документам. Они хранятся либо внутри базы (тогда растёт её размер), либо в томах на диске. Удаляются как обычные объекты: открываете файл, помечаете на удаление, затем запускаете удаление помеченных объектов. Если база сильно распухла именно из-за вложений, имеет смысл настроить хранение файлов в томах на диске, а не внутри базы — тогда .1CD или таблица SQL перестанут расти от каждого скана.

Чтобы понять, из-за чего именно растёт база, пригодится оценка размеров таблиц. В клиент-серверном варианте её дают средства администрирования сервера, в файловом — косвенно видно по размеру .1CD до и после чистки. Если основной объём дают именно присоединённые файлы, их вынос в тома обычно даёт больший эффект, чем удаление старых документов.

Файл самой информационной базы — это другое. Удалить базу целиком через меню программы нельзя, её убирают из окна запуска 1С:

  1. В стартовом окне со списком баз выделите ненужную базу.
  2. Нажмите Удалить.
  3. Программа уберёт базу из списка, но файлы на диске (папку с 1Cv8.1CD для файловой базы) останутся — их удаляют вручную через проводник.

Перед удалением папки с базой убедитесь, что это действительно ненужная копия, а не рабочая база. Восстановить её можно будет только из резервной копии.

Сокращение журнала регистрации и истории изменений

Со временем базу раздувают не только документы, но и служебные данные.

Журнал регистрации фиксирует все действия пользователей. За годы работы он занимает прилично места. Очищают и сокращают его из Конфигуратора:

  1. Запустите базу в режиме Конфигуратор.
  2. Откройте Администрирование → Настройка журнала регистрации.
  3. Задайте период хранения или сократите журнал, удалив записи старше выбранной даты.

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

История изменений (версионирование объектов) хранит прежние версии документов и справочников — кто и что менял. Если в вашей сборке Розницы версионирование включено, настройки хранения и очистки старых версий находятся в разделе Администрирование среди общих настроек. Там же задают срок, по истечении которого старые версии удаляются автоматически.

Если цель — именно уменьшить размер базы, после массового удаления данных и чистки журнала выполните в Конфигураторе Тестирование и исправление с реструктуризацией. Физически место освобождается не в момент удаления записей, а при реиндексации и сжатии таблиц.

Технические методы: Конфигуратор и почему не стоит чистить через SQL

Конфигуратор помогает навести порядок там, где обычное удаление не справляется.

Тестирование и исправление информационной базы (Администрирование → Тестирование и исправление) умеет находить и удалять объекты с битыми ссылками, пересчитывать итоги, реиндексировать таблицы. Эту операцию запускают в монопольном режиме — то есть когда все пользователи вышли из базы. Монопольный доступ нужен именно для таких служебных процедур: реструктуризации, загрузки .dt, тестирования. Для обычного удаления помеченных объектов монополия не требуется, оно идёт и в рабочем режиме.

Перед Тестированием и исправлением обязательно сделайте резервную копию: Администрирование → Выгрузить информационную базу. Если операция прервётся, копия спасёт данные.

Отдельно про SQL. В клиент-серверном варианте данные Розницы лежат в таблицах MS SQL или PostgreSQL, и возникает соблазн удалить строки напрямую запросом DELETE. Делать так нельзя. Причины простые:

  • Рушится ссылочная целостность. Платформа 1С хранит связи по внутренним идентификаторам. Удалив строку в одной таблице, вы оставляете «висячие» ссылки в десятках других — база начнёт сыпать ошибками.
  • Это не поддерживается. Прямое изменение таблиц в обход платформы нарушает условия работы с базой; при обращении в поддержку такую базу чинить не будут.
  • Не экономит время. Штатная обработка удаления и Тестирование и исправление делают то же самое корректно и с проверками.

Если нужно радикально уменьшить объём (убрать документы за старые годы целиком), для этого есть штатная «свёртка» базы, а не ручные SQL-запросы. Свёртка работает иначе, чем простое удаление: она формирует документы ввода остатков на выбранную дату, а старые документы до этой даты сворачивает. В итоге остатки и взаиморасчёты сохраняются, а объём данных падает. Это более тонкая операция, чем удаление помеченных объектов, и выполнять её стоит на копии базы, предварительно убедившись, что отчёты за закрытый период уже сданы и перепроводить документы не придётся.

Что делать, если удаление не проходит

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

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

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

Чем пометка на удаление отличается от удаления?
Пометка — обратимый шаг: объект остаётся в базе, его можно вернуть, сняв пометку. Удаление помеченных объектов — необратимая операция с проверкой ссылок; после неё данные исчезают.
Можно ли вернуть объект, помеченный на удаление?
Да, пока вы не запустили обработку удаления. Снимите пометку той же командой Ещё → Пометить на удаление / Снять пометку. После окончательного удаления вернуть объект можно только из резервной копии.
Нужен ли монопольный режим, чтобы удалить помеченные объекты?
Нет. Обработка удаления помеченных объектов работает и в обычном режиме. Монопольный доступ нужен другим операциям — Тестированию и исправлению, загрузке базы из .dt, реструктуризации.
Почему размер базы не уменьшился сразу после удаления документов?
Место не освобождается в момент удаления записей. Чтобы таблицы физически сжались, выполните в Конфигураторе Тестирование и исправление с реструктуризацией и реиндексацией.
Удалится ли номенклатура, если по ней были продажи?
Нет. На позицию, которая участвовала в чеках или поступлениях, есть ссылки, и напрямую она не удалится. Либо оставьте её помеченной, либо удаляйте вместе со ссылающимися документами.