Имя: Пароль:
1C
 
v8: Быстрое удаление объектов 1С?
0 CityCat76
 
11.02.09
13:13
Платформа: 8.1 УПП (SQL)
Задача: Необходимо удалить "х" типов справочников с отбором по реквизиту. Можно обработкой через "Запрос-ПолучитьОбъект-Удалить", но удаляет долго если объектов много (более 100тыс. удаляет 30 мин.).
Вопрос: Существуют ли способы удаления объектов 1С более производительнее, возможно на уровне SQL? или дайте ссылку почитать.
...Поиск не дал результатов
1 Serg_1960
 
11.02.09
13:19
Если "очень быстро" удалять объекты - то тогда можно также быстро получить сообщение "Объект не найден" :)
2 Svante Sturre
 
11.02.09
13:25
Попробуй использовать процедуру УдалитьОбъекты, которая уничтожает элементы по параметру - списку ссылок. Ссылки можно получить, например, запросом.
Заодно расскажешь, насколько быстрее проходит удаление относительно способа поэлементного удаления.
3 Serg_1960
 
11.02.09
13:25
Используйте комбинацию: Запрос - НайтиПоСсылкам(Массив) - УдалитьОбъекты(Массив)
4 CityCat76
 
11.02.09
13:28
(1) :)
(2,3) Спасибо, попробую
5 Serg_1960
 
11.02.09
13:35
Вы чистите справочники? Хотите узнать самый быстрый способ?
6 CityCat76
 
11.02.09
13:39
(5) интересно...
7 Serg_1960
 
11.02.09
13:47
Выгрузить конфу(а) - удалить справочник в конфе - обновить конфу БД - загрузить конфу(а) - обновить конфу БД :))

Если без шуток, то используя обработку StrBaseSQL.epf узнать как Ваш справочник называется в SQL базе... и убить данные командами "TRUNCATE TABLE ИмяТаблицы" и "UPDATE STATISTICS ИмяТаблицы"
8 CityCat76
 
11.02.09
13:59
(7) этот способ самый лучший :)), но необходимо удалить не все объекты, а с отбором по реквизиту.

А в этой обработке(StrBaseSQL.epf) можно отобрать не все элементы?
9 Gamm
 
11.02.09
14:00
10 Gamm
 
11.02.09
14:05
С помощью Enterprise Integrator:
1. Формируем запрос с отбором нужных элементов
2. Трассировкой получаем запрос SQL
3. SQL-запрос переделываем на DELETE
11 Zixxx
 
11.02.09
14:08
(10) думаю будет незаметно быстрее, все траблы в записи на винт, поэтому заметный самый быстрый способ это ипануть таблицу целиком
12 Sammo
 
11.02.09
14:19
(7) В 8.1 см процедуру глобального контекста ПолучитьСтруктуруХраненияБазыДанных()
13 Gamm
 
11.02.09
14:19
(11) Всю таблицу конечно быстрее но в (0) указано что нужно с отбором по реквизиту. А по сравнению с удалением средствами 1С, SQL DELETE выигрывает в разы за счет (по моему мнению) отсутствия накладных расходов на проверку сылочной целостности.
14 Zixxx
 
11.02.09
14:25
(13) в 1с можно и без ссылочной целостности грохать тоже будет очень бысто, в 1с траблы будут если на группу встаешь и ручками например пометку делаешь тогда да, там тригеры наверное какие-то запускаются.
15 CityCat76
 
11.02.09
16:00
(2) Разница между УдалитьОбъекты(Массив) и поэлементного удаления по времени никакой.
Остается как следует изучить вариант (10)
16 H A D G E H O G s
 
11.02.09
16:02
(10) Интересно, как живут локальные временные таблицы ?
Основная теорема систематики: Новые системы плодят новые проблемы.