Имя: Пароль:
1C
1C 7.7
v7: Обработка пакетного удаления объектов
0 gun200
 
01.12.12
09:26
Никто не поделится ? Нужно удалить 1 млн  помеченных на удаление  объектов. стандартная обработка говорит не хватает памяти ! Только обязательно должна проверять ссылки на удаляемые объекты.
1 Mikeware
 
01.12.12
09:29
:-))
2 gun200
 
01.12.12
09:29
База DBF
3 rphosts
 
01.12.12
09:29
база файловая?
4 rphosts
 
01.12.12
09:31
1. сносишь к едреней фене индексы
2.открываешь dbf поочерёдно ну пусть в FoxPro и делаеш команду Pack

ЗЫ бэкапы уже делаешь?
5 Mikeware
 
01.12.12
09:32
(4) и чем ему Pack поможет?
ему с проверкой сссылок надо...
6 gun200
 
01.12.12
09:36
Несколько нашёл обработок, они все при запуске Аппликэйшен еррор пишут при заполнении тз с помеченными доками :(
7 gun200
 
01.12.12
09:43
Только вариант с постепенной пометкой и удалением документов ?
8 Надсмотрщик
 
01.12.12
10:03
(0) Свертку делал?
9 Надсмотрщик
 
01.12.12
10:04
+(8) КД тебя спасет
10 gun200
 
01.12.12
10:05
УдалитьОбъекты(Спис,1,ТабСсыл);
Буду это пробовать :)
11 Mikeware
 
01.12.12
10:05
и как предприятия детей к базам допускают?
12 gun200
 
01.12.12
10:06
(8) можно так сказать ! Что за КД ?
13 gun200
 
01.12.12
10:07
Mikeware не может помочь, так рот закрой и молчи !
14 Mikeware
 
01.12.12
10:09
(13) таким как ты - только декапитация поможет...
15 gun200
 
01.12.12
10:10
Вот что я по Вашему делаю, как детё  ?
16 Mikeware
 
01.12.12
10:12
(15) сначала метишь туеву хучу объектов не проверяя ссылки, а затем думаешь - как удалить...
17 Надсмотрщик
 
01.12.12
10:14
(12) Конвертация данных.
Переносишь данные в идентичную конфигурацию только не помеченные на удаление.
18 gun200
 
01.12.12
10:16
Просто никогда не имел дело с таким количеством документов. Надо же на чём то учится :) КД не пойдет средневзвешенная себестоимость. В их базе по любому полетит !
19 gun200
 
01.12.12
10:19
(14) чем мне поможет декапитация  ? :) Судя по Вашем коментам, то мне она как раз не поможет.
20 Mikeware
 
01.12.12
10:27
(19) "нет человека-нет проблемы"©
зато организация (может быть) программиста найдет...
21 rphosts
 
01.12.12
10:31
Ну раз ссылочная целостность нужна - пробуйте удалять по частям(вручную снимай галочки на проврке). Это очень полезный опыт - в след. раз про регламент не будешь забывать!
22 gun200
 
01.12.12
10:42
(20) УдалитьОбъекты(Спис,1,ТабСсыл) можно вот так удалять пакетн. В список добавлять объекты и потом удалять. Или же снова циклом пройтись по докам пом. на удаление и проверить, если нет ссылок, то удалить.
23 gun200
 
01.12.12
10:46
сразу б_я программиста менять ! Пипец умные, ничего спросить нельзя, сразу обсирают. На_уй тогда тут сидите. Реально со всех моих вопросов на форуме с одним помогли. В остальных, только строили не понятно кого. Все кто считает себя тут пипец умными просто идите в ж-пу.
24 Надсмотрщик
 
01.12.12
10:53
НайтиСсылки(<?>,);
Синтаксис:
НайтиСсылки(<Объекты>,<Ссылки>)
Назначение:
Находит ссылки на объекты, переданные в списке значений.
Параметры:
<Объекты> - конкретное значение искомого объекта или значение типа ''СписокЗначений'', в котором данной процедуре передаются объекты, по которым надо найти ссылки.
<Ссылки> - идентификатор объекта типа ''ТаблицаЗначений'', в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. объект на который ссылаются; 2. объект, который содержит ссылку; 3. комментарий к ссылке.
25 gun200
 
01.12.12
11:34
(24) Спасибо ! Но я думаю искать ссылки будет медленным и очень мало доков удалится. Так как основная масса доков имеет подчинённые документы. И что потом искать в переданной тз опять по циклу ? Я думаю лучше пакетами элементов удалять, через УдалитьОбъекты(<Объекты>,<Проверять>,<Ссылки>). Так будет намного быстрее штук так по 250 000 само то будет !
По циклу заполнять список объекты и через каждые 250 000 удалять. Часов 10-15 но проблем не будет. Конечно перед этим удалю доки, которые не имеют ссылок вообще, через  НайтиСсылки(<?>,);
26 ДенисЧ
 
01.12.12
12:43
Так... Мальчик, отойди от базы и позови взрослых!!!
Тебе ужо всё указали и носом тыкнули. Осталось разжевать и в глотку запихнуть... Но это стоит денег.
27 Надсмотрщик
 
01.12.12
13:29
(26) Я первый, восстанавливать учет после gun200
28 Cthulhu
 
01.12.12
13:42
(25): запусти на ночь, сохрани полученную ТЗ, потом её восстанавливай-анализируй и выгружай список тех, что можно удалить (следующая ночь). потом восстанавливаешь список беспроблемных - и программно удаляй по списку.
29 gun200
 
01.12.12
14:20
НайтиСсылки(<?>,) так же зависнет, как и стандартная обработка удаления помеченных объектов ! Вылет из-за нехватки памяти, как раз и происходит из за этой функции.
Чем не устраивает  УдалитьОбъекты(<Объекты>,<Проверять>,<Ссылки>) ? Что может быть не так ? Это то же самое удаление, как и стандартное, только в объекты можно передать список объектов. И тогда ссылки ищем, только по переданным в списке элементам !
30 gun200
 
01.12.12
14:24
(24) тут согласен глупость сказал про искать в цикле !
31 hhhh
 
01.12.12
14:26
попробовать удалять группами по 100 тысяч.
32 gun200
 
01.12.12
14:33
(25) И где мне указали ?
НайтиСсылки(<?>,);
Синтаксис:
НайтиСсылки(<Объекты>,<Ссылки>)

Этот вариант не пойдёт так же зависнет на нехватке памяти !

Свой вариант уже запустил  УдалитьОбъекты(<Объекты>,<Проверять>,<Ссылки>). Выбрал только все помеченные на удаление документы ,жду вроде уже начал удалять. Только вопрос во времени, сколько он займёт.
33 gun200
 
01.12.12
14:34
прошлый комент на (26)
34 hhhh
 
01.12.12
14:41
(32) ну, между нами, если ты там задал "Проверять", то значит включаешь НайтиСсылки. И у тебя "так же зависнет на нехватке памяти". Голову-то включи.
35 gun200
 
01.12.12
14:47
(34) так вот именно УдалитьОбъекты(<Объекты>,<Проверять>,<Ссылки>), если в объекты передать только документы это 360 000 элементов, то ссылки будет искать, только по ним. А вот если в элементы передать НайтиПомеченныеНаУдаление(Спис)
то тогда виснет ! Так же виснет при нажатии кнопки контроль в удалении помеченных объектов.
Я уже разобрался как удалить, мне просто не понятна реакция некоторых пользователей !
36 gun200
 
01.12.12
14:50
360 000 элементов помеченных на удаление, а то сейчас опять скажут (13)
37 gun200
 
01.12.12
14:52
всё тема закрыта документы удалились, на остальные элементы штатная обработка нашла все ссылки без ошибки  !
38 Надсмотрщик
 
01.12.12
16:35
(32) <Объекты> - конкретное значение искомого объекта или значение типа ''СписокЗначений'', в котором данной процедуре передаются объекты, по которым надо найти ссылки.

Заполняешь поэтапно вначале подчиненными доками.

Но самое первое перед удалением убирают все "старые" период. реквизиты (всю периодику) оставляют только последние на дату свертки.