![]() |
![]() |
![]() |
|
Очистка движений документа... | ☑ | ||
---|---|---|---|---|
0
ДенисЧ
20.07.12
✎
15:26
|
Есть докУмент, который делает большую уйму движений...
Если его распроводит штатно, то это 10 минут зависона все базы. Посему решил было я убирать движения внетранзакционно... об = док.ПолучитьОбъект(); движ = об.Движения; Для Каждого д из движ Цикл Сообщить("" + д); д.Прочитать(); Сообщить("Прочитали..."); Если д.Количество() > 0 Тогда Сообщить("" + д + " " + д.Количество()); д.Очистить(); Сообщить("Очистили..."); д.Записать(Истина); КонецЕсли; КонецЦикла; А потом об.Записать(РежимЗаписиДокумента.ОтменаПроведения); В большинстве своём идет нормально, зависоны не наблюдаются и всё хорошо. Но вот наткнулся на регистр, по которому 2'400'000 записей... При Прочитать() оно валится в "Недостаточно памяти"... Подумал было удалять частями, накладывая на движ отбор по коду операции, так овощтам - операция недоступна при добавлении значения отбора... Что делать? Можно движения скулем удалить, но потом итоги считать надо, а база рабочая... |
|||
1
Fragster
гуру
20.07.12
✎
15:29
|
(0) а нафига там прочитать? просто создаешь набор, устанавливаешь отбор, записываешь
|
|||
2
Beduin
20.07.12
✎
15:29
|
(0) Можно только гадать как ты записал 2400000 записей без этой ошибки
|
|||
3
ДенисЧ
20.07.12
✎
15:30
|
(2) Я? Это не я, это уппырище записало, само :-)
(1) Я для начала проверял, есть ли там что-то вообще... А сейчас проверю без чтения... |
|||
4
Fragster
гуру
20.07.12
✎
15:31
|
(3) проверяй, есть ли там что запросом с "выбрать первые 1"
|
|||
5
ДенисЧ
20.07.12
✎
15:31
|
(4) тоже вариант, конечно...
|
|||
6
Fragster
гуру
20.07.12
✎
15:32
|
(5) никуя себе "тоже"
|
|||
7
ДенисЧ
20.07.12
✎
15:40
|
ну, без чтения вроде чистится...
|
|||
8
Spieluhr
20.07.12
✎
15:44
|
(0) Читать набор записей не нужно если через Объект.Движения идет обращение
|
|||
9
ДенисЧ
20.07.12
✎
15:46
|
(8) Если не читать, то Количество() = 0 всегда, отсюда и идея чтения была.
|
|||
10
Fragster
гуру
20.07.12
✎
15:47
|
(7) ты пиши, если чо
|
|||
11
Fragster
гуру
20.07.12
✎
15:47
|
(8) та ну?
|
|||
12
Spieluhr
20.07.12
✎
15:48
|
(9) Просто непонятно зачем читать если следующей строкой идет удаление
|
|||
13
Fragster
гуру
20.07.12
✎
15:49
|
(12) путаешь. если через Объект.Движения - то просто отбор уже наложен. читать нужно (не нужно, но один из способов, да), чтобы не записывать пустой набор когда он уже пустой.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |