Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Удалить документы базы 1С

v7: Удалить документы базы 1С
Я
   box
 
05.12.17 - 14:41
Необходимо физически удалить все документы кроме документа "Договор" в базе (dbf) 1С 7.7 Бухучет. Обработка архивирование не подходит, т.к. процедура занимает длительное время. Создал bat файл для удаления:

Pause

del New_Stru

del Syslog
del *.cdx
del *.lst
del 1cv7srct.st
del dt*.*
del dh*.*
del 1sjourn.dbf
del 1scrdoc.dbf
del 1sdnlock.dbf
del 1sstream.dbf
del rg*.*
del ra*.*
del 1SOPER.dbf
del 1SENTRY.dbf
del 1SBKTTLC.dbf
del 1SBKTTL.dbf
del 1SACCSEL.dbf
del 1SSBSEL.dbf
del 1supdts.dbf
del 1sdwnlds.dbf
del 1sdbset.dbf

Документы Договор находится в файле DH332.dbf

Вопрос каким образом можно оставить только эти документы?
 
 
   Ёпрст
 
1 - 05.12.17 - 14:43
del 1sjourn.dbf

зачет, ага
   Злопчинский
 
2 - 05.12.17 - 14:43
В упомянутой вами конфигурации - а её относимые к типовой бух 77 - документа Договор - нет
Поэтому что там у вас в вашем самопальном документе и как он связан с другими документами - знает только Яхве
   nordbox
 
3 - 05.12.17 - 14:44
Проще оставить один MD грохнуть все, пересоздать структуру, посмотреть DD файл и подсунуть ему файл договорами, вот только вопрос по справочникам которые в нем участвую ....
думай
   nordbox
 
4 - 05.12.17 - 14:45
(1) не расстраивай человека )
   Масянька
 
5 - 05.12.17 - 14:50
(0) Вроде не первый раз замужем... А такие вещи спрашиваешь...
Открой файл dd, найди свой док-т, посмотри, подумай...
И, кстати, как минимум - на боевой БД делать :)
   box
 
6 - 05.12.17 - 15:03
(5) файл DH332.dbf с документами Договор. Подставляю его. Файл 1sjourn.dbf также подставил. В общем журнале все документы остались. Тестирование и исправление. Посмотрю, что выйдет с этого)
   Ёпрст
 
7 - 05.12.17 - 15:05
(6) ничего хорошего.
   box
 
8 - 05.12.17 - 15:07
(7) какое другое решение?
   Злопчинский
 
9 - 05.12.17 - 15:09
(8) если тч нет то просто
   Ёпрст
 
10 - 05.12.17 - 15:29
(8)
для начала, так, хотя бы:

//*******************************************

Процедура Сформировать()
    
        Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Exclusive=Yes;Mode=ReadWrite;Collating Sequence=MACHINE";
        ДБ = СоздатьОбъект("OLEDBData");
        Рез = ДБ.Соединение(Соединение);
        Запрос = ДБ.СоздатьКоманду();
        Запрос.Выполнить("EXECSCRIPT('SET ANSI OFF')");  
        Запрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");    
        Запрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')");
        Запрос = ДБ.СоздатьКоманду(); 
        
        ВидДокумента="Договор"//ну или какое там у тя имя ?

        
        ТекстЗапроса ="
        |delete
        |from
        |1sjourn 
        |where 
        |     iddocdef+dtos(date)+time+iddoc like $ВидДокумента."+ВидДокумента+"+'_______________________'
        |";
        Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
    Для к =1 По Метаданные.Документ() Цикл
        мета = Метаданные.Документ(к).Идентификатор;
        Если мета = ВидДокумента Тогда
            Продолжить;
        КонецЕсли;
        Состояние("Шапка "+мета);
        ТекстЗапроса ="
        |DELETE
        |FROM
        |   $Документ."+мета+"
        |";
        Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
        
        Состояние("Строки "+мета);
        ТекстЗапроса ="
        |DELETE
        |FROM
        |   $ДокументСтроки."+мета+"
        |";
        Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
    КонецЦикла;

    Состояние("ссылки 1SCRDOC");
    ТекстЗапроса ="
    |DELETE
    |FROM
    |   1SCRDOC
    |WHERE CHILDID NOT IN(SELECT Жур.iddoc FROM 1sjourn as Жур)";
    Запрос.ВыполнитьИнструкцию(ТекстЗапроса);

    Состояние("периодика  1SCONST");
    ТекстЗапроса ="
    |DELETE
    |FROM
    |   1SCONST
    |WHERE DOCID<>'     0   ' and DOCID NOT IN(SELECT Жур.iddoc FROM 1sjourn as Жур)";
    Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
    
    Состояние("проводки 1SENTRY");
    ТекстЗапроса ="
    |DELETE
    |FROM
    |   1SENTRY
    |WHERE (DOCID NOT IN(SELECT Жур.iddoc FROM 1sjourn as Жур))";
    Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
    
    Состояние("операции 1SOPER");
    ТекстЗапроса ="
    |DELETE
    |FROM
    |   1SOPER
    |WHERE DOCID NOT IN(SELECT Жур.iddoc FROM 1sjourn as Жур)";
    Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
КонецПроцедуры
 
 Рекламное место пустует
   Ёпрст
 
11 - 05.12.17 - 15:32
после этого сжать все таблички и удалить все *.cdx, зайти монопольно, наслаждаться
   Franchiser
 
12 - 06.12.17 - 01:12
(10) Зачетно
   Злопчинский
 
13 - 06.12.17 - 02:13
пойду застрелюсь
   craxx
 
14 - 06.12.17 - 04:58
(0) Эпично.
   Зуекщмшср
 
15 - 06.12.17 - 07:06
Всю жизнь создавали пустую конфу из md и перекидывали данные с помощью обработки переноса между идентичными конфигурациями. Всяко проще, чем лазить по dd и отслеживать иерархию взаимосвязанных справочников и перечислений.
   Pahomich
 
16 - 06.12.17 - 07:14
(15) "Нормальные герои всегда идут в обход..."
   0xFFFFFF
 
17 - 06.12.17 - 07:39
(0) Прикольно. Кардинально. Профессионально.

:))))
Не церемонясь.
Слушай сюда (15)

И еще вопрос - а нафига?
   Ёпрст
 
18 - 06.12.17 - 09:43
и это, в (10) not like, если че :)
   Franchiser
 
19 - 06.12.17 - 09:46
(0) если бы задача была удалить Все документы, оставив только справочники, удаление  файлов нормальный вариант, сам так раньше делал, ну а если оставить 1 документ, то не совсем то.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует