|
Удаление записей справочника | ☑ | ||
---|---|---|---|---|
0
trialex3
15.10.21
✎
10:49
|
Добрый день. Какой самый правильный и/или самый быстрый способ удалить все данные в справочнике (40к записей). В гугле все примеры через объект.Удалить() делаются - неужели это оптимальный вариант? Это же очень долго.
|
|||
1
ДенисЧ
15.10.21
✎
10:49
|
А ссылки кто проверять будет?
Самый быстрый это drop database, но он тебя не устроит |
|||
2
Bigbro
15.10.21
✎
10:51
|
а если УРБД?
|
|||
3
exwill
15.10.21
✎
10:52
|
(1) truncate table, не путай людей
|
|||
4
trialex3
15.10.21
✎
10:53
|
(1) Ссылок на него точно нету нигде
|
|||
5
exwill
15.10.21
✎
10:56
|
(4) Есть команда очистить таблицу. Называется truncate table. Вот ее тебе и надо выполнить
|
|||
6
ДенисЧ
15.10.21
✎
10:57
|
(3) (5) Фу. Полумеры. А если там несколько справочников?
|
|||
7
trialex3
15.10.21
✎
10:58
|
(5) Это у какого объекта такая команда?
|
|||
8
exwill
15.10.21
✎
10:59
|
(7) Это у базы данных такая команда. На языке SQL
|
|||
9
successful
15.10.21
✎
10:59
|
(0) 40 К это же копейки по времени... в чем вопрос то?
|
|||
10
ДенисЧ
15.10.21
✎
11:01
|
(7) У ADODB.Connection()
|
|||
11
trialex3
15.10.21
✎
11:03
|
(9) Да пол часа у меня удаляет
|
|||
12
Bigbro
15.10.21
✎
11:08
|
полчаса разве это много?
|
|||
13
acht
15.10.21
✎
11:09
|
(11) > пол часа
Ты на форуме сидишь дольше. |
|||
14
trialex3
15.10.21
✎
11:09
|
Блин это странно, что такой команды нету в 1С. Пускай это неправильно и вся ответственность лежит на программисте, но было бы полезно удалять все махом.
|
|||
15
trialex3
15.10.21
✎
11:10
|
(13) Ну так ща пол-часа, а потом еще пол-часа. И еще.
|
|||
16
youalex
15.10.21
✎
11:10
|
(11) А через УдалениеОбъекта ?
Типа Удаление = Новый УдалениеОбъекта(СсылкаСправочника); Удаление.ОбменДанными.Загрузка = Истина; Удаление.Записать() |
|||
17
Aleksey
15.10.21
✎
11:12
|
(14) у РС есть, но там это скорее побочный продукт
|
|||
18
DimVad
15.10.21
✎
11:13
|
(14) 1. Заходите в ИР
2. Пункт меню "Структура хранения БД" 3. Выбираете нужных справочник, регистр и т.д. 4. "Очистка таблиц СУБД..." :-) |
|||
19
acht
15.10.21
✎
11:19
|
(15) > а потом еще пол-часа. И еще
Стесняюсь спросить, а зачем ты заводишь по 40к элементов справочников чтобы потом их удалять? Мсье мазохист? |
|||
20
Bigbro
15.10.21
✎
11:19
|
(15) если тебе постоянно раз за разом требуется удалять справочники такими объемами - то что-то у вас пошло не так. совсем не так.
|
|||
21
ДенисЧ
15.10.21
✎
11:20
|
(18) И тут "введите пароль sa"...
|
|||
22
Базис
naïve
15.10.21
✎
11:21
|
(18) Даже проще. В "ИР" из конструктора запроса выделяем столбец, нажимаем готовую кнопку - выделенное попадает в "Групповую обработку объектов", там выбираем или просто удаление, или с контролем ссылок.
|
|||
23
trialex3
15.10.21
✎
11:21
|
(20) Согласен. Я бы тут использовал регистр, но меня поставили перед фактом. Есть давно функционирующий справочник. Его иногда нужно будет очищать. Сделай кнопку.
|
|||
24
DimVad
15.10.21
✎
11:21
|
(21) Естественно. А что, работают без админского доступа в скуль ?
|
|||
25
acht
15.10.21
✎
11:22
|
(23) > меня поставили перед фактом
Сделай тоже самое. Поставь их перед фактом - полчаса. |
|||
26
trialex3
15.10.21
✎
11:23
|
(16) Ща попробую)
|
|||
27
DimVad
15.10.21
✎
11:24
|
(22) Но таким способом удаление будет происходить с "одинэсовской скоростью".
Мне недавно нужно было зачистить РС "Версии объектов". База УПП - много лет :-) Через стандарное "набор записей" не удалилось за ночь. А ИР формирует "транкат"... |
|||
28
ДенисЧ
15.10.21
✎
11:28
|
(24) Вот, например, у меня нет сейчас админского в скуль. Слава Элберет, Пресветлой Гилтониэль...
|
|||
29
DimVad
15.10.21
✎
11:30
|
(28) Я просто предложил вариант. Если он человеку подходит - можно воспользоваться.
|
|||
30
youalex
15.10.21
✎
11:33
|
(27) РС можно и из конфигуратора грохнуть) Со ссылочными объектами сложнее.
|
|||
31
trialex3
15.10.21
✎
11:34
|
(16) Но это так же по одной ссылке? Там конечно можно в массив сначала выгрузить все ссылки, но надо тестировать - будет ли это быстрее.
|
|||
32
youalex
15.10.21
✎
11:37
|
(31) так же по одной, 1С по другому не умеет, но должно быть быстрее.
|
|||
33
DimVad
15.10.21
✎
11:41
|
(30) Можно грохнуть. Но потом надо будет добавить, правда. И там могут быть вопросы на тему "в какой степени конфа на поддержке".
В моём случае обновлённая конфа не сохранялась ибо РС выдавал "дубли". Если бы я его грохнул в конфигураторе (но не зачищал в БД) то после сохранения конфы пришлость бы делать объединение конфигурации чтобы его восстановить. А через ИР - в режиме предприятия, абсолютно мгновенно и без проблем. |
|||
34
Обработка
15.10.21
✎
11:48
|
Все относительно в мире. На днях удалял записи с РС четверть ярда было.
40к это копейки. И пол часа это Сходить попить кофе и потом обсудить с бухом одну мелкую проблему. |
|||
35
vova1122
15.10.21
✎
11:48
|
А если удалять в транзакции, например по 100-500 элементов, не будет быстрее?
|
|||
36
Обработка
15.10.21
✎
11:49
|
+ 34 Не все удалял а удалял отбором по условию.
И сейчас тоже удаляю в копии записи пока в конфе код смотрю. |
|||
37
Dmitrii
гуру
15.10.21
✎
12:00
|
(23) >> меня поставили перед фактом. Есть давно функционирующий справочник. Его иногда нужно будет очищать. Сделай кнопку.
Предложи им сделать фоновое задание по очистке этого справочника. И варианты запуска - по кнопке в несколько потоков, по кнопке в один поток, регламентным заданием (само по расписанию). Пользователь нажал кнопку и пошел делать свои дела, а оно пусть себе удаляет хоть весь день. |
|||
38
trialex3
15.10.21
✎
13:45
|
(32) Да, быстрее. Тот же объем удалил раз в 6 быстрее.
|
|||
39
trialex3
15.10.21
✎
13:45
|
(32) Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |