Реально ли в 1С 8.1 быстро удалять документы #312096


#0 by rassigor
Необходимо за день удалить 150 тыс документов, использовал транзакцию, все равно медленно, кто что посоветует?
#1 by zbv
а звчкм так много, мож по другому подойти к задаче?
#2 by zbv
+ гы... рука съехала.... ;)
#3 by rassigor
Уперся заказчик:(. Подход какой выбрать необходимо?Бежим запросом по месяцам в транзакции и удаляем сразу на чисто, или может я что то не так делаю?
#4 by zbv
может проще новую базу создать... SQL?
#5 by rassigor
А чем можно создать идентичную базу, без документов?Самому писать долго, мож обработки есть?
#6 by rassigor
на 7.7 у меня обработка по ОЛЕ была, а сдесь хз
#7 by zbv
"конвертация данных" - может помочь а надо создать только справочники и  рег. сведений?
#8 by rassigor
ДА, конфигурация УТ переписанная. Вот нашел на 7.7 :( Быстрое удаление документов и очистка регистров БД за период. Для конфигураций "Торговля и склад", формат баз DBF. Такую бы на 8 найти
#9 by rassigor
Нашел на 8, тока я на проклабе не зареген, может кто нить качнуть и прислать на мыло rassigor@yandex.ru
#10 by Денежко
дела такое-20 минут де то.Новый план обмена-в который включал тока справчоникики , константы, планы видов характеристик,регистры свед...
#11 by rassigor
Глянул на ТЗ, там необходимо чтобы остались неоплаченные доки. То есть наладить план обмена,выгрузить справочники, а необходимые документы догрузить по ОЛЕ:)
#12 by Денежко
не--опять неправда-выгрузи в хмл через стандартную сериализацию!!! --еще 15 мин.
#13 by rassigor
мой семерочный ум, устарел:)
#14 by Денежко
);
#15 by Wladimir_spb
Потом окажется, что переносить нужно еще больше, чем удалять...
#16 by IronDemon
Попробуй с отключенным пересчетом итогов.
#17 by rassigor
а потом че будет?Пересчитывать неделю?
#18 by IronDemon
Так эта, у тебе ведь документов не будет. Или будут? Отключить можно для выбранных регистров, кажись.
#19 by Immortal
имхо : вычленить таблицы в скуле (по структуре на каждый док приходицца от одной до множества таблиц(ТЧ документов - отдельные таблицы)) , которые нужно обрезать . DELETE из этих таблиц. И , под конец, запуск ТИИ с указанием "удалять ссылки на несуществующие объекты"
#20 by rassigor
С SQL знаком плохо. Смотрел Таблицы SQL  там есть _Document440,_Document438_VT10526 и другие разные таблицы, как я понел это документы. Мне надо запросик который будет сравнивать таблицы, если в названии присутствует _Document, то таблицу удалять полностью. Запросик должен выбирать по задаваемому периоду, кто нить может помоч в написании такого запросика?
#21 by rassigor
Вернее скорее всего не удалять таблицу а удалять строки в ней
#22 by Doomer
Что же за кривые бизнес процессы должны быть, чтобы удалять по 150000 документов? Нужно причину знать, а не заниматься удалением.
#23 by nop
DROP имя_таблицы
#24 by rassigor
вот вопрос в том, что имен таблиц может быть 500, как получить этот список?
#25 by rassigor
///
#26 by DK_L
План обмена тебя спасет с фильтрацией по видам документов(тоесть выкидывать в образ периферийки только те ,которые нужны например в преддопределенной процедуре модуля ПО "при отправке подчиненному" Если типЗнч(ЭлементДанных)=Тип("ДокументСсылка....") Тогда ...). В состав ПО не включай регистры накопления ,просто потом в периферийке перепроведешь отфильтрованные доки
#27 by rassigor
а если у этой базы есть уже несколько перефириек
#28 by VitaliySm
на диске ИТС есть обработка "Свертка информационной базы", там тоже все документы за указанный период удаляются, посмотри
#29 by San1
Вот, про урезание базы (в т.ч. удаление доков) через SQL:
#30 by i-rek
да вообще с выключенными итогами быстро удаляется, по крайней мере в файловой
#31 by rassigor
а где их отключить можно?
#32 by i-rek
обработка УправлениеРегистрамиНакопления  с ИТС кажется
#33 by rassigor
у тебя есть ИТС?Можешь кинуть под рукой нет, а сделать сегодня надо
#34 by rassigor
Отключил пересчет итогов, удаляет 400 документов в минуту, без отключения 300 в минуты
#35 by i-rek
вот еще забыли предложить в конфигураторе грохнуть
#36 by MRAK
не надо в конфигураторе грохать, могуть быть проблеммы с обновлением...
#37 by BabySG
Дык за ночь справиться? 1500/4 = 375/60 приблизительно 6,5 часов...
#38 by i-rek
если потом объект восстановить не ручками, а путем загрузки старой конфы без объединения и сравнения, то проблем быть не может
#39 by Advan
грохнуть в конфигураторе, потом загрузить конфигурацию - и все - только потом сделать тестирование, с сжатием таблиц
#40 by MRAK
точно, не прав был...
#41 by tsr
Будут проблемы. Ссылки на документы потеряются. К тому же есть еще журналы, регистры и много чего еще
#42 by rassigor
Друг помог написать запрос, но проблема что он на Оракле, как его в SQL конвернуть BEGIN  FOR t IN (SELECT name FROM sysobjects WHERE table_name LIKE '_Document%')  LOOP выдает ошибку Server: Msg 156, Level 15, State 1, Line 2 Incorrect syntax near the keyword 'FOR'. Server: Msg 170, Level 15, State 1, Line 3 Line 3: Incorrect syntax near 'LOOP'. Server: Msg 170, Level 15, State 1, Line 4 Line 4: Incorrect syntax near '|'.
#43 by i-rek
а ссылки на документы и при Удалить потеряются :)) это и требуется сделать ! опять же журналы нормально пересчитаются - проблем не будет
#44 by i-rek
друг или вообще не в теме или здорово прикололся
#45 by rassigor
Я думаю удалить все строки из Таблиц, а потом Тестирование Исправление сделать, чтобы он удалил все связи
#46 by rassigor
Вот рабочий, запустил его declare @c_name varchar declare c cursor local static for SELECT name FROM dbo.sysobjects WHERE name LIKE '_Document%' open c fetch next from c into @c_name while @@fetch_status= 0 exec ('DELETE from '+@c_name) end
#47 by rassigor
Немного переделал, для быстроты declare @c_name varchar, @sql varchar declare c cursor local static for SELECT name FROM dbo.sysobjects WHERE name LIKE '_Document%' open c fetch next from c into @c_name while @@fetch_status= 0 begin execute ('truncate table dbo.'+ @c_name ) fetch next from c into @c_name end
#48 by rassigor
Удалил 400 тыс доков за 8 минут:), щас делаю Тестирование и Исправление конфигурации
#49 by rassigor
Тока пересчет чего то долго идет:( Может так получиться что игра не стоит свеч из за долго пересчета:(
#50 by rassigor
Тестирование и исправление чего то долго идет, ускорить не как низя?
#51 by РазДва
Пишите запрос, который очистит и движения :)
#52 by rassigor
в регистрах
#53 by nop
пока удовлетворительного решения нет?
#54 by Широкий
Можно попробовать отключить итоги и в транзакции пометить на удаление... потом стандартная обработка удаление помеченных
#55 by rassigor
То есть можно удалить все движения в регистрах накопления, и не делать пересчет??по идее там еще в регистр сведений капает
#56 by rassigor
это все делаеться за 6 дней, оооооочень долго напрямую из СКЛ удаляет за 20 минут все
#57 by Широкий
Пометка или удаление?
#58 by rassigor
Итого пробовал отключал, все равно долго, интересует вариант прямого удаления, сами доки я удалил, все но боюсь что косяки поэтому и делаю тестирование и исправления
#59 by rassigor
напрямую удаление, без пометнки
#60 by Широкий
Попробуй пометку... ради интереса
#61 by rassigor
400 тыс доков??там база 50 гигов, у места нет для таких экспериментов:)
#62 by tsr
А ты удали в конфигураторе доки, а потом восстанови путем объединения. Тогда и узнаешь, прикололся, или нет.
#63 by tsr
Для ответ.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям