Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Удаление записей справочника

Удаление записей справочника
Я
   trialex3
 
15.10.21 - 10:49
Добрый день. Какой самый правильный и/или самый быстрый способ удалить все данные в справочнике (40к записей). В гугле все примеры через объект.Удалить() делаются - неужели это оптимальный вариант? Это же очень долго.
   ДенисЧ
 
1 - 15.10.21 - 10:49
А ссылки кто проверять будет?
Самый быстрый это drop database, но он тебя не устроит
   Bigbro
 
2 - 15.10.21 - 10:51
а если УРБД?
   exwill
 
3 - 15.10.21 - 10:52
(1) truncate table, не путай людей
   trialex3
 
4 - 15.10.21 - 10:53
(1) Ссылок на него точно нету нигде
   exwill
 
5 - 15.10.21 - 10:56
(4) Есть команда очистить таблицу. Называется truncate table. Вот ее тебе и надо выполнить
   ДенисЧ
 
6 - 15.10.21 - 10:57
(3) (5) Фу. Полумеры. А если там несколько справочников?
   trialex3
 
7 - 15.10.21 - 10:58
(5) Это у какого объекта такая команда?
   exwill
 
8 - 15.10.21 - 10:59
(7) Это у базы данных такая команда. На языке SQL
   successful
 
9 - 15.10.21 - 10:59
(0) 40 К это же копейки по времени... в чем вопрос то?
   ДенисЧ
 
10 - 15.10.21 - 11:01
(7) У ADODB.Connection()
   trialex3
 
11 - 15.10.21 - 11:03
(9) Да пол часа у меня удаляет
   Bigbro
 
12 - 15.10.21 - 11:08
полчаса разве это много?
   acht
 
13 - 15.10.21 - 11:09
(11) > пол часа
Ты на форуме сидишь дольше.
   trialex3
 
14 - 15.10.21 - 11:09
Блин это странно, что такой команды нету в 1С. Пускай это неправильно и вся ответственность лежит на программисте, но было бы полезно удалять все махом.
   trialex3
 
15 - 15.10.21 - 11:10
(13) Ну так ща пол-часа, а потом еще пол-часа. И еще.
   youalex
 
16 - 15.10.21 - 11:10
(11) А через УдалениеОбъекта ?
Типа Удаление = Новый УдалениеОбъекта(СсылкаСправочника);
Удаление.ОбменДанными.Загрузка = Истина;
Удаление.Записать()
   Aleksey
 
17 - 15.10.21 - 11:12
(14) у РС есть, но там это скорее побочный продукт
   DimVad
 
18 - 15.10.21 - 11:13
(14) 1. Заходите в ИР
2. Пункт меню "Структура хранения БД"
3. Выбираете нужных справочник, регистр и т.д.
4. "Очистка таблиц СУБД..."

:-)
   acht
 
19 - 15.10.21 - 11:19
(15) > а потом еще пол-часа. И еще

Стесняюсь спросить, а зачем ты заводишь по 40к элементов справочников чтобы потом их удалять?
Мсье мазохист?
   Bigbro
 
20 - 15.10.21 - 11:19
(15) если тебе постоянно раз за разом требуется удалять справочники такими объемами - то что-то у вас пошло не так. совсем не так.
   ДенисЧ
 
21 - 15.10.21 - 11:20
(18) И тут "введите пароль sa"...
   Базис
 
22 - 15.10.21 - 11:21
(18) Даже проще. В "ИР" из конструктора запроса выделяем столбец, нажимаем готовую кнопку - выделенное попадает в "Групповую обработку объектов", там выбираем или просто удаление, или с контролем ссылок.
   trialex3
 
23 - 15.10.21 - 11:21
(20) Согласен. Я бы тут использовал регистр, но меня поставили перед фактом. Есть давно функционирующий справочник. Его иногда нужно будет очищать. Сделай кнопку.
   DimVad
 
24 - 15.10.21 - 11:21
(21) Естественно. А что, работают без админского доступа в скуль ?
   acht
 
25 - 15.10.21 - 11:22
(23) > меня поставили перед фактом
Сделай тоже самое. Поставь их перед фактом - полчаса.
   trialex3
 
26 - 15.10.21 - 11:23
(16) Ща попробую)
   DimVad
 
27 - 15.10.21 - 11:24
(22) Но таким способом удаление будет происходить с "одинэсовской скоростью".
Мне недавно нужно было зачистить РС "Версии объектов". База УПП - много лет :-)
Через стандарное "набор записей" не удалилось за ночь. А ИР формирует "транкат"...
   ДенисЧ
 
28 - 15.10.21 - 11:28
(24) Вот, например, у меня нет сейчас админского в скуль. Слава Элберет, Пресветлой Гилтониэль...
   DimVad
 
29 - 15.10.21 - 11:30
(28) Я просто предложил вариант. Если он человеку подходит - можно воспользоваться.
   youalex
 
30 - 15.10.21 - 11:33
(27) РС можно и из конфигуратора грохнуть) Со ссылочными объектами сложнее.
 
 
   trialex3
 
31 - 15.10.21 - 11:34
(16) Но это так же по одной ссылке? Там конечно можно в массив сначала выгрузить все ссылки, но надо тестировать - будет ли это быстрее.
   youalex
 
32 - 15.10.21 - 11:37
(31) так же по одной, 1С по другому не умеет,  но должно быть быстрее.
   DimVad
 
33 - 15.10.21 - 11:41
(30) Можно грохнуть. Но потом надо будет добавить, правда. И там могут быть вопросы на тему "в какой степени конфа на поддержке".

В моём случае обновлённая конфа не сохранялась ибо РС выдавал "дубли". Если бы я его грохнул в конфигураторе (но не зачищал в БД) то после сохранения конфы пришлость бы делать объединение конфигурации чтобы его восстановить.

А через ИР - в режиме предприятия, абсолютно мгновенно и без проблем.
   Обработка
 
34 - 15.10.21 - 11:48
Все относительно в мире. На днях удалял записи с РС четверть ярда было.
40к это копейки. И пол часа это Сходить попить кофе и потом обсудить с бухом одну мелкую проблему.
   vova1122
 
35 - 15.10.21 - 11:48
А если удалять в транзакции, например по 100-500 элементов, не будет быстрее?
   Обработка
 
36 - 15.10.21 - 11:49
+ 34 Не все удалял а удалял отбором по условию.
И сейчас тоже удаляю в копии записи пока в конфе код смотрю.
   Dmitrii
 
37 - 15.10.21 - 12:00
(23) >> меня поставили перед фактом. Есть давно функционирующий справочник. Его иногда нужно будет очищать. Сделай кнопку.

Предложи им сделать фоновое задание по очистке этого справочника.
И варианты запуска - по кнопке в несколько потоков, по кнопке в один поток, регламентным заданием (само по расписанию).
Пользователь нажал кнопку и пошел делать свои дела, а оно пусть себе удаляет хоть весь день.
   trialex3
 
38 - 15.10.21 - 13:45
(32) Да, быстрее. Тот же объем удалил раз в 6 быстрее.
   trialex3
 
39 - 15.10.21 - 13:45
(32) Спасибо!


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.