|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
Очень хочется знать как можно быстро удалить документы из БД Структруа БД такая 1cv7.7 +MS SQL Пока то что нарыл в интернете: Док = СоздатьОбъект("Документ"); Док.ВыбратьДокументы(ДатаНач,ДатаКон); ш=0; НачатьТранзакцию(); Пока Док.ПолучитьДокумент()=1 Цикл Док.Удалить(1); ш=ш+1; Если ш>= 200 Тогда ЗафиксироватьТранзакцию(); НачатьТранзакцию(); ш=0; КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); Процедура Сформировать() сч=0; УстановитьТАНа('01.01.1980'); НачатьТранзакцию(); Док = СоздатьОбъект("Документ"); Док.ВыбратьДокументы(,ВыбДата); Пока Док.ПолучитьДокумент() =1 Цикл Док.Удалить(флУдалить); сч=сч+1; Если (сч % 100) = 0 Тогда ЗафиксироватьТранзакцию(); НачатьТранзакцию(); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); КонецПроцедуры Список=СоздатьОбъект("СписокЗначений"); Док.ВыбратьДокументы(ДатаНачала,ДатаКонца); Пока Док.ПолучитьДокумент()=1 Цикл Список.ДобавитьЗначение(Док.ТекущийДокумент()); КонецЦикла; УдалитьОбъекты(Список,0); КонецЦикла; Если можно то киньте или если не трудно раскажите, можно ли напрямую сразу SQL запросом , а не ert'шкой 1с, удалить документы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 20:56 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
Если после очень быстрого удаления заголовков документов есть возможность (т.е. время) вылечить полуразрушенную базу методом полной выгрузки-загрузки в конфигураторе - то достаточно удалить эти самые заголовки из таблицы _1SJOURN, что можно сделать несложным запросом. Если же условия эксплуатации или размер базы не позволяют выполнить такое лечение - удалять средствами 1С. Если удаляемых документов много - время можно сократить, если: 1. откатить период итогов на начало времен (т.е. раньше самого раннего документа) 2. удалить все,что нужно. Подойдет любой из вышеприведенных примеров кода. 3. вернуть период итогов в настоящее (без перепроведения документов). В бухгалтерской базе "период" - это период бух.итогов, в торговле - ТА. В комплексной - оба. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 21:27 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
pailЕсли после очень быстрого удаления заголовков документов есть возможность (т.е. время) вылечить полуразрушенную базу методом полной выгрузки-загрузки в конфигураторе - то достаточно удалить эти самые заголовки из таблицы _1SJOURN, что можно сделать несложным запросом. Если же условия эксплуатации или размер базы не позволяют выполнить такое лечение - удалять средствами 1С. Если удаляемых документов много - время можно сократить, если: 1. откатить период итогов на начало времен (т.е. раньше самого раннего документа) 2. удалить все,что нужно. Подойдет любой из вышеприведенных примеров кода. 3. вернуть период итогов в настоящее (без перепроведения документов). В бухгалтерской базе "период" - это период бух.итогов, в торговле - ТА. В комплексной - оба. согласен, а можно так интересно попробовать? ,Удалить тип документа нужного в конфигураторе потом записать а потом создать его же при объеденнении мд файла , при этом удалиться быстро данный тип документа? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 21:51 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
В 7-ке удаление документов некотрого типа через конфигуратор а) не сильно быстрее, чем через Предприятие, ибо основные тормоза - пересчет итогов через несколько периодов- никуда не девается. б) может и не пройти - конфигуратор контролирует ссылочную целостность как для метаданных (а банальный "ввод на основании" или вхождение в журнал тоже ссылка, которая не даст удалить документ ), так и для данных. И если движения у удаляемого типа документов не удалены заблаговременно, ничего с удалением документов не пройдет - конфигуратор откажется.. А удаление движений - это и есть основные тормоза. Те же проблемы, только в профиль. Так что самое эффективное для массовых удалений в прошлом - откат итогов назад. Это если у документов движения есть. А если их уже нет - так и тормозов удаления обычными средствами, без хитростей всяких, тоже нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 22:04 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
pail Так что самое эффективное для массовых удалений в прошлом - откат итогов назад. Это если у документов движения есть. А если их уже нет - так и тормозов удаления обычными средствами, без хитростей всяких, тоже нет. а че улчше сразу удалять или пометку делатьт олько а окончательно потом с помошью 1с удаление объектов делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 22:13 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
glyzin2007 Если можно то киньте или если не трудно раскажите, можно ли напрямую сразу SQL запросом , а не ert'шкой 1с, удалить документы. truncate table _1sjourn truncate table _1scrdoc truncate table dh* --тут для всех таких таблиц truncate table dt* --тут для всех таких таблиц потом в конфигураторе сделать пересчёт итогов и служебных данных. Будет быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 22:16 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
Если за ссылочную целостность не беспокоишься (т.е. нет ссылок документ-документ или документ-справочник, которые следовало бы сохранять) - быстрее удалять сразу. Это уж от структуры базы и логики конфигурации зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2007, 22:20 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
Денис Ч[quot glyzin2007] truncate table _1sjourn truncate table _1scrdoc truncate table dh* --тут для всех таких таблиц truncate table dt* --тут для всех таких таблиц потом в конфигураторе сделать пересчёт итогов и служебных данных. Будет быстро. Не много не понял, что такое tuncate ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2007, 09:09 |
|
Как быстро удалить документы в 1с?
|
|||
---|---|---|---|
#18+
glyzin2007 Денис Ч[quot glyzin2007] truncate table _1sjourn truncate table _1scrdoc truncate table dh* --тут для всех таких таблиц truncate table dt* --тут для всех таких таблиц потом в конфигураторе сделать пересчёт итогов и служебных данных. Будет быстро. Не много не понял, что такое tuncate ? Read the BOL ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2007, 23:05 |
|
|
start [/forum/search_topic.php?author=george_zabbix&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
127ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 675ms |
total: | 926ms |
0 / 0 |