Как быстро "удалить все документы и движения" в базе (Альтернатива)

Администрирование - Чистка базы

49
Очень часто задают вопрос - как удалить все документы из базы, оставить только номенклатуру и настройки. Есть много различных вариантов (групповая обработка документов и справочников - да, работает, но медленно, у клиента в базе 460 000 документов проведенных - неделю будет удалять). Перенос данных - через ВыгрузкаЗагрузкаДанныхXML82.epf - можно, но тоже долго и требует определенных навыков.

Мне в голову пришел другой вариант.

Нужно было срочно решить вопрос (по "гуглил" - вроде не нашел такого примера, или все достаточно просто, или не было желания описать).

Итак, стояла задача - сохранить всю Номенклатуру (около 25000), все справочники, константы и самое главное - сохранить бонусную и дисконтную систему в конфигурации MAGAZKA - лучшая программа для розничного магазина - это регистры сведений - база работала около трех лет (48000 клубных карт)

В базе 460 000 документов проведенных.

База файловая.

Затраченное время : ~ 1 час

Решение :

1. В ЦБ (центральная база) план обмена полный (если не использовался РИБ, ничего страшного)  создаем узел и запоминаем код узла (например :00000022)

но  -  ВАЖНО ! не нажимаем кнопку меню "СОЗДАТЬ НАЧАЛЬНЫЙ ОБРАЗ"

2. Открываем обработку "Регистрация изменений для обмена" - снимаем Всю регистрацию (хоть по умолчанию ее нет, но лучше сделать) и дальше регистрируем для обмена - нужные нам объекты - справочники, константы, регистры сведений и т.д.

3. В плане обмена для узла : 00000022 - меню - Записать изменения - получаем файл выгрузки в XML (538 мб) в zip около 20 мб. (время выгрузки около 14 минут)

4. В ЦБ - заходим в конфигуратор - меню - Конфигурация - Сохранить конфигурацию в файл - получаем файл с расширением *.cf

5. Создаем пустую базу - заходим в конфигуратор - меню - Конфигурация - Загрузить конфигурацию из файла.

6. Заходим в эту базу в пользовательском режиме - План обмена полный - создаем два узла 00000001 и 00000022

7. Вот теперь маленькая хитрость - меняем узлы местами - т.е. превращаем нашу базу в ПБ (периферийную)

ПланыОбмена.УстановитьГлавныйУзел((<ГлавныйУзел>));

8. Планы обмены - меню - прочитать изменения - указываем наш файл - загрузка прошла успешно ~ 11 минут

9. Заключительный момент - удаляем признак периферийной базы - ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

10. Делаем ТИИ (тестирование и исправление ИБ...) на всякий случай.

Все, можно работать.

Итог: решили задачу с минимальными затратами, средствами платформы - качественно и быстро

Может, кому-нибудь когда-нибудь и пригодится.

49

См. также

Комментарии
Сортировка: Древо
1. necropunk 5 06.03.18 14:42 Сейчас в теме
А узлы обязательно менять местами? Простой Универсальный обмен данными в формате XML разве не может загрузить данные в любую базу с этим CF? Просто пользовался раньше похожей методикой - через узел все таскать - таких проблем с заменой узла не помню.
2. Tatitutu 3719 06.03.18 15:02 Сейчас в теме
(1)А узлы обязательно менять местами?

да. чтобы на время сделать базу Перифирийной

Простой Универсальный обмен данными в формате XML разве не может загрузить данные в любую базу с этим CF?

Нет , ИМЕННО ЭТУ выгрузку он не "кушает" - "Неверный формат выгрузки"

я же написал - АЛЬТЕРНАТИВА

Просто пользовался раньше похожей методикой - через узел все таскать - таких проблем с заменой узла не помню.

а как таскал ? если узла у тебя не было - а если его инициализировать - штатным способом очень долго ...
(можно скопировать ЦБ - и также подменить узлы места - лишние удалить)
Прикрепленные файлы:
3. necropunk 5 06.03.18 15:23 Сейчас в теме
(2) Подробностей не помню уже, помню, что сделал узел и на него все кидал, что в тестовую надо было выгружать. Но это было в подсистеме с интегрированными Инструментами Разработчика, может местной встроенной обработкой просто читалось, там допил какой-то был на форматы и нечеткое чтение, не помню.
А так - идея хорошая, да, взял на заметку.
4. user868090 06.03.18 17:17 Сейчас в теме
Разве через "Выгрузку загрузку данных XML" не будет проще? Также выбрали нужные объекты, выгрузили, создали новую базу, загрузили.
Hamsik; mysm; adhocprog; Artem-B; AlexGroovy; manlak; A_Max; artfa; +8 Ответить
5. Tatitutu 3719 07.03.18 12:06 Сейчас в теме
(4) Дмитрий , может и проще , но однозначно дольше , а во вторых я же указал в заголовке "АЛЬТЕРНАТИВА"
добавить в базу знаний , еще одни способ.
Вот представь себе ты случайно оказался у клиента (ну нет у него интернета, поверь такое бывает) и нет у него и у тебя обработки ""Выгрузку загрузку данных XML"
а сделать нужно - ты же профессионал ! Как быть тогда ?
Пригодиться этот метод - минимум программирования - платформа все сделает самостоятельно.
romankoav; adhocprog; +2 Ответить
11. aleksdiez 4 12.03.18 09:56 Сейчас в теме
(5) Чем дольше выгрузка загрузка?)
6. Dzenn 247 07.03.18 12:18 Сейчас в теме
не вник, но идея через распределёнку шикарная
8. Tatitutu 3719 07.03.18 12:23 Сейчас в теме
(6) Спасибо ! Это статья , как раз на тему "Голь на выдумки хитра"
в одном моменте мысль пришла - есть задача, нужно сделать, а для клиента -важен только результат.
Просто, доступно, понятно и главное надежно работает.
7. Xamele0n88 07.03.18 12:21 Сейчас в теме
Если на платформе 8.3 и в справочниках есть предопределенные элементы, то они задублируются )
Тут либо отключать авто создание предопределенных элементов в новой базе до загрузки CF.
Либо не регать на узел предопределенные элементы
docerman; +1 Ответить
9. Tatitutu 3719 07.03.18 12:25 Сейчас в теме
(7) Нет, дублей не выявлено было - в Номенклатуре - 10 предопределенных элементов - все "штатно скушало"
10. iPanda 14 12.03.18 06:27 Сейчас в теме
Можно проще сделать удалить документы обработкой https://infostart.ru/public/795917/ и сделать тест... проверено работает
12. Hamsik 13 12.03.18 15:56 Сейчас в теме
(10) Вам не кажется, что Ваша обработка по сравнению с приведенными способами (выгрузкаXML и способ в статье) работает гораздо медленнее ? Наверняка вы обходите метаданные циклами, и также в цикле удаляете документы... На каком количестве документов пробовали? И сколько времени заняло?
13. Tatitutu 3719 13.03.18 07:19 Сейчас в теме
(12) открыли "новый вид троллинга" сам задал вопрос и сам себе ответил? Полянку не попутал?
15. Hamsik 13 13.03.18 15:35 Сейчас в теме
(13) Ответа с моей стороны не было, только предположение, мои вопросы без ответа - На каком количестве документов пробовали? И сколько времени заняло? Никакого троллинга :)
И кстати я обращался не к Вам, а к коллеге из (10)
17. Tatitutu 3719 14.03.18 07:47 Сейчас в теме
(15) перейди по ссылке в (10) и там задавай вопросы автору той обработки - и он обязательно ответит
18. Hamsik 13 14.03.18 11:11 Сейчас в теме
(17)
Пока НеДойдетДоАвтора Цикл
И кстати я обращался не к Вам, а к коллеге из (10)
КонецЦикла;
19. Tatitutu 3719 14.03.18 15:46 Сейчас в теме
(18) Вадик, ты из цикла то выйди ...
по
- ОбработкаПрерыванияПользователя();
или по
- Прервать;

и сходи на страничку разработки ТОГО автора и там ему задай свой вопрос (а то он там тоже в шоке от твоего поста)
тут то зачем задавать - где логика в твоих действиях ?

А то присвою тебя в переменную в неопределено....

А вот это прямое нарушение политики данного сервиса
20. Hamsik 13 14.03.18 15:50 Сейчас в теме
(19) Хорошая работа :D эх гугл гугл
Tatitutu; +1 Ответить
14. LavinVadik 84 13.03.18 15:06 Сейчас в теме
MS SQL truncate table
либо ClearSQL(1.3.4).epf

автор не работал с базами у которой в регистре накопления 111 000 000 записей ?
16. Tatitutu 3719 14.03.18 07:46 Сейчас в теме
(14) к чему твой пост?
Где логика?
21. docerman 43 15.03.18 21:49 Сейчас в теме
В ERP все предопределенные элементы задублировались (справочники и планы видов характеристик)
Оставьте свое сообщение