|
Удаление регистрации из плана обмена | ☑ | ||
---|---|---|---|---|
0
Barabashka
26.07.11
✎
08:08
|
В УТ 10.3 чистил регистр "Соответствие объектов для обмена" от старого плана (обмена с БП 1.6), в новом плане обмена зарегистрировались изменения по регистру сведений, причем ссылки на несуществующие наборы записей с узлом от старого плана. И их такое количество, что при штатном удалении регистрации вываливается после использования 2Гб памяти (системное ограничение). Может кто в курсе - возможно ли удалить регистрацию выборкой, т.е. по одному набору?
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Данные) не подойдет, т.к. загажено несуществующими наборами |
|||
1
Живой Ископаемый
26.07.11
✎
08:13
|
может удалить регистрацию по всему регистру и потом зарегить только нужные?
|
|||
2
Defender aka LINN
26.07.11
✎
08:14
|
(0) "ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Данные) не подойдет, т.к. загажено несуществующими наборами" - а не просвятишь - что тут с чем соединяется?
|
|||
3
Barabashka
26.07.11
✎
09:08
|
(1) это последний вариант, но рабочий
(2) фактически данных по регистру нет, а регистрация ссылается на записи. И указать параметр "Данные" не получится. Проблема решена переделкой стандартной обработки "Регистрация изменений для обмена", вместо чтения изменений сделал удаление, с обработкой прерывания. Т.е. как только память доходит до 2Гб (слежу визуально) - прерываю. Извращение, но лучше пока ничего в голову не лезет :) |
|||
4
Defender aka LINN
26.07.11
✎
10:12
|
(3) Почему не получится, зачем вы травите?
|
|||
5
Barabashka
26.07.11
✎
10:32
|
(4) А вы когда-нибудь пробовали удалить регистрацию программно у объекта <ОбъектНеНайден>? Что передавали в качестве ссылки?
|
|||
6
Defender aka LINN
26.07.11
✎
10:36
|
(5) Вы таки мне не поверите, но "<ОбъектНеНайден>" - вполне себе ссылка.
|
|||
7
Barabashka
26.07.11
✎
13:46
|
(6) И как найти объект <объектНеНайден>, чтобы передать его в качестве ссылки? Весь вопрос как раз в этом. Только относительно удаленной записи независимого регистра сведений.
|
|||
8
Живой Ископаемый
26.07.11
✎
13:49
|
2(7) ну... зачем его находить? вам ведь сам объект не нужен
|
|||
9
Axel2009
26.07.11
✎
13:53
|
(5) конечно пробовали
|
|||
10
Hawk_1c
26.07.11
✎
14:01
|
Как вариант, обойди системное ограничение. 64-разрядная ось.
|
|||
11
Barabashka
26.07.11
✎
14:02
|
(8) если не указывать объект (параметр "Данные") - ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Данные) будет очищать всю регистрацию по узлу для этого типа объекта, но так как чтение не может быть выполнено (из-за системного ограничения 2 Гб на процесс) выходит "Недостаточно памяти".
Вот и хочется удалять регистрацию по одной записи, что то вроде выборки изменений с возможностью очистки в выборке. |
|||
12
Живой Ископаемый
26.07.11
✎
14:03
|
2(11) у вас между утверждением нет объекта, есть только ссылка "ОбъектНеНайден" и "если не указывать объект (параметр "Данные") " есть пробел, который можно заполнить...
|
|||
13
Широкий
26.07.11
✎
14:09
|
(0) Че то я не пойму.. откуда у тебя ограничение вылезло.
Покажи как удаляешь регистрацию |
|||
14
Barabashka
26.07.11
✎
14:10
|
(9) "правла такая фигня получается" (с)
(10) Будет вместо огранисение не 2, а 4Гб на процесс. Не сапсает при большом количестве записей. Обработкой удалось выяснить что в 2 Гб влазят только 50 тыс.записей. Рискну предположить, что на x64 будет порядка 100 тыс. А их около 700 тыс. |
|||
15
Barabashka
26.07.11
✎
14:20
|
(13) стандартная обработка "Регистрация изменений для обмена", при нажатии "Удалить регистрацию изменений" на активном регистре сведений СоответсвиеОбъектовДляОбмена происходит чтение всех записей.
Сейчас в процедуру чтения этих записей добавил процедуру удаления, и прерывание после 40 тыс.записей. По другому обойти ограничение не получается. |
|||
16
Hawk_1c
26.07.11
✎
14:30
|
(14) не будет 4, будет больше... 100% решит. Но это так... топорный метод.
|
|||
17
Defender aka LINN
26.07.11
✎
14:30
|
(7) Запросом из таблицы изменений, например.
|
|||
18
Широкий
26.07.11
✎
14:35
|
(14) Попробуй моей обработкой грохнуть.
http://infostart.ru/public/87506/ Данные можно попробовать произвольным запросом вытянуть из (таблицы ИЗМЕЕНЕНИЯ) |
|||
19
Hawk_1c
26.07.11
✎
14:38
|
(16) будет доступно 8 TB в теории на приложение.
|
|||
20
Живой Ископаемый
26.07.11
✎
14:40
|
2(19) точно? с учетом того, что толстый клиент - это 32-битное приложение
|
|||
21
Hawk_1c
26.07.11
✎
14:43
|
(20) не... Для 64 разрядных.
А если выполнить все на сервере в таком случае... |
|||
22
Живой Ископаемый
26.07.11
✎
14:44
|
и что будет быстрее - добиться таки отбора по ненанйденымобъектам или перенести код на сервер? :)
|
|||
23
Axel2009
26.07.11
✎
15:42
|
(14) если не знаючи то конечно фигня. а вообще все отлично получается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |