Наши преимущества

Иконка ресурса

122546_Очистка_базы_средствами_SQL_от_8_1_до_8_3 epf 2021-10-12

Очистка базы средствами SQL (от 8.1 до 8.3)​

122546_Очистка_базы_средствами_SQL_от_8_1_до_8_3 epf
Быстрая очистка базы 1С средствами SQL. Область применения: Любая конфигурация 1С


Помните, что манипулирование данными посредством SQL-запросов запрещено политикой фирмы 1С.
Итак, описание обработки.
Бывают нередко случаи, когда ваши базы данных хранятся на SQL-сервере и необходимо подготовить одну из баз определенным образом, очистив не нужные данные из нее. И тут на помощь придет данная обработка. С ее помощью вы сможете:
1) Удалить документы:
- Удалить все документы из базы, либо интересующий вас вид документов.
- Удалить документы за определенный период
- Удалить документы по Организации
2) Удалить справочники
3) Удалить регистры сведений
4) Удалить регистры накопления, регистры бухгалтерии, регистры расчета.
5) Очистить последовательность документов, бизнес-процессы, задачи
Обновление (03.04.2012)
Обновлена обработка.
Добавлено удаление по определенному документу!!!. Вид документа можно выбирать, либо из списка документов, либо, если отмечено все, то самим выбирать вид документа при выборе.
Обновление (28.11.2012)
Добавлена версия для платформы 1С 8.1
Обновление (13.12.2012)
Добавлены дополнения к объектам метаданных выводимых на форме, а именно:
- Добавлено наименование таблицы в терминах СУБД (имя таблицы в SQL-сервере)
- Добавлен размер занимаемый таблицей в SQL-сервере
Обновление (23.10.2013)
- Добавлено удаление элементов справочников с отбором по реквизитам удаляемого справочника
- Добавлено удаление записей регистров накопления за период
- Исправлены некоторые ошибки при работе
Обновление (18.11.2013)
- Добавлено удаление документов "Только помеченные на удаление", т.е. удаление документов с признаком ПометкаУдаления = ИСТИНА
Обновление (09.02.2015)
Небольшая доработка:
- Добавлена возможность "Не ограничивать время ожидания выполнения команды SQL", понадобится тем, у кого большие объемы данных хранятся в регистрах и при попытке их удалить приходит ответ от сервера SQL "... время ожидания истекло ..."
Обновление (27.05.2016)
Доработка:
- Добавлена возможность "Не ограничивать время ожидания выполнения команды SQL" для всех объектов конфигурации, а не только для регистров накопления.
Обновление (06.06.2016)
Доработка:
- Исправлена ошибка с удалением справочников.
- Добавлена возможность предварительно проверить соединение с SQL не выполняя каких-либо удалений.
- Исправлены мелкие недочеты.
Обновление (15.09.2016)
Доработка:
- Изменен механизм удаления документов, теперь документы можно удалять по произвольным отборам.
- Исправлены ошибки с запросом размеров таблиц SQL по регистрам сведений, накопления, бухгалтерии.
- Исправлены мелкие недочеты.
Обновление (16.09.2016)
Доработка:
- Добавлено удаление табличных частей справочников при удалении элементов справочников.
Обновление (07.02.2017)
Доработка:
- Добавлена обработка для управляемых форм ( также для режима такси).
- Механизм отборов реализован через средства СКД
Ограничения в версии для управляемых форм:
- На данный момент работает лишь удаление с произвольным отбором документов и справочников.
Добавление удаления с произвольным отбором регистров сведений, накопления, бухгалтерии будет добавлено позже.
Важное: После того, как удалите какие-либо данные из базы, с помощью данной обработки, необходимо обязательно выполнить "Тестирование и Исправление" конфигурации.


Очистка базы средствами SQL (управляемое приложение). Полная и частичная. Любая конфигурация 1С 8.2, 8.3. Тонкий клиент, управляемое приложение, Такси
346488_ОчисткаБазыСредствамиSQL_тонкийклиент.epf

Друзья, всем бобра и счастья!
Дисклеймер! Политика 1С не разрешает никакие манипуляции с данными напрямую средствами СУБД, только средствами платформы! Поэтому качать, смотреть, думать, а уж тем более запускать эту обработку категорически нельзя. (или можно, но только ночью, обязательно завесив окна, выключив свет и закрывшись на семь замков). Шутка, конечно же. Просто в случае безвозвратной потери данных виноваты будете Вы и только Вы. Минздрав предупредил.
Цель написания обработки единственная: создание БД для разработчика в максимально короткие сроки путем обрезки базы до минимума, необходимого для работы. Никакая целостность не проверяется и не гарантируется. Возможно, кто-то уже сталкивался с проблемой в больших компаниях, когда база 1С весит сотни гигов (по несколько млн документов в год), и развернуть каждому программисту в отделе по отдельной копии просто физически невозможно. И не рентабельно. Лучшее решение - обрезать базу, оставив в ней данные лишь за небольшой период. Но удаление большого числа объектов средствами 1С занимает очень много времени.
В качестве статистики приведу пример. 1С у меня удаляет данные со скоростью ~25 000 объектов/час, Обработка - ~2 000 000 объектов за 20 минут. Разница налицо, как говорится.
За основу идеи была взята обработка Как увидеть ссылки? | How to see hidden links? . За что огромное спасибо автору и долгих лет жизни. К сожалению, столкнулся с единственной проблемой - скорость работы. Поэтому решил полностью изменить алгоритм.

Как пользоваться обработкой?
Аутенфикация

Некоторые данные для аутенфикации подтягиваются автоматически из строки соединения с ИБ, но они совсем не всегда совпадают. Поэтому необходимо ввести имя именно своего сервера SQL.
Для проверки корректности данных есть кнопочка "Проверить подключение".
Тайм-ауты можно оставить как есть. 30 сек для подключения, 1ч на выполнение запроса в СУБД. Если в процессе удаления появится ошибка "(Microsoft OLE DB Provider for SQL Server): Query timeout expired", значит, необходимо увеличить тайм-аут выполнения запроса, т.к. слишком много данных, и СУБД не успела их почистить.

Удаление
Удаление возможно частичное или полное.
Обработка позволяет очищать следующие объекты:
  • Документы,
  • Журналы документов,
  • Регистры сведений,
  • Регистры накопления,
  • Регистры бухгалтерии.
Полное удаление выполняется быстро через команду TRUNCATE TABLE.
Частичное удаление производится путем выбора периода удаляемых данных (отбор по полю _Period в БД).
Для Документов также автоматически очищаются таблицы, содержащие данные табличных частей документов.
Для Регистров накопления и бухгалтерии есть возможность выбора действия обработки виртуальных таблиц (Итоги, Обороты...). По хорошему, в идеале лучше всего виртуальные таблицы очищать полностью, после чего из Конфигуратора запускать Тестирование и исправление с галкой "Пересчет итогов".
Для Регистров сведений есть возможность выбора Подчиненных или Независимых. Для Подчиненных возможен отбор по периоду регистратора.
Команда "Очистить всё" последовательно проходит по всем страницам обработки и выполняет действия в зависимости от выбранных параметров.

Автор
Lilix
Скачивания
16
Просмотры
384
Первый выпуск
Обновление
Рейтинг
0.00 звёзд Оценок: 0
Верх