Имя: Пароль:
1C
1С v8
как правильно удалить много элементов справочника
0 бегинер
 
31.05.18
15:08
есть справочник, порядка 500 тыс элементов, справочник только читается, ссылки на его элементы не используется.

если делать через пометить на удаление и стандартно удаление помеченных -не видно прогресса

хочу заюзать прогресс бар + запрос - выборка - в цикле уже через Объект.Удалить() удалять

верный ли подход?

хочу индикацию прогресса и скорость
подскажите как правильно это сделать?
1 Cool_Profi
 
31.05.18
15:09
Запусти в толстых формах и веди прогресс, ка хочешь.
2 бегинер
 
31.05.18
15:15
а в 1с нет возможности запросом удалять?
типа delete * from table where id in ... ?
3 Cool_Profi
 
31.05.18
15:18
(2) Нет. Если только лезьть в скуль. Но это нарушение лицензии.
И как ты при этом отработаешь все подписки на?
4 бегинер
 
31.05.18
15:20
(3) ясно, обычная файловая у меня без скуль
5 иубиповец
 
31.05.18
15:25
Удалите справочник из конфигуратора, рестуктуризируйся. Создать с такими же параметрами - залить нужные данные из копии с те ми же УИД-ами:)
6 бегинер
 
31.05.18
15:30
(5) мне надо много удалить, но не все :)
7 МихаилМ
 
31.05.18
15:32
удаляйте в транзакции с адаптивным расчетом количества элементов  в транзакции.
8 бегинер
 
31.05.18
15:44
(7) спасибо почитаю, на такое и рассчитывал  - на извращенные способы
9 singlych
 
31.05.18
16:03
(6) выгрузи в XML то, что нужно, потом (5) и загрузи то, что выгрузил
10 Вафель
 
31.05.18
16:05
(7) в 8 это не особо работает
11 бегинер
 
31.05.18
20:59
вдогонку подскажите есть doevents в 1с?

в цикле удаляю - хочу чтоб в это время можно что-то было делать, а то сейчас в долгом цикле фризы
12 Злопчинский
 
31.05.18
21:37
(7) а что такое "адаптивный ...в транзакции", смутно соображаю, но не уверен...
13 d4rkmesa
 
31.05.18
21:40
(11) ДлительныеОперации посмотрите в БСП 2.4.x. Но это не то что всякие async/await в других ЯП - костыли по большому счету. Но управляемый интерфейс не фризится. При желании можно многопоточную обработку забабашить - судя по последним обновлениям что-то подобное используется. Но нужно поковырять изрядно интерфейсы БСП или в типовых последних смотреть, чтобы разобраться.
14 МихаилМ
 
01.06.18
06:30
(12)
подбор оптимального размера количесва удаляемых элементов в транзакции . методом дихотомии.
15 МихаилМ
 
01.06.18
06:30
(0)
вроде для большого колва данных быстрый результат продемонстрировал метод
создания обмена с добавлением в него удаляемых элементов.
16 VladZ
 
01.06.18
06:51
"500 тыс элементов" - я бы средствами SQL удалял. Но там не будет индикации прогресса.
17 hhhh
 
01.06.18
07:50
(11) в принципе можно обычным удалением. Разбить на порции по 10 тыс элементов, например, сначала все на букву "А", потом на букву "б" и так далее. и так 50 раз. Часа за 3 всё удалишь.Без всяких sql.
18 бегинер
 
01.06.18
09:04
(17) всем спасибо, за ночь все удалил порциями :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший