powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как быстро удалить документы в 1с?
9 сообщений из 9, страница 1 из 1
Как быстро удалить документы в 1с?
    #34858398
glyzin2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень хочется знать как можно быстро удалить документы из БД
Структруа БД такая 1cv7.7 +MS SQL


Пока то что нарыл в интернете:


Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
ш=0;
НачатьТранзакцию();
Пока Док.ПолучитьДокумент()=1 Цикл
Док.Удалить(1);
ш=ш+1;
Если ш>= 200 Тогда
ЗафиксироватьТранзакцию();
НачатьТранзакцию();
ш=0;
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();



Процедура Сформировать()
сч=0;
УстановитьТАНа('01.01.1980');
НачатьТранзакцию();
Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы(,ВыбДата);
Пока Док.ПолучитьДокумент() =1 Цикл
Док.Удалить(флУдалить);
сч=сч+1;
Если (сч % 100) = 0 Тогда
ЗафиксироватьТранзакцию();
НачатьТранзакцию();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
КонецПроцедуры



Список=СоздатьОбъект("СписокЗначений");

Док.ВыбратьДокументы(ДатаНачала,ДатаКонца);
Пока Док.ПолучитьДокумент()=1 Цикл
Список.ДобавитьЗначение(Док.ТекущийДокумент());
КонецЦикла;
УдалитьОбъекты(Список,0);
КонецЦикла;



Если можно то киньте или если не трудно раскажите, можно ли напрямую сразу SQL запросом , а не ert'шкой 1с, удалить документы.
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858443
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если после очень быстрого удаления заголовков документов есть возможность (т.е. время) вылечить полуразрушенную базу методом полной выгрузки-загрузки в конфигураторе - то достаточно удалить эти самые заголовки из таблицы _1SJOURN, что можно сделать несложным запросом.
Если же условия эксплуатации или размер базы не позволяют выполнить такое лечение - удалять средствами 1С. Если удаляемых документов много - время можно сократить, если:
1. откатить период итогов на начало времен (т.е. раньше самого раннего документа)
2. удалить все,что нужно. Подойдет любой из вышеприведенных примеров кода.
3. вернуть период итогов в настоящее (без перепроведения документов).

В бухгалтерской базе "период" - это период бух.итогов, в торговле - ТА.
В комплексной - оба.
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858479
glyzin2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pailЕсли после очень быстрого удаления заголовков документов есть возможность (т.е. время) вылечить полуразрушенную базу методом полной выгрузки-загрузки в конфигураторе - то достаточно удалить эти самые заголовки из таблицы _1SJOURN, что можно сделать несложным запросом.
Если же условия эксплуатации или размер базы не позволяют выполнить такое лечение - удалять средствами 1С. Если удаляемых документов много - время можно сократить, если:
1. откатить период итогов на начало времен (т.е. раньше самого раннего документа)
2. удалить все,что нужно. Подойдет любой из вышеприведенных примеров кода.
3. вернуть период итогов в настоящее (без перепроведения документов).

В бухгалтерской базе "период" - это период бух.итогов, в торговле - ТА.
В комплексной - оба.

согласен, а можно так интересно попробовать? ,Удалить тип документа нужного в конфигураторе потом записать а потом создать его же при объеденнении мд файла , при этом удалиться быстро данный тип документа?
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858505
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 7-ке удаление документов некотрого типа через конфигуратор
а) не сильно быстрее, чем через Предприятие, ибо основные тормоза - пересчет итогов через несколько периодов- никуда не девается.
б) может и не пройти - конфигуратор контролирует ссылочную целостность как для метаданных (а банальный "ввод на основании" или вхождение в журнал тоже ссылка, которая не даст удалить документ ), так и для данных. И если движения у удаляемого типа документов не удалены заблаговременно, ничего с удалением документов не пройдет - конфигуратор откажется.. А удаление движений - это и есть основные тормоза. Те же проблемы, только в профиль.

Так что самое эффективное для массовых удалений в прошлом - откат итогов назад.
Это если у документов движения есть. А если их уже нет - так и тормозов удаления обычными средствами, без хитростей всяких, тоже нет.
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858516
glyzin2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pail
Так что самое эффективное для массовых удалений в прошлом - откат итогов назад.
Это если у документов движения есть. А если их уже нет - так и тормозов удаления обычными средствами, без хитростей всяких, тоже нет.

а че улчше сразу удалять или пометку делатьт олько а окончательно потом с помошью 1с удаление объектов делать?
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858522
Фотография Денис Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glyzin2007
Если можно то киньте или если не трудно раскажите, можно ли напрямую сразу SQL запросом , а не ert'шкой 1с, удалить документы.

truncate table _1sjourn
truncate table _1scrdoc
truncate table dh* --тут для всех таких таблиц
truncate table dt* --тут для всех таких таблиц

потом в конфигураторе сделать пересчёт итогов и служебных данных.

Будет быстро.
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858536
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если за ссылочную целостность не беспокоишься (т.е. нет ссылок документ-документ или документ-справочник, которые следовало бы сохранять) - быстрее удалять сразу.
Это уж от структуры базы и логики конфигурации зависит.
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34858942
glyzin2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ч[quot glyzin2007]
truncate table _1sjourn
truncate table _1scrdoc
truncate table dh* --тут для всех таких таблиц
truncate table dt* --тут для всех таких таблиц

потом в конфигураторе сделать пересчёт итогов и служебных данных.

Будет быстро.

Не много не понял, что такое tuncate ?
...
Рейтинг: 0 / 0
Как быстро удалить документы в 1с?
    #34861687
Dolter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
glyzin2007 Денис Ч[quot glyzin2007]
truncate table _1sjourn
truncate table _1scrdoc
truncate table dh* --тут для всех таких таблиц
truncate table dt* --тут для всех таких таблиц

потом в конфигураторе сделать пересчёт итогов и служебных данных.

Будет быстро.

Не много не понял, что такое tuncate ?

Read the BOL
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как быстро удалить документы в 1с?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]