Как почистить регистр сведений. #763281


#0 by Zombi
Удаляю из базы организацию, данных очень много, а сервер слабенький. В базе много записей в регистре "Версии объектов". Как оптимальнее удалить из этого регистра записи с документами по моей организации?
#1 by ДенисЧ
Перебрать всё, получать каждый объект, проверять организацию. При необходимости удалять
#2 by asady
+ делать это в транзакции по 100-1000 записей.
#3 by Prince-Sentido
несколько потоков
#4 by mikecool
транзакции еще актуальны?
#5 by mikecool
набор записей + отбор по организации, Записать
#6 by ДенисЧ
Откуда в версиях организации?
#7 by mikecool
я стратег, остальное не мое )))
#8 by Zombi
Делаю так:             И УдаляемыйОбъект.Организация = Организация Тогда              А можно как то отбор задавать и удалять не по одной строке а по 100, например?
#9 by User_Agronom
Там объект есть. А у объекта иногда бывает поле "Организация" С распаковкой очень долго получится.
#10 by Zombi
Расскажи, как не сильно нагружая сервер отобрать записи регистра с нужной организацией?
#11 by User_Agronom
Запросом, не?
#12 by ДенисЧ
Научи нас, сущеглупых, как запросом из хранилища значения данные получать...
#13 by User_Agronom
Ты серьёзно или это жалкая попытка потролить?
#14 by ДенисЧ
Абсолютно серьёзно
#15 by vicof
Не такая уж и жалкая, раз не можешь определить)
#16 by xxTANATORxx
вот это вот в запрос можно перенести Если (Не Справочники.ТипВсеСсылки.СодержитТип(ТипЗНЧ(УдаляемыйОбъект)))             И УдаляемыйОбъект.Организация = Организация Тогда
#17 by User_Agronom
Измерения у РС Версии объектов: Объект, версия, дата, автор, номер. Выбрать Объект Поместить НаборРеализаций из РС.ВерсииОбъектов где Объект ссылка Документ.РеализацияТоваровУслуг; Выбрать Объект из НаборРеализаций где Объект.Организация = &Организация
#18 by User_Agronom
+демонически по метаданным пробежаться и собрать в запрос все документы, у которых есть реквизит Организация.
#19 by ДенисЧ
Гениально! Сам попробовал?
#20 by xxTANATORxx
ТС, озвучь количество записей от этого зависит подход
#21 by User_Agronom
Как я тебе с планшета попробую? ;) Пиши что не будет работать: поверю на слово.
#22 by Dmitrii
>> по метаданным пробежаться и собрать в запрос все документы, у которых есть реквизит Организация. +1 Я бы плясал не от регистра Версии, а от документов. Единым запросом выбрал бы все документы с реквизитом Организация, имеющие версии. Можно порциями по 1000. И потом пошел удалять выбранные записи.
#23 by ДенисЧ
Вот это  где Объект.Организация = &Организация
#24 by User_Agronom
У реализации нет реквизита Организация?
#25 by ДенисЧ
А у тебя ещё нет реализации. У тебя только хранилище значения есть.
#26 by Dmitrii
Ты о каком хранилище говоришь?
#27 by User_Agronom
В хранилище не объект, а версия объекта.
#28 by Zombi
уже выбъет 1с с ошибкой "Недостаточно памяти". У объекта посмотри сколько типов значений, поэтому там соединений дофига получается.
#29 by Zombi
Записей чуть больше 700к. Но сервак ваще не очень.
#30 by User_Agronom
Это чтобы мне посмотреть версии документа №1 нужно всё хранилище перелопатить, все распаковать, чтобы выбрать нужные?
#31 by hhhh
ну там типов меньше 10. Можно 10 раз запустить, дпя каждого типа документа.
#32 by Dmitrii
А не надо так делать! Надо сначала отобрать конкретные документы с реквизитом Организация нужного значения. А потом сделать внутренне соединение с регистром Версии.
#33 by User_Agronom
Там пакетный запрос, если на намёк. Поставь в первом выбрать первые 100.
#34 by НЕА123
у меня мало типов. ну через выразить+объединить. в общем +1.
#35 by Быдло замкадное
Зачем вобще очищать регистр сведений? Типовая обработка удалит справочник и с ним!
#36 by Zombi
Стандартная обработка умирает с ошибкой "Недостаточно памяти". А так она все чистит, да.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С