Удаление регистрации из плана обмена #561675


#0 by Barabashka
В УТ 10.3 чистил регистр "Соответствие объектов для обмена" от старого плана (обмена с БП 1.6), в новом плане обмена зарегистрировались изменения по регистру сведений, причем ссылки на несуществующие наборы записей с узлом от старого плана. И их такое количество, что при штатном удалении регистрации вываливается после использования 2Гб памяти (системное ограничение). Может кто в курсе - возможно ли удалить регистрацию выборкой, т.е. по одному набору? ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Данные) не подойдет, т.к. загажено несуществующими наборами
#1 by Живой Ископаемый
может удалить регистрацию по всему регистру и потом зарегить только нужные?
#2 by Defender aka LINN
"ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Данные) не подойдет, т.к. загажено несуществующими наборами" - а не просвятишь - что тут с чем соединяется?
#3 by Barabashka
это последний вариант, но рабочий фактически данных по регистру нет, а регистрация ссылается на записи. И указать параметр "Данные" не получится. Проблема решена переделкой стандартной обработки "Регистрация изменений для обмена", вместо чтения изменений сделал удаление, с обработкой прерывания. Т.е. как только память доходит до 2Гб (слежу визуально) - прерываю. Извращение, но лучше пока ничего в голову не лезет :)
#4 by Defender aka LINN
Почему не получится, зачем вы травите?
#5 by Barabashka
А вы когда-нибудь пробовали удалить регистрацию программно у объекта <ОбъектНеНайден>? Что передавали в качестве ссылки?
#6 by Defender aka LINN
Вы таки мне не поверите, но "<ОбъектНеНайден>" - вполне себе ссылка.
#7 by Barabashka
И как найти объект <объектНеНайден>, чтобы передать его в качестве ссылки? Весь вопрос как раз в этом. Только относительно удаленной записи независимого регистра сведений.
#8 by Живой Ископаемый
2 ну... зачем его находить? вам ведь сам объект не нужен
#9 by Axel2009
конечно пробовали
#10 by Hawk_1c
Как вариант, обойди системное ограничение. 64-разрядная ось.
#11 by Barabashka
если не указывать объект (параметр "Данные") - ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Данные) будет очищать всю регистрацию по узлу для этого типа объекта, но так как чтение не может быть выполнено (из-за системного ограничения 2 Гб на процесс) выходит "Недостаточно памяти". Вот и хочется удалять регистрацию по одной записи, что то вроде выборки изменений с возможностью очистки в выборке.
#12 by Живой Ископаемый
2 у вас между утверждением нет объекта, есть только ссылка "ОбъектНеНайден" и "если не указывать объект (параметр "Данные") " есть пробел, который можно заполнить...
#13 by Широкий
Че то я не пойму.. откуда у тебя ограничение вылезло. Покажи как удаляешь регистрацию
#14 by Barabashka
"правла такая фигня получается" (с) Будет вместо огранисение не 2, а 4Гб на процесс. Не сапсает при большом количестве записей. Обработкой удалось выяснить что в 2 Гб влазят только 50 тыс.записей. Рискну предположить, что на x64 будет порядка 100 тыс. А их около 700 тыс.
#15 by Barabashka
стандартная обработка "Регистрация изменений для обмена", при нажатии "Удалить регистрацию изменений" на активном регистре сведений СоответсвиеОбъектовДляОбмена происходит чтение всех записей. Сейчас в процедуру чтения этих записей добавил процедуру удаления, и прерывание после 40 тыс.записей. По другому обойти ограничение не получается.
#16 by Hawk_1c
не будет 4, будет больше... 100% решит. Но это так... топорный метод.
#17 by Defender aka LINN
Запросом из таблицы изменений, например.
#18 by Широкий
Попробуй моей обработкой грохнуть. Данные можно попробовать произвольным запросом вытянуть из (таблицы ИЗМЕЕНЕНИЯ)
#19 by Hawk_1c
будет доступно 8 TB в теории на приложение.
#20 by Живой Ископаемый
2 точно? с учетом того, что толстый клиент - это 32-битное приложение
#21 by Hawk_1c
не... Для 64 разрядных. А если выполнить все на сервере в таком случае...
#22 by Живой Ископаемый
и что будет быстрее - добиться таки отбора по ненанйденымобъектам или перенести код на сервер? :)
#23 by Axel2009
если не знаючи то конечно фигня. а вообще все отлично получается.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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