Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=21295)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Удаление документов

Автор: Pepe 22.12.14, 14:45

Может кто поделиться опытом использования типовой обработки для пометки на удаление документов. Интересует вопрос уменьшения времени работы при удалении большого количества документов за длительный период.
Возможные варианты:
1. запуск обработки за весь период удаления.
2. Пометка на удаление частями (по-квартально, годично).
3. Пометка на удаление, удаление части документов.

Возможны и другие варианты.
Имхо первый вариант самый долгий. rolleyes.gif

Автор: sava1 22.12.14, 17:36

1. В обработке цикл разбить на более мелкие транзакции (я делал по 3-5 тишч).
2. ТА и БИ перенести на дату, меньше первого документа - не будет перезаписи в рег. итогов и пересчет.

Автор: zetovich 22.12.14, 18:07

а) транзакции
б) если регистры не забываем про ТА (чтоб при каждом .Удалить(0) не двигать ТА)
в) Базу на СКУЛЬ - а там средствами скуля удаляем документы. Потом ТиИ с очисткой битых ссылок. (обработки есть на инфостарте).

а вообще сия операция обычна индивидуальна.

г) для совсем ниндзей: http://pro1c.org.ua/redirect.php?http://1czone.ru/vopros/18-kak-bystro-udalit-iz-bazy-1s-77-vse-dokumenty.html

Автор: Ardi 23.12.14, 3:32

1. Перемещаем ТА и Бух итоги назад. На дату когда не велись операции.
2. Удаляем документы в транзакции за весь период удаления.
3. Помещаем ТА и Бух итоги на место.
--
Если без пункта 1 и 3 то помечаем документы на удаление в обратном хронологическом порядке.

Автор: Acid 23.12.14, 11:25

*на минуточку: транзакции для SQL-базы - не есть хорошо
в файловом да.

Самое надежное удалять по-квартально.

(это дополнение к предыдущему оратору)

Автор: Pepe 23.12.14, 11:57

Цитата(Acid)
Самое надежное удалять по-квартально.

В чем заключается надежность?

Мы немножко отошли от темы. Интересно сокращение работы стандартной обработки (Обработка документов) для того, чтоб пометить, а потом удалить все документы за заданный период в базе с бухгалтерскими счетами и регистрами. Движение ТА и БИ - понятно, а есть ли смысл частично пометить период, удалить и браться за следующий кусок.

Автор: Acid 23.12.14, 15:58

Цитата(Pepe @ 23.12.14, 11:57) *
В чем заключается надежность?


Во-первых возможны глюки если документ что-то распроводит, удаляет записи из справочников или еще чего. Обидно, когда выбрал весь период, через 2 часа выскакивает исключение.
Во-вторых быстрее. По-месячно еще быстрее.


Автор: Pepe 23.12.14, 17:57

Цитата(Acid)
Во-вторых быстрее. По-месячно еще быстрее.

Экспериментально установлено, подтверждаю.

Встречал обработки которые помечают документы на удаление с очисткой табличной части. Это влияет на конечный результат?

Автор: Ardi 23.12.14, 20:45

Как происходит распровдедение документа в 7.7:
Например дата документа 23.12.2004 года. Сегодня 23.12.2014
1. Удаляются проводки одного документа.
2. Пересчитываются бух итоги и бух обороты по участвовавшим счетам и субконто. за 10 лет - это пересчитываются 40 отдельных периодов.
3. Переходим к следующему документу.
4. Идём к пункт 1.

В транзакции алгоритм наверно не меняется. Просто блокировки таблиц не проверяются.

Поэтому основной элемент ускорения - это отмотать итоги назад чтобы при удалении проводок ничего не пересчитывалось.
А потом мы возвращаем итоги назад и за один раз пересчитываем все итоги по новым проводкам.

Цитата(Pepe @ 23.12.14, 17:57) *
Встречал обработки которые помечают документы на удаление с очисткой табличной части. Это влияет на конечный результат?

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua