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

Тема в разделе "1C и всё что с ней связано", создана пользователем vbs, 27 мар 2010.

  1. vbs

    vbs Well-Known Member

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

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Это просто.
    Время при удалении дока от 2007г. уходит на пересчет итогов от даты дока до сегодняшнего дня.
    Есть способы:

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

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

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

    Предполагаемое ускорение 3-5 раз.
     
  3. evgenyatam

    evgenyatam Well-Known Member

    Регистрация:
    7 сен 2007
    Сообщения:
    175
    Симпатии:
    0
    вообще то в вопросе не указано проведенные они или нет. если проведенные - время тратится на распроведение. если нет - только на запись в файл.
     
  4. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Не мой, вроде, случай.Условно говоря, надо в базе оставить документы за 3 месяца текущего года. А что произойдет потом, когда все регистры удалены ?
    Понятно, что восстановление последовательности все восстановит, и быстрее будет. Буду пробовать
    С этим вообше беда. Вчера ушел, подав на удаление месяц с одной фиксацией транзакции (примерно 30 000 документов), через 4 часа вернулся - висим на числе 3437 :)
    Число 100 родилось опытным путем, да и в случае повисания хоть что-то удаляется. Вот сегодня в 7 утра запустил месяц с квантовой фиксацией транзакции по сотне - за 6 часов удалилось 13000
    Мысль хорошая - попробую снять проведение, но тоже процесс небыстрый

    Тем не менее, спасибо за оперативные отклики
     
  5. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Коли так может проще сделать копию, поубивать документы и регистры и перенести документы за последние три месяца и провести их? остатки на начало периода переносились вообще элементарно - - тз с итогами выгружалось в текст с сохранением идентификаторов, а в копии примитивная обработка создавала документы ввода остатков. Так как это копия и айдишники одинаковые - то прокатывало. В понедельник могу помочь с обработкой по остаткам. Как скопировать документы - это вопрос. Наверно придется подрубаться по ОЛЕ перебирать в цикле метаданные и присваивать значения реквизитов. Эххх - еслиб знать как вызвать программно копирование документа, как это сделано в журнале....
     
  6. vbs

    vbs Well-Known Member

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

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

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Буду знать - мож пригодится.
     
  8. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    А где благодарность советчику?

    Хочу заметить, что метод Пользовательский в сочетании с транзакциями едва ли уступает в скорости. Пропустим мимо ушей замечание "вообще то в вопросе не указано проведенные они или нет" - ну что за база такого размера с одними непроведенными? Утверждаю, что 80-90% времени уходит на распроведение. При откатанной ТА в начало базы, система не запускает пересчет итогов. Ну а плюсище метода - вернул ТА на сегодня - и никакой возни с переносами.
    И еще мысль родилась - может Вы над базой так раз несколько поиздевались? Обязательно нужно упаковка таблиц базы. Это существенно уменьшает удаление помеченных.
     
  9. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Кстати, за такой полезный совет, готов и материально отблагодарить, предлагай варианты
    Ну уж, все же я не до такой степени туп :*цензура*you:
    Настолько порадовала победа после удаления регистров, что даже и не проверял.
    А вот для бухгалтерии при случае обязательно воспользуюсь
     
  10. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Успехов!
     
  11. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Я ведь вполне серьезно !
    Времени мне дельный совет сэкономил немало. Готов поделиться. Если мы из одного города, проблему легко решим :rolleyes:
     
  12. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Да из Минска я. Мне за дельные мысли мои клиенты платят.
     
  13. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Тогда прими уверения во всяческом уважении, действительно здорово выручил, я вот за столько лет до этого не допер :welcome:
     
  14. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    И еще дополнение для того, чтобы расставить точки над i. Замечу, что получено экспериментальным путем.
    С одной транзакцией первые несколько тысяч доков удаляются очень быстро (12-13 тыс в минуту), потом процесс существенно замедляется и скорость падает до 500 в минуту.
    С ОЗУ у меня все в порядке (4Гб).
    Я для своего случая выяснил, что оптимально транзакцию начинать-завершать примерно через каждые 30 тыс. документов, тогда процесс удаления летает.
    Если найдутся желающие проверить, буду рад услышать отзывы.
    В любом случае поток теплых слов в адрес Дайнеко не иссякает
     
  15. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Дошли руки до проверки на Бухгалтерии 4.5
    Удалял документы за год (около 30 тысяч)
    1. Пользовательский метод (с откатом назад бух. итогов) 17 мин. (в обычном варианте 4 часа)
    2. "Хакерский" (с удалением 1SBKTTL.*, 1SENTRY.*) 4 мин
    и еще раз убедился, что транзакция квантами быстрее, чем одна общая
    Рекомендую :)
     
  16. vbs

    vbs Well-Known Member

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


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

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

    Дайнеко Well-Known Member
    1C Team

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

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Ну, голубчик, та-ки проснулся и попробовал.

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

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

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

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

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

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

Поделиться этой страницей