Имя: Пароль:
1C
 
Удаление помеченных объектов не стандартным способом
,
0 Alexvs159
 
15.12.23
05:27
Всем привет! Имеется 32-битный сервер 1С (знаю, стрёмно, зато легально) и база БГУ, в которой после свёртки образовалось 300 с лишним тысяч объектов на удаление. Стандартная процедура удаления падает по нехватке памяти даже с небольшим количеством объектов (32-битный сервер, процесс упирается в предел по памяти). Можно, конечно, выгрузить dt и удалить объекты в файловом варианте, но это как-то неспортивно. Есть ли вариант зачистить помеченные объекты какими-то альтернативными средствами в обход штатной обработки?
1 rphosts
 
15.12.23
05:37
(0) ну ты-же понимаешь, что эти объекты перед удалением проверяются на наличие ссылок на них? И это безопасное удаление. Если очень уверен в том, что ссылок на них 100% нет - удали программно. Только бэкап не забудь сделать.
Но есть и другой вариант: сделай РС - помести в него все ссылки на удаляемые объекты и в фоне потоков в 5 небольшими порциями проверяй на наличие ссылок и если нет - удаляй... но сначала конечно бэкап
2 DJ Anthon
 
15.12.23
05:46
Удаляй по частям, насколько я помню, в бгу не сильно связанные объекты. я добавил в удаление объектов возможность заполнения запросом, где я сам закидываю запросом нужные мне для удаления объекты. но 32 бита в 2023 году, конечно, перебор, этого не хватит на элементарную работу БГУ. проще выгрузить базу и на домашнем компе обработать, имхо
3 Скучный бух
 
15.12.23
06:15
Могу посоветовать инструменты разработчика, недавно нужно было удалить 13к объектов, пробовал стандартной обработкой удаления, делалось 3 или 4 суток, сервер 64 битный, железо норм (расписывать нет смысла думаю). ИР обработал почти за час ~900 секунд контроль ссылочности и 48 минут само удаление. Был приятно удивлен)
4 Alexvs159
 
15.12.23
07:39
(3) спасибо, ценный совет. Попробую сделать так, если памяти процессу хватит
(2) на обычную работу хватит, я выставил минимальное количество соединений на процесс, вроде вытягивает.
5 TormozIT
 
гуру
15.12.23
09:03
(4) Если памяти не хватит, то запусти в 64б КЛИЕНТе портативный вариант ИР. Он все делает на клиенте. Еще можно и в непортативном варианте с параметром запуска ЗапретитьАсинхронностьИР.
6 VladZ
 
15.12.23
10:42
(0) На инфостарте есть обработка. Поищи.
7 Garykom
 
гуру
15.12.23
11:18
(0) https://v8.1c.ru/platforma/litsenziya-dlya-razrabotchikov/

1. обновляешь свой сервер 1С x32 до свежей устраивающей платформы (не обязательно 8.3.23 можно и 22 и 21)
2. выгоняешь всех, запрещаешь вход юзеров, делаешь бэкап
3. останавливаешь сервер 1С x32 (субд не трогаешь)
4. ставишь рядом платформу/сервер 1С x64 8.3.23, обязательно отдельный порт и каталог сервера
5. получаешь комьюнити-лицензию
6. добавляешь базу из субд
7. запускаешь удаление
8. возвращаешь все назад, стопишь x64, запускаешь x32
8 Garykom
 
гуру
15.12.23
11:19
(7)+ конечно лучше это делать на отдельном компе/сервере, на i9-13900
9 Donkey_hot
 
15.12.23
11:23
(7) Это случаем не выходит за рамки соглашения об использовании комьюнити-лицензии?
10 Garykom
 
гуру
15.12.23
11:26
(9) серое поле
технически обработка данных может являться частью разработки
ибо выполняется спецом 1С а не пользователями
11 vde69
 
15.12.23
11:30
можно попробовать выборочное штатное удаление, по метаданным.

выбираем по одному типу объекта и его мочим, удалятся не все, но в целом это рабочий вариант, хоть и длительный...
12 Tarlich
 
15.12.23
11:31
ААА ! точно ! сегодня же пятница !!! удаляй частями -))
а что за СУБД ? средствами Субд - самое быстрое -)
если точно знаеш что на удаляемые обьекты нету ссылок то накидать обработку же можно - на ИС куча
13 shuhard
 
15.12.23
11:32
(7) стоя в гамаке на лыжах =)
14 Garykom
 
гуру
15.12.23
11:39
(13) нет
это самый удобный способ
легко повторить в будущем
15 IVT_2009
 
15.12.23
11:45
А как например проверить несколько млн записей номенклатуры на ссылки ? Большая часть мусор, но проверка штатными средствами - очень долгий процесс.
16 Tarlich
 
15.12.23
12:02
(15) вариантов куча - взять рег и ли счет учета где субконто номенклатура и если оборот = Null ... фантазировать можно
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.