|   |   | 
| 
 | Удаление 500000+ помеченных в БП 2.0 | ☑ | ||
|---|---|---|---|---|
| 0
    
        Митяйский 13.04.18✎ 11:51 | 
        Может кто подсказать, как можно вычистить помойку после свертки БП 2.0, обойдясь меньшей кровью? Стандартное удаление повесило мой i5 уже на три с лишним часа. Подумываю начать чистить внешней обработкой, только очень не хочется чего-то опять садиться за написание велосипедов.
 Может кто какие хитрости знает? | |||
| 1
    
        Cool_Profi 13.04.18✎ 11:53 | 
        Я обычно беру Портативные Инструменты (TormozIT, с тебя магарыч) И чищу по метаданным     | |||
| 2
    
        Dmitry1c 13.04.18✎ 11:53 | 
        (0) выгрузи через выгрузку-загрузку XML данные в чистую базу     | |||
| 3
    
        Lama12 13.04.18✎ 11:58 | 
        (0) 3 часа... :-) Выходные впереди.  Подожди.     | |||
| 4
    
        Митяйский 13.04.18✎ 11:58 | 
        (2) Ну так не факт, что мусор не потащится следом.
 Я ведь не знаю остались ли там ссылки на старые документы. Свертку запускал со всеми настройками по умолчанию. В предыдущие разы у меня всегда оставались какие-то не до конца свернутые хвосты и недопомеченные документы | |||
| 5
    
        Рэйв 13.04.18✎ 12:04 | 
        (0)Если скуль, то напрямую скальными запросами удаляется в разы быстрее.     | |||
| 6
    
        Рэйв 13.04.18✎ 12:05 | 
        *скульными :-)     | |||
| 7
    
        SeriyP 13.04.18✎ 12:11 | 
        (4) Думаю, что при таком способе удалится процентов 10 из помеченного. И ждать придется долго     | |||
| 8
    
        Митяйский 13.04.18✎ 12:29 | 
        Короче, не удаляется вообще ничего практически.
 Эти козлы поснимали галку "только обороты" с субконто документов расчета почти на всех счетах. Соответсвенно и не свернулось толком нихера, все повылазило в остатки. Короче мой косяк, извиняйте. Без велосипедов сегодня не обойтись, увы. | |||
| 9
    
        ProxyInspector 13.04.18✎ 12:52 | 
        Я думаю, что через сутки/двое обработка по удалению вывалиться в дамп. 
 Если в базе больше 100 000 документов, то это уже не ларек, и типовая обработка по удалению помеченных на удаление документов не работает. Обычно пишется своя обработка по удалению помеченных на удаление объектов порциями. И все работает. Я удалял 1 500 000 документов и ничего | |||
| 10
    
        ВикторП 13.04.18✎ 13:00 | 
        (9) ничего - это сколько длилось?     | |||
| 11
    
        Aleksey 13.04.18✎ 13:19 | 
        (5) Я бы не стал бы так делать
 Есть 100500 регистров сведений где участвует документ (типа первичные документы наличие файла и т.д.) и еще 100600 справочников (типа прикрепленные файлы, циклы обмена и т.д.) А еще куча подвязок если используется 1С-Отчетность и 1с-ЭДО Забодаешься битые ссылки вычищать ... | |||
| 12
    
        Segate 13.04.18✎ 13:22 | 
        (10) если паралеллизмом заморочиться, и сервер позволяет, то норм. Не долго должно быть     | |||
| 13
    
        Мандалай 13.04.18✎ 13:32 | 
        (4)Если мусор потащится следом значит на него есть ссылки - как ты в этом случае собрался удалять?     | |||
| 14
    
        vis_tmp 13.04.18✎ 13:34 | 
        (9)Если и уже написанные     | |||
| 15
    
        Ботаник Гарден Меран 13.04.18✎ 13:58 | 
        В типовую обработку добавлял кнопку, которая снимала флажки в списке помеченных на удаление и устанавливала нужное количество флажков (запрашивалось в диалоге или делалось несколько пунктов меню).
 По 500 и 1000 элементов вполне быстро удалялось. | |||
| 16
    
        Maniac 13.04.18✎ 14:00 | 
        сделать это на нормальном компе.
 с хорошим процом и памятью. плюс чтобы 1С 64 битная | |||
| 17
    
        ВикторП 13.04.18✎ 14:14 | 
        (12) Я сам параллельные процессы не "делал" , если опыт , поделитесь- что делали и сколько времени ушло на сам алгоритм     | |||
| 18
    
        Широкий 13.04.18✎ 14:31 | 
        Удаляй скульными методами     | |||
| 19
    
        piter3 13.04.18✎ 14:34 | 
        (9) И сколько по времени дает экономию?Пробовал,особой разницы не заметил     | |||
| 20
    
        Buster007 13.04.18✎ 14:42 | 
        (19) сколько потоков, во столько раз и быстрее     | |||
| 21
    
        s202 13.04.18✎ 15:12 | 
        (0) с диска ИТС обработка "УдалениеПомеченных" с отборами - 
 не подойдет ? | |||
| 22
    
        s202 13.04.18✎ 15:13 | 
        Если отбирать и делать по частям - контроль проходит в разы быстрее.     | |||
| 23
    
        Segate 13.04.18✎ 15:36 | 
        (17) Так как 1с не умеет в паралеллизм, то можно пойти двумя способами:
 1й: на уровне SQL курить max degree of parallelism, или как-то так... раскуривать результирующие запросы и раскидывать на уровне скуля 2й: запускать выборку, потом бить выборку на части и удаление каждой из порций запускать в рег. задании... | |||
| 24
    
        Cyberhawk 13.04.18✎ 15:36 | 
        Свертка базы - безсмысленное дело.
 Свертка регистров - наоборот. | |||
| 25
    
        piter3 13.04.18✎ 15:37 | 
        (20) Это пятничная шутка такая?     | |||
| 26
    
        Митяйский 13.04.18✎ 15:38 | 
        (21) я не догадался даже в унирепс 81 посмотреть, если честно
 не знал, что оно все еще работает | |||
| 27
    
        Tatitutu 13.04.18✎ 15:47 | 
        Как быстро "удалить все документы и движения" в базе (Альтернатива)
 http://catalog.mista.ru/public/795965/ | |||
| 28
    
        Segate 13.04.18✎ 15:52 | 
        (25) не, ну при наличии неограниченных ресурсов, можно приблизится к подобному... Если каждый из потоков будет в своем рабочем процессе и на каждый будет свое физическое ядро... То в принципе это будет работать быстрее... вопрос остается только в ожиданиях на блокировках... но тут надо играться со степенью изоляции..     | |||
| 29
    
        ProxyInspector 13.04.18✎ 16:01 | 
        (19) Причина из-за которой приходится изобретать велосипед при при удалении помеченных объектов
 1. Для 1с8 - это необходимость монопольного доступа к базе 2. Типовая обработка вываливается в дамп, так как она создает таблицу ссылок для каждого помеченного на удаление элемента. Если у вас 1000 элементов, то данная таблица может доходить до 1 млн записей. Если 10 000, то до 100 млн записей. При этом эта таблица совершенно не нужна. А так удаление 1 500 000 документов заняло несколько суток в фоновом режиме | |||
| 30
    
        Serg_1960 13.04.18✎ 16:02 | 
        (0) "Может кто подсказать, как можно" - конечно подскажу.
 Гуглите :) https://yandex.ru/yandsearch?text=удалениепосле%20свертки&lr=10754&site=forum.mista.ru | |||
| 31
    
        ProxyInspector 13.04.18✎ 16:07 | 
        Если у вас достаточно большая база пусть будет 3 млн. документов из которых 1.5 млн помеченных на удаление.
 ТО стандартные способы с планами обмена не сработают. Там файл обмена будет несколько сотен Гб. | |||
| 32
    
        piter3 13.04.18✎ 16:08 | 
        (29) Заинтриговали     | |||
| 33
    
        Serg_1960 13.04.18✎ 16:08 | 
        (27) Это неправильный совет :( Но в нужном направлении :)
 Когда используется обмен, то отключаются все платформенные проверки (даже контроль целостности данных) и большинство программных действий и проверок. И в итоге можно получить те-же грабли, что и при непосредственном удаление объектов с использованием ".ОбменДанными.Загрузка = Истина". | |||
| 34
    
        ProxyInspector 13.04.18✎ 16:11 | 
        Возможны два способа 
 1. ОЛЕ 2. WEB обмен Однако не смотря на свою крутизну разработчики 1с так и не смогли написать универсальных обменов для одинаковых конфигураций через ОЛЕ или WEB. | |||
| 35
    
        ProxyInspector 13.04.18✎ 16:29 | 
        Вот сейчас стоит задача База 3.6 млн документов за 5 лет. Учет велся по 60 организациям. Сейчас учет ведется где-то по 10 организациям. Требуется перенести в чистую базу пару организаций. 
 Через универсальный WEB обмен это заняло примерно 6 часов. Было перенесено 62 тыс документов. Без ошибок. Все остатки сошлись. Я начинаю любить 1С8 | |||
| 36
    
        Доминошник 13.04.18✎ 16:32 | 
        (35) А где почитать-посмотреть по поводу "универсального WEB обмена"?     | |||
| 37
    
        ProxyInspector 13.04.18✎ 16:36 | 
        А это сами пишете. Там не очень сложно. Так же как и универсальный обмен через ОЛЕ.
 Для WEB есть несколько тонкостей. Там есть какое то отграничение на размер передаваемого объема информации. В моем случае при попытке передать информацию о 30 тыс. документов обмен отваливался. Пришлось передавать информацию частями | |||
| 38
    
        ProxyInspector 13.04.18✎ 16:45 | 
        Я посмотрел требуется порядка 100 строк кода на формирование выгрузки любого объекта базы в XML, включая регистры сведений. И столько же на загрузку. 
 Это конечно не относится к бухгалтерии. Там наверное сложнее. Уж больно криво все реализовано в бухгалтерии. | |||
| 39
    
        Aleksey 13.04.18✎ 16:59 | 
        (23) они будут блочить друг друга. я пробовал паралельно удалять доки по разным организациям - не взлетело, нарывался на блокировки     | |||
| 40
    
        ProxyInspector 13.04.18✎ 17:05 | 
        (39) Для 1с8 все параллельности не актуальны. 1с8 очень плохо работает по настоящему параллельно. Разработчики 1с8 умудрились сделать так, что параметр "ВремяОжиданияБлокировки" при записи элемента не работает. И любая попытка записать заблокированный элемент справочника приводит к немедленной взаимоблокировке. 
 Для решения этой проблемы можно использовать Попытка Исключение вот тогда становится немного лучше | |||
| 41
    
        ProxyInspector 13.04.18✎ 17:06 | 
        Это все касается толстого клиента. Но у меня есть ощущение, что на УФ не лучше.     | |||
| 42
    
        mexanik_96 13.04.18✎ 17:14 | 
        (23) ну опять... она и не должна уметь, это проблемы субд и планировщика     | |||
| 43
    
        ВикторП 17.04.18✎ 09:44 | 
        (40), (41) какой клиент тут ни при чем, вы не смогли распараллелить - надо чтобы записи не пересекались - у вас не так - от этого и блокировки     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |