Имя: Пароль:
1C
 
Удаление неиспользуемых элементов для большой базы
,
0 Klesk
 
12.01.18
17:10
все какие видел , включая типовую, используют НайтиПоСсылкам
которая очень медленная, так как ищет и возвращает все ссылки на объекты
Есть какие то другие пути автоматизации этой задачи?
1 Klesk
 
12.01.18
17:13
+ и не монопольно
2 Мыш
 
12.01.18
17:13
(0) Написать свою обработку, которая предварительно проанализирует ссылки в метаданных и будет искать только в тех объектах, где возможны ссылки.
3 Джинн
 
12.01.18
17:14
(0) БыстроНайтиПоСсылкам
4 lodger
 
12.01.18
17:14
(3) МойМодуль.БыстроНайтиПоСсылкам()
5 Волшебник
 
модератор
12.01.18
17:14
(3) А если нужно ещё быстрее?
6 Мыш
 
12.01.18
17:15
(5) МухойНашелПоСсылкам()
7 Klesk
 
12.01.18
17:27
(2) а есть функция аналог "Найти ссылки на объект" как в конфигураторе?
8 Klesk
 
12.01.18
17:28
"Поиск ссылок на объект" т.е.
9 Мыш
 
12.01.18
17:29
(8) Нет. Только суррогат вида "Для Каждого ЭлементКоллекции Из Метаданные.*" )
10 Lama12
 
12.01.18
17:38
(0) Пожалуй это самый быстрый вариант. И делать его нужно либо монопольно, либо так что б за время поиска ссылок не вводились новые данные.
11 timurhv
 
12.01.18
17:44
12 timurhv
 
12.01.18
17:46
+(11) Один раз надо было удалить 480тыс разных элементов. Стандартная на "НайтиПоСсылкам" задумалась на 2-3 дня.
Эта по ссылке за 1.5 часа справилась.

Только надо посмотреть исправили или нет ошибку битых ссылок в регистрах сведений, когда удаляемый объект находится в измерениях.
13 Вафель
 
12.01.18
17:49
если знаешь где нужно искать то можно самому запрос написать
14 Klesk
 
12.01.18
17:51
(11) я так понимаю она только помеченные на удаление удаляет
15 timurhv
 
12.01.18
17:55
(14) "Тыж программист". Там есть бесплатная версия.
Работает как в (9).
16 Cyberhawk
 
12.01.18
19:00
ИР в помощь, находишь все объекты в групповой обработке и затем передаешь их в удаление
17 Злопчинский
 
12.01.18
19:07
А вот если объект типа справочник общего вида....
18 Maniac
 
12.01.18
19:13
Легко.
19 Klesk
 
12.01.18
19:13
Стоп, а если УТ 11.1 (режим совместимости Версия 8.2.16)
а в справке:
Примечание:

Если параметр ОбластьПоиска неопределен или используется режим совместимости Версия8_3_4 и ниже, поиск осуществляется во всех тех данных, которые доступны в рамках текущего сеанса с учетом разделения (условное разделение учитывается).

Это значит что не получится?
20 Klesk
 
12.01.18
19:39
а не все работает, спасибо

а в каких метаданных искать ссылки? Во всех?
как быть например с планами обмена?
21 mistеr
 
12.01.18
20:30
(2) А разве НайтиПоСсылкам() не так делает?
22 Klesk
 
13.01.18
11:57
написал обработку, ищу ссылки на объект мет. в метаданных спр, док, РС, РН, Бизн.проц
эти метаданные передаются третьим параметром

СсылкиНаНайденныеОбъекты=НайтиПоСсылкам(МассивУдаляемыхСсылок,Новый Массив,ВключенныеОбъектыМет);

создал в справочнике валюты новую, запустил удаление элементов только по этому справочнику,  в итоге уже 24 часа работает
видимо тоже не вариант или что то не так делаю?
23 mexanik_96
 
13.01.18
12:06
(0) ирп(инструменты разработчика) посмотри
24 Lama12
 
13.01.18
12:09
(22) Мне вот интересно. Разработчики дали определенный инструмент. Они отвечают за его работу.  Ты уверен что хочешь взять на себя ответственность за разрушения базы в случае чего? Хотя если вышестоящее руководство настаивает и принимает риски на себя, то это конечно вариант.
25 Лефмихалыч
 
13.01.18
12:18
(5) УдалитьКХерамПотомБоротьсяСПоследствиями()
26 mistеr
 
13.01.18
13:34
(22) О — Отладка.
Т — Тестирование.
© Азбука программирования.
27 Klesk
 
13.01.18
14:53
(26) там она висит на НайтиПоСсылкам , чего там отлаживать
(24) ну во первых речь об удалении уже не идет, хотя бы пометить, для удаления есть инструменты нарушающие политику 1с, а пометка ни к чему страшному не приведет
28 Лефмихалыч
 
13.01.18
15:43
(27) городи огород с прямыми запросами к СУБД, раз так. Нефиг было делать, где ни попадя ЛюбаяСсылка.
29 kubik_live
 
13.01.18
19:22
(0) Смотри ИР (16). Мне помогло
30 Klesk
 
15.01.18
22:53
(16) (29) спасибо за ИР, помогло удалить помеченные, но оно вроде как не решает исходную задачу - пометить на удаление, или я не разобрался?
31 Tateossian
 
15.01.18
23:34
Поправьте, если не прав: хай ловд сервисы, типа ВК.ком, ФБ.ком, миста.ру :3 и так далее - они ж вообще не удаляют данные, но занимаются очисткой?
32 tesseract
 
15.01.18
23:37
(28) Делал обработку по очень быстрому удалению - с последствиями до сих пор имеем дело, не все данные удалось выцепить из связанных таблиц.
База больше 400Гб. Тестирование и исправление просто виснет :-)
33 TormozIT
 
гуру
25.01.18
23:19
(30) Инструмент "Удаление объектов с контролем ссылок" позволяет определять, на какие из выбранных (например всех объектов из нужной таблицы) объектов нет полезных ссылок. Далее по этому признаку можно выбрать строки кандидатов и передать их в инструмент "Подбор и обработка объектов" и там уже пометить на удаление.
http://imagizer.imageshack.com/img923/1747/qTskp7.png
34 cons74
 
26.01.18
07:14
(33) меня в вашей обработке смущает вот это: http://shot.qip.ru/00Qtkp-6oZhWgxjC/(большой кусок закомментированного кода)
35 TormozIT
 
гуру
26.01.18
21:25
(34)
Этот код оставлен достаточно давно для подстраховки перехода на более универсальный подход. Уже года 2 как там не возникало потребности в доработках.
Поэтому его можно считать почти бесполезным.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.