Универсальное удаление данных из 1С

Установка обработки

Установка обработки "Универсальное удаление данных из 1С"

Перед тем как приступить к работе с обработкой "Универсальное удаление данных из 1С" нужно первым делом ее установить. Для этого запускаем рабочую конфигурацию, в качестве примера будет использована "Бухгалтерия предприятия 3.0". Переходим в раздел "Администрирование"-"Печатные формы, отчеты и обработки"-"Дополнительные отчеты и обработки" и нажимаем кнопку "Добавить из файла". Выбираем файл обработки, после чего можно нажать кнопку "Выполнить" и приступать к работе.

Добавление обработки
Добавление обработки в конфигурации на обычных формах осуществляется практически аналогично. Отрываем конфигурацию и переходим в раздел "Сервис"-"Внешние печатные формы и обработки"-"Внешние обработки".
Добавление обработки на обычных формах
И чтобы добавить новую обработку необходимо нажать кнопку "Добавить" и следом кнопку "Заменить файл внешней обработки", после чего выбрать файл обработки. После этого, можно приступать к работе.

Добавление обработки

Начало работы

Настройка обработки "Универсальное удаление данных из 1С"

При запуске обработки открывается закладка "Настройки", где расположен выбор одного из двух вариантов работы. 
  • Удаление объектов - основной режим работы обработки, который позволяет произвести универсальное удаление данных из базы 1С;
  • Удаление не используемых объектов - режим работы, который осуществляет строгий отбор и удаление только не используемых объектов информационной базы.
Закладка Настройки
Выбрав один из режимов работы, переходим на закладку "Что и как нужно удалить?", где продолжим настройку обработки перед началом удаления данных. На данной закладке располагается следующий набор реквизитов:

  • Метаданные - указываются метаданные, в которых будет осуществляться выборка объектов для удаления, может принимать значения (справочники, документы, планы видов характеристик, планы счетов, планы видов расчетов, бизнес-процессы, задачи, планы обмена);
  • Вид метаданных - уточняющий реквизит, в котором указывается конкретный вид метаданных, например, справочник "Номенклатура";
  • Способ удаления - выпадающий список выбора различных способов удаления, на текущий момент доступен только вариант полного удаления;
  • Удалять в монопольном режиме - осуществляет удаление в монопольном режиме, что позволяет ускорить процесс удаления большого количества данных;
  • Максимальная глубина поиска - устанавливает уровень поиска максимальной ссылочной зависимости выбранного объекта.По умолчанию максимальная глубина поиска равна 3.
В табличной части "Удаляемый объект" указывается или указываются объекты информационной базы, которые необходимо удалить. С помощью кнопки "Добавить" добавляется один объект, а если необходимо добавить на удаление все объекты выбранного вида метаданных, тогда нужно воспользоваться кнопкой "Заполнить". Кнопка "Очистить" позволяет полностью убрать добавленные объекты из табличной части. Нажав кнопку "Далее", перейдем процессу удаления объектов.

Что и как удалять?
На закладке "Удаление" отображаются все найденные объекты, которые представлены в виде ссылочной зависимости. То есть, на предыдущем шаге были выбраны два вида метаданных, по которым были найдены все зависимые объекты и представлены на удаление. 

Удаление объектов

Данные манипуляции полностью идентичны для использования обработки в конфигурациях на обычных формах.

Очистка базы данных 1С

Очистка информационной базы от ненужной информации

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

Режим работы "Удаление объектов".
Удаление объектов - это режим удаления данных и поиска ссылок на указанные объекты и регистры с последующим удалением этих данных. Режим предназначен для обрезки базы от данных


Режим позволяет выбрать и удалить данные из информационной базы. Для этого нужно настроить отбор на странице "Что и как нужно удалить?".


  • Способ удаления - непосредственное удаление данных (без пометки на удаление). Что нам делать с объектами, которые необходимо удалить из базы. Предполагается либо полное удаление объектов, либо пометка удаления объектов. Для регистров в обоих случаях будет удаление записей, а для констант - очистка значений.
  • Удалять в монопольном режиме - позволяет удалять данные в монопольном режиме, что может значительно уменьшить время выполнения. Позволит удалять данные быстрее за счет того, что больше с базой никто не сможет работать в процессе удаления. Как правило при удалении в базе итак никто не работает.
  • Максимальная глубина поиска - поиск ссылок по ссылкам, по умолчанию поиск осуществляется рекурсивно на глубину равную 3.

На странице "Удаление" можно увидеть данные в виде дерева, которые будут удалены.


