Очистка базы средствами SQL (управляемое приложение)

21.07.15

База данных - Чистка данных

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Очистка базы средствами SQL (управляемое приложение)
.epf 21,10Kb
494
494
3 SM
Скачать Купить за 2 450 руб.

Друзья, всем бобра и счастья!

Дисклеймер! Политика 1С не разрешает никакие манипуляции с данными напрямую средствами СУБД, только средствами платформы! Поэтому качать, смотреть, думать,  а уж тем более запускать эту обработку категорически нельзя. (или можно, но только ночью, обязательно завесив окна, выключив свет и закрывшись на семь замков). Шутка, конечно же. Просто в случае безвозвратной потери данных виноваты будете Вы и только Вы. Минздрав предупредил.

Цель написания обработки единственная: создание БД для разработчика в максимально короткие сроки путем обрезки базы до минимума, необходимого для работы. Никакая целостность не проверяется и не гарантируется. Возможно, кто-то уже сталкивался с проблемой в больших компаниях, когда база 1С весит сотни гигов (по несколько млн документов в год), и развернуть каждому программисту в отделе по отдельной копии просто физически невозможно. И не рентабельно. Лучшее решение - обрезать базу, оставив в ней данные лишь за небольшой период. Но удаление большого числа объектов средствами 1С занимает очень много времени.

В качестве статистики приведу пример. 1С у меня удаляет данные со скоростью ~25 000 объектов/час, Обработка - ~2 000 000 объектов за 20 минут. Разница налицо, как говорится.

За основу идеи была взята обработка //infostart.ru/public/122546/ . За что огромное спасибо автору и долгих лет жизни. К сожалению, столкнулся с единственной проблемой - скорость работы. Поэтому решил полностью изменить алгоритм.


Как пользоваться обработкой?

Аутенфикация 

Некоторые данные для аутенфикации подтягиваются автоматически из строки соединения с ИБ, но они совсем не всегда совпадают. Поэтому необходимо ввести имя именно своего сервера SQL.

Для проверки корректности данных есть кнопочка "Проверить подключение".

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

 

Удаление

Удаление возможно частичное или полное.

Обработка позволяет очищать следующие объекты:

  • Документы,
  • Журналы документов,
  • Регистры сведений,
  • Регистры накопления,
  • Регистры бухгалтерии.

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

Частичное удаление производится путем выбора периода удаляемых данных (отбор по полю _Period в БД).

Для Документов также автоматически очищаются таблицы, содержащие данные табличных частей документов.

Для Регистров накопления и бухгалтерии есть возможность выбора действия обработки виртуальных таблиц (Итоги, Обороты...). По хорошему, в идеале лучше всего виртуальные таблицы очищать полностью, после чего из Конфигуратора запускать Тестирование и исправление с галкой "Пересчет итогов".

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

Команда "Очистить всё" последовательно проходит по всем страницам обработки и выполняет действия в зависимости от выбранных параметров.

очистка свертка базы свёртка sql 1c тонкий клиент управляемое приложение такси

См. также

Чистка данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 10 1С:Управление торговлей 11 Платные (руб)

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 04.10.2023, версия 4.2)

9600 руб.

22.02.2013    137430    253    144    

424

Чистка данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3.0, УНФ, Розница 2.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

3582 руб.

16.03.2015    126498    190    77    

227

Чистка данных Программист Пользователь Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Обработка позволяет удобно и выборочно удалить данные из базы 1С. Это могут быть как неиспользуемые элементы справочников, так и неактуальные организации. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся.

3350 руб.

28.11.2019    25151    52    16    

67

Оптовая торговля Логистика, склад и ТМЦ Чистка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если вы начали работать в программном продукте Управление Торговлей, редакция 11 или Комплексная Автоматизация редакция 2 и включили механизм учёта серий, то перейти обратно в учёт без серий будет не так-то просто. Сложность заключается в том, что нужно очистить серии в табличной части документа, например, Реализация Товаров и услуг. Предлагаем алгоритм перехода на учет без серий для программного продукта УТ11. (Очистка серий.)

2400 руб.

09.04.2019    28692    41    14    

43

Чистка данных Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данные обработки помогут Вам быстро и просто выполнить перезапись любых ссылочных объектов, а также провести/снять с проведения документы с возможностью выбора регистров и произвольными отборами, в Ваших базах 1С на платформах 8.1-8.3. Обработка позволят найти документы с движениями или без них. Все это дает Вам мощный инструмент для работы. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А также обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! Данные обработки входят в ТОП-100 продаж, что является залогом популярности, надежности в работе, и признанием других покупателей.

7200 руб.

17.09.2013    804132    56    51    

93

Чистка данных Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если в вашей информационной базе крутится очень много данных, или база должна быть доступна 24/7 (как в моем случае), или же вы боитесь запускать тестирование и исправление, НО существует потребность удалить битые ссылки, тогда эта обработка сможет Вам помочь. Обработка выявляет битые ссылки как в самих объектах метаданных, так и в их табличных частях(!), а так же может их удалить.

2400 руб.

23.08.2021    9616    16    3    

22

Чистка данных Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

1200 руб.

06.02.2012    36054    362    30    

31

Чистка данных Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

1200 руб.

21.01.2022    7470    6    6    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DoctorRoza 27.05.15 08:57 Сейчас в теме
Удаление возможно частичное или полное.


Ну частичное да, а вот полное .. может просто конфу скопировать!? :)
3. stsasha87 135 27.05.15 10:17 Сейчас в теме
(1) DoctorRoza, имеется ввиду по объектам метаданных. Удалить полностью за весь период, либо отобрать. Я у себя наиболее используемые документы оставлял за полгода, ненужные - сносил полностью:)
35. jefjef 10 02.08.19 09:10 Сейчас в теме
(1)
Если просто скопировать конфу и развернуть из нее новую базу, она потеряет преемственность со старой. Я это проходил, внутренние идентификаторы предопределенных объектов меняются и потом из старой подкинуть что либо средствами xml становится весьма геморно, например перекидываешь обороты по бухучету и у тебя дублируется план счетов, причем предопределенные счета. Это очень мило, ведь 1С-ка когда такое замечает сразу захлопывается.
2. TTSTV 27.05.15 09:10 Сейчас в теме
Очищать виртуальные таблицы нельзя, т.к. их нет. Если речь о пересчете итогов, то там только одна таблица - собственно, сами итоги. Таблицы оборотов нет.
Ну и пересчитывать итоги после такого грубого вмешательства нужно не "по хорошему", а обязательно.
4. stsasha87 135 27.05.15 10:40 Сейчас в теме
(2) TTSTV, если взять регистр накопления(остатки или обороты), то нужно всегда помнить, что в базе sql помимо основной таблицы с данными лежит еще таблица с итогами (либо оборотами), которая скорей всего в разы больше основной. А у регистров бухгалтерии и не одна (ИтогиПоСчетамССубконто1, ИтогиМеждуСчетами, ИтогиПоСчетам...).
Я тоже считаю, что после такой чистки запуск ТиИ пересчета итогов и переиндексации обязательны. Но возможность удалять данные из виртуальных таблиц частично я всё же оставил.
ТиИ приходится оставлять на ночь, в моем же случае вопрос времени критичнее достоверности данных, поэтому я чистил "по-быстрому" :-)
Но, опять же, после пересчета итогов и переиндексации получится еще и приличная экономия места.
5. Операция1Ы 53 29.05.15 10:16 Сейчас в теме
(4) чтобы итоги не пересчитывать можно после "обрезания" выгрузить и загрузить дтшник средствами платформы, для базы в 100гб операция загрузки занимает примерно 4 часа, выгрузка около часа, но это если не совсем уж дохлый комп.
6. Yula89 2 02.06.15 08:10 Сейчас в теме
(4) думаю, что для торга могло бы быть актуально)
7. polyplastic 03.06.15 13:24 Сейчас в теме
Автору респект. Тоже делал подобное для тестовых баз.
И совет для удаления больших таблиц: если удаляется бОльшая часть таблицы, выгоднее сделать копию нужной части данных, очистку таблицы TRUNCATE и копирование обратно. Дело в том, что если у вас одна таблица допустим весит 40Гб, при удалении 95% ее содержимого лог базы данных вырастет примерно на 150Гб.
Roman_SE; +1 Ответить
8. stsasha87 135 04.06.15 11:08 Сейчас в теме
(7) polyplastic, спасибо:) дада, сталкивался с переполнением логов, поэтому удаление данных таблицы делаю в одной транзакции. Копирование+транкейт+копирование обратно как-нибудь попробую на досуге, интересна скорость отработки данного метода.
24. nicxxx 254 09.08.18 20:18 Сейчас в теме
(7) Чтобы не рос лог транзакций, надо удалять пакетами. Это если через Delete From. При этом надо запускать каждый пакет в фоновом процессе. Помогает ускорить процесс довольно заметно.
9. WWWWW 10 08.06.15 10:29 Сейчас в теме
10. Anzhey 17 17.06.16 12:54 Сейчас в теме
11. vodorosl 71 13.09.16 19:47 Сейчас в теме
И кто из вас украл обработку у другого?????????
При сравнении 1с-ка показывает что они полностью идентичны.
12. vodorosl 71 15.09.16 13:12 Сейчас в теме
СТОП. Прошу прощения отбой ;))
Сборщик писем подставил - повторно скачал первую обработку :)
13. vodorosl 71 16.09.16 16:28 Сейчас в теме
Таб/части справочников удаляет?
14. stsasha87 135 20.09.16 17:26 Сейчас в теме
(13) forsagforsag, удаляет) По алгоритму сначала производится удаление табличных частей, а потом и самих документов
15. sanfoto 502 08.11.16 15:10 Сейчас в теме
Обработка ГУД)) Мне помогло Автору респект

ДО ЭТОГО - пробовал очистить регистр сведений (около 10 миллионов записей - SQL на дохлой тачке) - методом копирования Регистра в конфигураторе и удаления Исходного.... так вот отваливался Конфигуратор по таймауту (потом доперло что "Администрирование/Параметры информационной базы.../ Время ожидания блокировки.." - скорей всего бы помогло )

Надоело экспериментировать... да и время кончилось... начальника ругалась))) скачал обработку выбрал регистр ... поставил галку "Удалить полностью (Truncate table)".
16. Kontakt 109 16.11.16 07:12 Сейчас в теме
Формируется остатки на начало периода? если задан период
17. stsasha87 135 16.11.16 18:19 Сейчас в теме
(16) Kontakt, если задается период, то удаляются данные только за этот период. Без формирования остатков. Это не свёртка, а очистка :-)
18. Kontakt 109 16.11.16 19:13 Сейчас в теме
(17) stsasha87, Свертку сделал на 31.12.2015 23:59:59 как теперь обрезать и не затронуть. Если период ставится в обработке лишь датой. 30.12.15 ?
19. dimaxx 42 21.12.16 09:54 Сейчас в теме
(18) Распроведи и перенеси документы свертки на 01.01.2016. потом зачисть и верни все обратно.
20. lexi 1 17.02.17 15:24 Сейчас в теме
ДД! в конфигурации Документооборот будет работать?
21. stsasha87 135 17.02.17 15:59 Сейчас в теме
(20) Насколько я помню, в Документогороде большинство "документов" - это элементы справочников. У которых "Период" - это отдельный реквизит, который на sql-е скорей всего называется как _FldXXXX, а не _Period. Поэтому если делать частичное удаление по периоду, то надо сначала уточнить имя реквизита в субд и поправить в обработке. А так не вижу помех, но обязательно сначала всё пробовать на копии!
22. Roman_SE 9 17.02.18 10:34 Сейчас в теме
Табличные части документов также как оригинальная чистит муторно и долго или переписано? Оригинальная офигевала если документов заказ покупателя под миллион... очень долго чистила даже с таймаутами дикими.
23. ilias1210 08.08.18 17:34 Сейчас в теме
Добрый день. Данная обработка может работать много поточно? т.е. запустить из разных сеансов удаление разных регистров?
26. stsasha87 135 03.09.18 13:20 Сейчас в теме
(23)
Добрый день. Данная обработка может работать много поточно? т.е. запустить из разных сеансов удаление разных регистров?


Да, конечно. Никто никому мешать не будет, если удалять разные регистры.
25. savilovoa 31.08.18 14:31 Сейчас в теме
Добрый день!

А данную обработку как можно переделать, чтобы через скрип запустить?

Олег
27. stsasha87 135 03.09.18 13:22 Сейчас в теме
(25) Не совсем понял, зачем через скрипт. Если нужно какое-то периодическое удаление, можно посмотреть код и по аналогии сделать регламентное задание по удалению данных за период.
28. savilovoa 17.09.18 09:45 Сейчас в теме
Для автоматизации. Думаю сделать обрезание данные и формирование БД для разработчика по скрипту. Возможно повешу это на запуск от веб-сервиса - разработчик вводит только что ему нужна свежая БД и получает ее, не имея доступа к серверам SQL и т.д.
29. stsasha87 135 18.09.18 16:03 Сейчас в теме
(28) Я бы это делал тогда совсем без участия 1С) Скрипт на sql с примерно таким алгоритмом:
1) Транкейтим таблицы Версии объектов и им подобные регистры с ненужными данными
2) Идем по таблицам документов. Отбираем их по DocumentХХХХ и делаем delete по периоду
3) Идём по таблицам регистров накопления, хозрасчетным.... Аналогично делаем delete по периоду. Не забывая про виртуальные таблицы.
и т.д.

И запускать такой скрипт сразу после разворачивания копии базы для разработчика. Всё на стороне субд.
30. Timur.V 79 24.09.18 20:00 Сейчас в теме
Скачал обработку, но есть пожелание:
сделать возможным удалять документы и все регистры по этим документам. А не отдельно документы и отдельно регистры.

Была задача: удалить из базы все документы и связанные с ними регистры (любые). Остальное (справочники) в базе оставить.
31. rklimat 14.03.19 15:58 Сейчас в теме
Спасибо! Очень помогла обработка.
Только вот нет очистки таблицы изменений.
32. belovo3000 42 22.03.19 09:21 Сейчас в теме
не рабортает! В регистрах сведение как были записи так и остались!
33. bulpi 216 31.03.19 12:51 Сейчас в теме
Все бы хорошо, но автор погнался за красотой в ущерб эффективности. Для того, чтобы на форме сделать прогресс-бар, он каждый раз заново создает connection и заново его закрывает для каждого вида документа и регистра. 180 видов документов * 30 секунд на эту лабуду - получилось лишних 1.5 часа. Но можно допилить напильником :)
34. Исключение 41 12.04.19 00:30 Сейчас в теме
Подскажите. Под PostgreSQL что-то подобное есть?
36. jefjef 10 02.08.19 17:17 Сейчас в теме
В принципе годная вещь. Мне нужно было грохнуть все доки с движениями в базе размером 160 гиг. За несколько часов управился. Единственное что осталось недочищенным - последовательности. Особенно партионный учет поднапрягает. Через конфигуратор уже чистится черти сколько, оставлю на ночь - пусть маслает.
37. jefjef 10 02.08.19 17:33 Сейчас в теме
(36)
и очистки регистров расчета не хватает
38. user1401202 08.05.20 12:36 Сейчас в теме
А где в 1С найти строку подключения?
39. rush52 03.11.20 11:19 Сейчас в теме
Можно удалить документы с движениями? Т.е. нужно удалить не все записи регистра накопления, а только те, которые формируют удаляемые документы
40. UPKA 29.11.22 11:48 Сейчас в теме
Подскажите, обработка работает только с MSSQL или с PostgreSQL тоже?
41. stsasha87 135 30.11.22 10:22 Сейчас в теме
(40) Делалось для MS SQL. Можно попробовать в коде в строке подключения указать другой драйвер, типа

СтрокаСоединения = "DRIVER={PostgreSQL Unicode}; Data Source=PostgreSQL35W; SERVER=srv1; PORT=5432; DATABASE=parser; UID=sauser; PWD=qwerty";
Соединение = ОткрытьПодключение(СтрокаСоединения, 120);


Запросы идентичны, теоретически должно заработать.
42. yusta 29.12.22 19:42 Сейчас в теме
А никто не подскажет, как в этой обработке прикручена локальная справка обработки? Магия какая-то ...
43. frkbvfnjh 800 06.06.24 12:48 Сейчас в теме
Для Подчиненных возможен отбор по периоду регистратора
А для периодических не подчиненных нет возможности удаления за период? В чем там сложность если не секрет?
Оставьте свое сообщение