Имя: Пароль:
1C
1С v8
v8: Удаление большого объема объектов в базе
,
0 mzelensky
 
08.08.12
11:04
Доброго всем. Имеем УТ 10.3 на 8.1, крутится на скуле. Вес базы порядка 55 гигов. Руководству приспичило сделать свертку базы за 4 года (рубануть с 2007 по 2010 года). Обработку, которая сделала свертку я нашел. Как результат имею огромное количество объектов помеченных на удаление. Стандартный механизм удаления вылетает. Перебрал более десятка обработок, но все никак не найду подходящую. Сейчас пользую "Пакетное удаление объектов" (за 20 часов работы обработала ток 24%), но она пишет, что на многие объекты имеются ссылки и не удаляет их (подозреваю ,что дела в РС).

В общем, чем можно решить данную проблему? У кого-нить есть обработка  или механизм для удаления больших объемов данных?!
1 Нуф-Нуф
 
08.08.12
11:06
какую проблему нужно решить? длительное время на пакетное удаление - тут имхо ничем не помочь. только ждать.
не удаляются объекты так как есть ссылки - анализировать конкретные объекты
2 Широкий
 
08.08.12
11:09
(0) Копай в сторону удаления прямыми запросам к скулю.
За денежку обработку предлагать?
3 DrShad
 
08.08.12
11:10
(1) +100500
(2) ага и потом потеря ссылочной целостности
4 Широкий
 
08.08.12
11:11
(3) И контроль ссылочной целостности можно реализован
5 Irek-kazan
 
08.08.12
11:11
не мучайся drop database  и заявление
6 DrShad
 
08.08.12
11:12
(4) и чем оно тогда будет быстрее?
7 mzelensky
 
08.08.12
11:12
(2) за денежку не надо - ищу за "БОЛЬШОЕ СПАСИБО!"
8 Широкий
 
08.08.12
11:12
(6) Быстрее в десятки раз
9 DrShad
 
08.08.12
11:13
(8) за счет чего?
10 mzelensky
 
08.08.12
11:14
(1) косяк в том, что при анализе объектов (ссылок на объекты) вылазят РС типа "объекты доступа"...они не зачищаются (по крайней мере стандартными средствами)...пробовал доп. обработки, но что-то результата не очень много
11 Широкий
 
08.08.12
11:16
(9) Удаление/пометка на удаление в 1с штатными методами генерит кучу мелких запросов на каждый объект.
Если их обобщить - получится несколько запросов, но уже на список объектов. В основном за счет этого.
12 mzelensky
 
08.08.12
11:17
(11) да-да, все это хорошо. Рабочий механизм есть?!
13 Широкий
 
08.08.12
11:20
(12) есть, смотри на инфостарте
14 v8Newbie
 
08.08.12
11:20
(0) Табличные части документов, помеченных на удаление, почисть.
15 бомболюк
 
08.08.12
11:24
можно попробовать пойти иным путем: не удалять ненужное из старой базы, а перенести нужное в новую, и в ней потом работать. Я так понял что объем ненужной информации намного превосходит нужную.
16 mzelensky
 
08.08.12
11:25
(13) уже смотрел. Говорю же - более десятка уже перебрал. Может просто нужную не нашел...покажи, какая по твоему наиболее подходит.
17 mzelensky
 
08.08.12
11:25
(14) и что это даст?
18 v8Newbie
 
08.08.12
11:26
(17) Уменьшение базы проверки ссылочной целостности.
19 mzelensky
 
08.08.12
11:26
(15) на данный момент пошли да этому пути...так что будем и завершать по нему. В следующий раз (не дай бог он будет) возможно сделаем перенос.
20 milan
 
08.08.12
11:28
(6) Тем что используется DML - пакетное удаление без всякого контроля ссылок, вместо побъектного удаления с контролем ссылок на уровне платформы ?
21 mzelensky
 
08.08.12
11:28
(18) ОК, сделаю!
22 v8Newbie
 
08.08.12
11:31
(4) Интересно, как это сделать, если механизм контроля зашит в ядро? Таблицу config разобрать?
23 МихаилМ
 
08.08.12
11:36
(22)
DBSchema
24 alextom81
 
08.08.12
11:38
(0)
1. Выгрузить в XML справочники
2. Написать обработку по регистрации изменений
3. Создать чистую базу
4. Выгрузить туда зарегистрированные изменения и справочники (уже существующие не сдублируются)
5. Написать обработку по выгрузке, загрузке и проверке остатков по всем РН с измерениями в XML файл - выгрузить.
6. Определиться с необходимыми записями РС (в УТ их очень мало) - через универсальный обмен перекинуть.
7. Загрузить остатки, сверить их на начало, середину, и конец периода
8. Перекинуть пользователей обработкой
9. Начинать работать - периодически добавляя из старой базы необходимые данные любым из вышеописанных методов (главное - чтобы при каждом методе сохранялись UID)
25 v8Newbie
 
08.08.12
11:39
(23) Да, прошу прощения.
26 alextom81
 
08.08.12
11:39
(0) - плюс этой методы - можно будет в несколько дней процесс свёртки осуществлять
27 myk0lka
 
08.08.12
11:41
Очень забавно этот топик перекликается с v8: Уничтожение информации с жестких дисков ))))
28 v8Newbie
 
08.08.12
11:44
(25)-> (23) но это не отменяет главного вопроса. На инфорстарте подобных разработок со стороны SQL я не видел. Разбор DBSchemа описан только только у ребят, которые написали Enterprise Integrator. Да и то... схематично, в общем.
29 mzelensky
 
08.08.12
11:44
(27) ОЧЕНЬ забавно я бы сказал :)
30 mzelensky
 
08.08.12
11:45
(26) слишком накладно. Сейчас попробую сделать чуток проще.
31 v8Newbie
 
08.08.12
11:45
(27) Какой-то шухер происходит в фирме. Бывает. Может начальство сменилось, или там налоговая что-то просит:)
32 mrWatson
 
08.08.12
11:46
(0) тоже сталкивались с удалением большого кол-ва данных, вот обработка http://1csoft.com/node/924
33 mzelensky
 
08.08.12
11:48
(32) я сейчас аналогичной пользуюсь.
34 Широкий
 
08.08.12
11:50
ну вот например
http://infostart.ru/public/98348/
35 v8Newbie
 
08.08.12
11:51
(32) Ну а чего такого сложного? Такое можно и самому написать, и без транзакций. Главное условие в цикле - все объекты, в которых есть ссылка на удаляемый, сами должны быть помечены на удаление. Проблема только с регистрами сведений.
36 v8Newbie
 
08.08.12
11:53
(34)  "Запустить штатный механизм удаления помеченных на удаление (т.к. во 1-ых: Планы обмена в данном механизме не удаляются через SQL, а на них устанавливается пометка удаления; во 2-ых: Обычно существуют элементы справочников, которые помечены на удаление, а удалить их раньше было нельзя, т.к. использовались в документах)." - нууу...
37 Широкий
 
08.08.12
11:55
38 mzelensky
 
08.08.12
12:05
(37) ключевая фраза "Не поддерживается ссылочная целостность." - так что НЕТ!
39 Широкий
 
08.08.12
12:08
(38) Дык доработай.
40 бомболюк
 
08.08.12
12:09
блин и чего вы так в эту ссылочную целостность вцепились? Прибиваете данные средствами SQL, потом тестирование и исправление с галками "Очищать ссылки" и "Удалять объекты" - и все. 20 раз так делал все ОК.
41 mzelensky
 
08.08.12
12:13
(40) и что потом? Есть док "Приходный кассовый ордер". в Нем 10 реализаций. Ты без контроля удаляешь и очищаешь ссылки. Получаешь в результате 10 строк в документе из которых 4 строки ПУСТЫЕ (документа нет). И что случается в данном случае с регистром "Взаиморасчеты с контрагентами по документам расчетов" ?
42 бомболюк
 
08.08.12
12:23
(41) а тебе нужно оставить все эти реализации в так сказать первозданном виде при переносе? или можно их заменить на "Документ расчетов с контрагентом"?
43 Прохожий
 
08.08.12
12:24
(41) Поставь галку "создавать", а потом сам подчистишь какие лишние создаст. В любом случае создаст пустышки, но ссылочная целостность сохранится. И регистру не каюк.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой