gifts2017

Быстрое удаление документов (только для SQL)

Опубликовал Александр Окулов (PowerBoy) в раздел Администрирование - Чистка базы

Быстро удаляет документы с движениями из SQL базы.
Документы удаляются непосредственно из серверной базы прямыми командами SQL.
Поддерживается отбор документов.

Не поддерживается ссылочная целостность.

Скачать файлы

Наименование Файл Версия Размер
- 899
.1226489217 41,46Kb
25.09.09
899
.1226489217 41,46Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Троицкий (tsd) 15.11.08 19:05
последняя фраза на мой взгляд все убивает. Ибо простым нажатием кнопки мы легко можем похезить целостность базы
2. Александр Окулов (PowerBoy) 16.11.08 17:19
На самом деле ничего страшного нет. Так как обработка сама вычищает все основные ссылки из таблиц: регистров, изменений, журналов. Если что-то и останеться запускаешь ТИИ, так как база стала намного меньше оно пройдет быстро и дочистит оставшиеся ссылки.
3. Виталий (vit1c) 26.05.09 10:40
Так если удалять документ, то и движения все удаляются (лениво код смотреть)
4. Александр Окулов (PowerBoy) 26.05.09 11:20
5. Игорь Гордиенко (Ugrumi) 22.09.09 05:29
У меня сразу ошибку показала!!!
6. Александр Окулов (PowerBoy) 22.09.09 06:28
(5) Какая ошибка? Текст пожалуста и версии платформы, конфигурации и SQL servera.
7. Игорь Гордиенко (Ugrumi) 22.09.09 09:26
Ошибка в закладке обработка в таб. части. Имя документа + ошибка. УПП 1.2.17.3, Microsoft SQL Server Management Studio 9.00.1399.00.
8. Александр Окулов (PowerBoy) 22.09.09 09:42
(7) Можно дословный текст ошибки в кавычках?
9. Игорь Гордиенко (Ugrumi) 22.09.09 10:02
В копии вроде работает, в рабочей проверять уже не буду!
10. Алексей Разумов (DllloKeP) 02.11.09 16:27
Отличная обработка, но пришлось подправить из-за 2 возникающих ошибок:
1) Некорректный перевод даты (если её выбирать в условии). SQL воспринимает: гггг.мм.дд, а переводилось в дд/мм/гггг.
2) В обработке в таблице _SequenceChangeRec выбиралось поле _Recorder_RRRef, а надо было _RecorderRRef.
11. Александр (MAP5) 23.12.09 08:00
Чистил базу, перед обновлением конфигурации, и вводом начальных остатков, даже часть документов оставлял в базе, на удивление даже не пришлось перебрасывать в идентичную конфигурацию. Заработала на живую. Пробовал на торговле (2 часа на все) и Бухгалтерии (12 часов)
12. Александр Окулов (PowerBoy) 23.12.09 11:32
(11) У меня бухгалтерию в 10 Гб вычищает за чуть больше часа.
у Вас 12 часов - это какой размер базы? или сервер слабый?
13. Александр (MAP5) 23.12.09 13:16
Бухгалтерия 4 года, сеть магазинов розница, количество маленькое, но строк много.
У меня перепроведение докуметов за ночь (с 18 по 09) успевает только один месяц. Прирост в год больше 10 Гб. Потому и открывал заново, что база уже не ворочается. Выгрузка DT занимала полтора часа.
14. finvest (finvest) 14.02.10 19:00
За обработку спасибо. В процессе использования сделал два уточнения:
1. Учёл смещение дат в sql-базе для пересчета значения даты в параметре.
2. При удалении последовательностей изменил запрос для указания ссылки на реквизит регистратора в трёх вариантах сразу (действует всегда только один):
_Recorder_RRef
или
_RecorderRRef
или
_Recorder_RRRef
15. Дмитрий Косарев (lda0312) 25.03.11 13:29
Не работает, не может получить кол-во документов, все время 0, что делать?
16. Алексей (Alav) 25.03.11 13:39
(15) Какая платформа, какой скуль?
DimasBarabas; +1 Ответить 1
17. Дмитрий Косарев (lda0312) 25.03.11 13:48
18. Алексей (Alav) 25.03.11 14:14
(17) Подключаться нажимали? Окошко с параметрами выскакивала? Параметры правильно указываете, т.е. тест соединения проходи?
19. Дмитрий Косарев (lda0312) 25.03.11 15:02
(18)Да все подключается, без ошибок
20. Дмитрий Косарев (lda0312) 25.03.11 18:16
Получилось выполнить удаление только на платформе 8.1, на 8.2 не находила документы, возможно причина была в том что 8.2 работает не по стандартному порту 1541 а по 2041. При удалении на 8.1 дико рос лог и обработка падала с ошибкой, указал ограничение логу в 20 Гигов, хватило и все прошло успешно.
21. Анна Т (anna_irk) 21.09.11 10:01
просто удаляет? или позволяет перецепить данные документы
22. Александр Окулов (PowerBoy) 21.09.11 11:33
23. Vyacheslav Kulikov (ELInfinito) 23.09.11 07:14
Очень полезно и своевременно.
Только пришлось реализовать ссылочную целостность и добавить возможность удаления документов списком.
Спасибо!
24. Илья Фамилия (Murom) 30.09.11 15:20
Работает как часы. Меня очень сильно выручила.Базу с 40Gb до 5Gb урезал очень быстро(по сравнение с типовым удалением).
Только была проблема с отбором документов по периоду. Неверный формат преобразования дат в формат sql: у меня почему-то дата вот-так "2011-06-17". Если б еще автоматически определяло формат дат sql сервера. :) Хотя можно и без этого.
25. Eugene Gr (EugeneMIPT) 07.12.11 14:30
ELInfinito пишет:

Очень полезно и своевременно.
Только пришлось реализовать ссылочную целостность и добавить возможность удаления документов списком.
Спасибо!


Поясните пожалуйста, что конкретно имеется в виду под реализацией ссылочной целостности? Замена во всей конфигурации ссылок на удаляемые документы - пустой ссылкой?
DimasBarabas; +1 Ответить
26. Vitya Bog (LoboVik) 20.12.11 18:08
Подключаюсь к базе. Задаю на удаление один вид документов "АвансовыйОтчет", устанавливаю отбор за период выдает пустую ошибку.
Прикрепленные файлы:
27. Vitya Bog (LoboVik) 20.12.11 18:15
Да... База на 8.2 платформе.
28. Erbolat Akkusov (Banzai79) 23.12.11 11:41
У меня вопрос после очистки документов, в центральной базе удаляться ли в периферийной базе после обмена данных?
29. Erbolat Akkusov (Banzai79) 23.12.11 13:42
скачал вашу обработку, но выдает ошибку при проверить соединение... текст ошибки
"Не выполнена проверка соединения из-за ошибки при инициализации поставщика. Неопознанная ошибка", в чем дело?
30. Erbolat Akkusov (Banzai79) 23.12.11 14:43
спс все быстро удаляет, с ошибкой разобрался надо было подключаться через поставщика SQL Native Client и там указать имя сервера и стандартный пользователь sa
31. Erbolat Akkusov (Banzai79) 23.12.11 14:45
теперь проверяю будет ли удаляться в периферийной базе кому будет интересен результат тому отвечу
32. Erbolat Akkusov (Banzai79) 23.12.11 15:37
Спасибо большое автору хорошая обработка тем кому надо обрезать большую базу. Но жаль что не передается через обмен на периферийную базу. (РИБ 1С 8.1.15.14 управл торг для Казахстана 2.2.8.10)
33. Erbolat Akkusov (Banzai79) 27.12.11 11:52
после очистки базы этой обработкой у меня размер SQL базы не уменьшилось, в чем дело?
34. Diev Ivan (VanechkaDiev) 02.05.12 20:18
а на PostgresSQL не работает что - ли?
35. Ганеев Руслан (GANR) 21.01.13 15:24
Идея хороша, но сыро пока - куча не обнаруженных объектов по ссылке вывалилась после выполнения обработки при тестировании и исправлении.
36. Виталий Черненко (SeiOkami) 02.03.13 12:42
(26) LoboVik, такая же ошибка...
Автор, ты где?
37. Олег Ортман (ortpro) 21.04.13 11:31
Не работает отбор по дате!!! Выбираю все документы, в отборе указываю период для отбираемых документов - удалено документов 0!!! Из-за этой обработки купил подписку за 800!!! р. На#рена нужен аватар для публикации комментариев???!!!!
38. Олег Ортман (ortpro) 21.04.13 11:35
(36) SeiOkami, в бегах, видимо )))))
39. Виталий Черненко (SeiOkami) 21.04.13 11:42
Не знаю как отбор, а вот ошибка, что на скрине в (26) решается коментированием в коде обработки участка удаления последовательности документов (если не путаю, просто давно пару месяцев назад ей пользовался).
40. Виталий Черненко (SeiOkami) 21.04.13 11:43
ну как решается... по крайней мере так работать будет =)
потом последовательности можно своим кодом очистить
41. acdix (softacademy) 19.06.13 18:33
подскажите что нужно подправить в обработке чтоб под 8.2 отбор по периоду работал sql2008r2
vadimlp77; +1 Ответить
42. Andrey (angy) 02.07.13 14:08
На 8.2 один документ удаляла 5 мин, дальше не стал ждать, лажа какая то :( ....
43. Rustam Samandarov (rustamsmax) 06.08.13 20:54
очень полезная штука.. спасибо..
44. Вадим Янчук (vadimlp77) 28.09.13 19:04
На 8.2 не работает. Что сделать ? И кстати если условий несколько - текст запроса формирует некоректно, пришлось пробел добавить перед "И"
podgayko; +1 Ответить
45. Александр *** (a1ex4ndr) 08.09.14 03:10
(42) В документе не война и мир были? а то может еще и быстро удалилось...
46. Евгений Стоянов (quick) 06.02.15 17:13
пробую почистить базу в 140 ГБ БП 2.0 :) последняя надежда.
47. Семён Павлюков (7OH) 08.06.15 10:53
(46) quick, Вышло ?
Есть желание удалить ПРОВОДКИ по определенныйм документам с базе на 700 Гиг.
Обработка ПРОВОДКИ умеет удалять ?
Почему справшиваю - нарисовал запрос в SQL на удаление из основной таблицы - в надежде что из таблицы ЗначенияСубконто данные удалятся сами (триггерами).
Как оказалось 1С об этом не подумала.
Теперь вопрос - пытаться догадаться как именно связаны две таблицы (ключа в таблицах нет) или это может сделать эта обработка ?
48. Сергей Огородников (Serg O.) 03.08.15 16:39
Условие ДоговорКонтрагента.Наименование "Содержит" - преобразует в Like...
имя поля через точку - надо бы добавить замену имени параметра через _
но почему то SQL запрос не cработал
49. Сергей Аблаев (serg1974) 11.05.16 09:57
Здравствуйте! Кто может описать какие подводные камни есть при удалении напрямую? где то это обсуждалось?

Очевидно что надо удалять корректно - т.е.
1) не удалять документы - т.к. там не только документ + табл части в разных таблицах SQL но и еще есть движения регистров и общие итоги! Вывод лучше не связываться с удалением документов!

2) удаление справочников - тут уже проще - надо лишь убедиться что на удаляемые элементы не осталось ссылок в других объектах базы.

3) удаление данных регистра сведений - совсем просто, но они и штатными средствами неплохо чистятся!

Вопрос:
Что то еще я не учел? Итоги или общие данные базы какие то? Все ли я верно написал в пунктах?
50. Михаил Коваль (mihey) 01.06.16 10:33
Скачал, попробовал, не учитывает смещение в 2000 лет, но лечится без вмешательства в код, просто добавьте 2000 лет к дате в отборе
51. Александр Перминов (trio-tlt) 23.08.16 19:31
Клевая обработка. Хорошо написана - при желании можно легко дописать то, что нужно тебе.