Режим работы "Удаление не используемых объектов".
Удаление не используемых объектов - это режим поиска в указанных справочниках/документах данных которые нигде не используются с последующим их удалением. Например, для удаления данных после обрезки, которые уже не используются.


Режим позволяет найти данные, которые нигде не используются (ошибочно заведены). Для этого нужно настроить отбор на странице "Что и как нужно удалить?".


  • Максимальная глубина поиска - поиск ссылок по ссылкам, по умолчанию поиск осуществляется рекурсивно на глубину равную 3. Используется при построении дерева ссылок (рекомендуется значение 10). Пример: если мы выбрали к удалению одну организацию, то на первом уровне поиска мы найдем все данные, которые ссылаются на эту организацию, на втором уровне, мы найдем все объекты и записи регистров которые нашли на первом уровне и т.д. Такой подход поможет найти все что ссылается на удаляемые данные.

На странице "Удаление" можно увидеть данные в виде дерева, которые будут удалены.



Для обычных форм алгоритм работы аналогичный.

Удаление данных используя режим "Скрипт SQL"

Важное отступление

Этот режим удаления необходимо использовать крайне осторожно!
Более того, мы настоятельно не рекомендуем использовать этот режим. Все же это работа на самом низком уровне и может приводить к фатальным последствиям для информационной базы. Но иногда, других вариантов попросту нет. Например, когда информационная база достигает 100 Гб.

Как подготовить скрипт

На первом этапе необходимо заполнить данные, которые мы хотим удалить.
Данные, которые необходимо удалить
Далее, на следующей форме необходимо нажать "Сформировать" и дождаться, когда система построит SQL-запрос:
Сформировать SQL-запрос
Это может занять достаточно продолжительное время, поэтому запаситесь терпением.
Сформированный запрос для MS SQL
После того, как запрос будет сформирован его необходимо скопировать или сохранить в какой-то файл.
На последнем этапе необходимо открыть IDE для базы данных и в нем выполнить запрос.

Выполнить запрос для MS SQL

Для MS SQL необходимо использовать Microsoft SQL Server Management Studio.
Необходимо добавить вручную конструкцию:
USE [ИмяБД]
GO
ИмяБД - имя базы данных для удаления вашей базы 1С.
Либо, необходимо щелкнуть в дереве правой кнопкой на нужную БД и для нее создать новый запрос, тогда запрос будет выполнен на этой БД.
MS SQL Management Studio

Выполнить запрос для Postgresql

Аналогично MS SQL необходимо скачать IDE для управления базами данных Posgresql и выполнить запрос.
В качестве таких инструментов можно использовать: pgAdmin, Datagrip, EMS Studio и т.д. Либо сохранить все в файле и выполнить запрос через psql.

Важно! Лучше сделать это изначально на копии базы данных. Если вы будете удовлетворены результатом, то делайте это на рабочей БД. Имейте это ввиду.

После очистки данных

Обработка "по максимуму собирает связанные объекты" и пытается удалить с программным контролем, который реализован в обработке, но все-таки эта возможность не штатная и возможны ситуации, что не все объекты удалятся/не удалятся с контролем целостности. Поэтому нужно после сделать тестирование и исправление.

Проверка ссылочной целостности

После того как было выполнено удаление данных, необходимо сделать проверку ссылочной целостности конфигурации. В конфигураторе перейдите в раздел: Администрирование -> Тестирование и исправление… -> И установите настройки, которые указаны на скриншоте ниже:


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


Если вы столкнулись с такими ошибками, тогда попробуйте установить максимальную глубину поиска (50), и попробовать запустить обработку удаления снова.
Если в итоге ошибки остались, тогда разберемся, из-за чего они возникают.

Причины возникновения «битых» ссылок:

  • Обращение к удаленным объектам

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

  • Нет прав на удаление объекта

Бывает такое, что в конфигурациях у пользователя нет прав на удаление или пометка на удаление объектов. Следовательно обработка не удаляет те объекты, у которых стоит запрет.


Решение: создать расширение, в котором будет роль с полными правами на удаления объектов. Либо если конфигурация снята с поддержки и разрешено редактирование, то сделайте это без расширения.

Чистка «битых» ссылок после удаления объектов

Процедура аналогична поиску «битых» ссылок только с дополнительными настройками:


После очистки убеждаемся, что «битых» ссылок больше нет.


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

До очистки:


После очистки:

Как видим ссылки на несуществующие объекты очищены.

Далее нужно удалить объекты, которые ранее ссылались на удаленные объекты.


 Начать курс обучения1