Удаление документов 1с77

  • Автор темы Автор темы vbs
  • Дата начала Дата начала
V

vbs

Понадобилось удалить тучу документов в базе ТиС 8.7 (около 500.000).
Зачем - не спрашивайте, свертку стандартными средствами не предлагать :*цензура*you:
Пометка на удаление и последующее "Удаление помеченных" работает крайне медленно (База формата ДБФ размер 5,5ГБ).
Обработка по непосредственному удалению - тоже медленно.
Попробовал использовать в ней транзакцию, причем фиксирую ее через каждую сотню документов. Не скажу, что летает, но, по крайней мере, не висит по несколько минут.
Скорость удаления удалось поднять до 1000 документов за 7-10 минут. Но и тут случаются тормоза (видно по счетчику в статусе) - еще до фиксации транзакции
на отдельных документах висим секунд по 20-30.
Собственно, к чему это я ? Пожалуй, к тому, чтобы выслушать компетентные комментарии, да и пожалели чтоб... :welcome:
Сижу вот 5 часов уже, и конца не видно :)
Да и другие открытые приложения скорости отнюдь не способствуют...
 
Это просто.
Время при удалении дока от 2007г. уходит на пересчет итогов от даты дока до сегодняшнего дня.
Есть способы:

Пользовательский:
"Управление оперативными итогами". Установить дату ТА на начало века.
"Управление бухгалтерскими итогами". Установить квартал туда же.

Хакерский:
Можно сочетать с предыдущим. Удалить файлы с проводками и итогами: 1SBKTTL.*, 1SENTRY.*, Все RG*.*, RA*.*. Пересчитываться будет нечему.

Программный:
Транзакции нужны. И завершение Тран. ставить не через 100 доков. А в начале-конце. Когда слишком много доков и мало ОЗУ, запускать удаление по годам.

Предполагаемое ускорение 3-5 раз.
 
вообще то в вопросе не указано проведенные они или нет. если проведенные - время тратится на распроведение. если нет - только на запись в файл.
 
Хакерский:
Можно сочетать с предыдущим. Удалить файлы с проводками и итогами: 1SBKTTL.*, 1SENTRY.*, Все RG*.*, RA*.*. Пересчитываться будет нечему.
Не мой, вроде, случай.Условно говоря, надо в базе оставить документы за 3 месяца текущего года. А что произойдет потом, когда все регистры удалены ?
Понятно, что восстановление последовательности все восстановит, и быстрее будет. Буду пробовать
Программный:
Транзакции нужны. И завершение Тран. ставить не через 100 доков. А в начале-конце. Когда слишком много доков и мало ОЗУ, запускать удаление по годам
С этим вообше беда. Вчера ушел, подав на удаление месяц с одной фиксацией транзакции (примерно 30 000 документов), через 4 часа вернулся - висим на числе 3437 :)
Число 100 родилось опытным путем, да и в случае повисания хоть что-то удаляется. Вот сегодня в 7 утра запустил месяц с квантовой фиксацией транзакции по сотне - за 6 часов удалилось 13000
вообще то в вопросе не указано проведенные они или нет. если проведенные - время тратится на распроведение. если нет - только на запись в файл.
Мысль хорошая - попробую снять проведение, но тоже процесс небыстрый

Тем не менее, спасибо за оперативные отклики
 
Коли так может проще сделать копию, поубивать документы и регистры и перенести документы за последние три месяца и провести их? остатки на начало периода переносились вообще элементарно - - тз с итогами выгружалось в текст с сохранением идентификаторов, а в копии примитивная обработка создавала документы ввода остатков. Так как это копия и айдишники одинаковые - то прокатывало. В понедельник могу помочь с обработкой по остаткам. Как скопировать документы - это вопрос. Наверно придется подрубаться по ОЛЕ перебирать в цикле метаданные и присваивать значения реквизитов. Эххх - еслиб знать как вызвать программно копирование документа, как это сделано в журнале....
 
Коли так может проще сделать копию, поубивать документы и регистры и перенести документы за последние три месяца и провести их
Не проще. Процесс очень долгий. Правда, может, у меня программа переноса не слишком хороша (1000 документов, а это примерно столько за день, выгружаются минут 20, а загружаются раза в 2 дольше)
остатки на начало периода переносились вообще элементарно - - тз с итогами выгружалось в текст с сохранением идентификаторов
Остатки по контрагентам и товарам я уже лет 8 умею переносить. Только пользую файл ДБФ из 3-4 полей и коды товаров и контрагентов

А вот "хакерский" метод от Дайнеко - это ПЯТЬ
Я убил регистры и все документы удалились за 15 минут (в среднем по 30000 в минуту).
Теперь осталось загрузить остатки (это на час), восстановить последовательность и, откинувшись на спинку кресла, закурить кальян,
ожидая горячей благодарности заказчика в материальном выражении
 
А вот "хакерский" метод от Дайнеко - это ПЯТЬ
...... ожидая горячей благодарности заказчика в материальном выражении
А где благодарность советчику?

Хочу заметить, что метод Пользовательский в сочетании с транзакциями едва ли уступает в скорости. Пропустим мимо ушей замечание "вообще то в вопросе не указано проведенные они или нет" - ну что за база такого размера с одними непроведенными? Утверждаю, что 80-90% времени уходит на распроведение. При откатанной ТА в начало базы, система не запускает пересчет итогов. Ну а плюсище метода - вернул ТА на сегодня - и никакой возни с переносами.
И еще мысль родилась - может Вы над базой так раз несколько поиздевались? Обязательно нужно упаковка таблиц базы. Это существенно уменьшает удаление помеченных.
 
А где благодарность советчику?
Кстати, за такой полезный совет, готов и материально отблагодарить, предлагай варианты
И еще мысль родилась - может Вы над базой так раз несколько поиздевались? Обязательно нужно упаковка таблиц базы. Это существенно уменьшает удаление помеченных.
Ну уж, все же я не до такой степени туп :*цензура*you:
Дайнеко сказал(а):
Хочу заметить, что метод Пользовательский в сочетании с транзакциями едва ли уступает в скорости
Настолько порадовала победа после удаления регистров, что даже и не проверял.
А вот для бухгалтерии при случае обязательно воспользуюсь
 
Я ведь вполне серьезно !
Времени мне дельный совет сэкономил немало. Готов поделиться. Если мы из одного города, проблему легко решим :rolleyes:
 
Транзакции нужны. И завершение Тран. ставить не через 100 доков. А в начале-конце. Когда слишком много доков и мало ОЗУ, запускать удаление по годам.
И еще дополнение для того, чтобы расставить точки над i. Замечу, что получено экспериментальным путем.
С одной транзакцией первые несколько тысяч доков удаляются очень быстро (12-13 тыс в минуту), потом процесс существенно замедляется и скорость падает до 500 в минуту.
С ОЗУ у меня все в порядке (4Гб).
Я для своего случая выяснил, что оптимально транзакцию начинать-завершать примерно через каждые 30 тыс. документов, тогда процесс удаления летает.
Если найдутся желающие проверить, буду рад услышать отзывы.
В любом случае поток теплых слов в адрес Дайнеко не иссякает
 
Дошли руки до проверки на Бухгалтерии 4.5
Удалял документы за год (около 30 тысяч)
1. Пользовательский метод (с откатом назад бух. итогов) 17 мин. (в обычном варианте 4 часа)
2. "Хакерский" (с удалением 1SBKTTL.*, 1SENTRY.*) 4 мин
и еще раз убедился, что транзакция квантами быстрее, чем одна общая
Рекомендую :)
 
Можно сочетать с предыдущим. Удалить файлы с проводками и итогами: 1SBKTTL.*, 1SENTRY.*, Все RG*.*, RA*.*. Пересчитываться будет нечему.


Для бухгалтерии все не так просто

После удаления 1SENTRY.* умирают все документы "Операция". Справился так : выгрузил нужные операции, а потом их внедрил в обрезанную базу.
Кроме того, такой нюанс : удаление в таком варианте, разумеется, раз в 100 быстрее. Но приходится перепроводить все оставшиеся в базе документы -
а это вещь небыстрая. И не факт, что окупает быстрое удаление. Вывод : Метод, предложенный Дайнеко надо использовать с осторожностью.
Если удаляете 50% и больше - да, если нет - время на перепроведение может занять гораздо больше времени, нежели время на удаление
 
Если удаляете 50% и больше...

Ну, голубчик, та-ки проснулся и попробовал. :)
Разумеется удалить файлы проводок и регистров можно только при удалении всех документов. А если свертку делаете, то этот пункт пропустим. Бывает просят: сделай новую базу, но все справочники и настройки возьми из старой.
 
Ну, голубчик, та-ки проснулся и попробовал.

Таки пробую довольно часто.

Разумеется удалить файлы проводок и регистров можно только при удалении всех документов

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

Бывает просят: сделай новую базу, но все справочники и настройки возьми из старой

А для этого случая есть и более простой способ : Оставить в базе 1SBLOB, 1SCONST, 1SUSERS, 1SSYSTEM и SC*.* - остальное тупо удалить.
Справедливо и для Бух и для ТиС
Всей работы на 2 минуты

А я изначально страдал, когда резал ТиС, где нужно было оставить документы за несколько дней (типа 10 января при обрезке на начало года)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!