Имя: Пароль:
1C
1C 7.7
v7: Сбой 1С++ аварийное закрытие 1С.
,
0 varelchik
 
13.03.15
15:20
Есть обработка свертки базы с использованием прямых запросов.
Выкладывать смысла нет, она работает и все пучком.
Но выяснилась непонятная весчь.
Если ее запустить в ручном режиме то опять же все нормально.
А вот если зайти по пользователем которого после отработки этого отчета автоматом выкидывает из базы.
Это в ПриначалеРаботыСитемы()
Процедура ПриНачалеРаботыСистемы() Экспорт
    //Внимание: данная процедура при обновлении Менеджера будет перезаписана заново
    //без сохранения текущего кода !!!
    //Рекомендуем собственные алгоритмы записывать в старую процедуру с префиксом стар_
    //**************************************************************************
    //**************************************************************************
    ИнициализацияМОД();
    
    стар_ПриНачалеРаботыСистемы();
    ОткрытьФорму("Отчет","Выполнить",КаталогИБ()+"ExtForms\ПриСтарте.ert");     
    Если Нрег(ИмяПользователя())="admin" Тогда
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецПроцедуры

вылетает окно:
ЗакрытьПрограмму?
детальная инфо из Журнала ошибок:

Имя сбойного приложения: 1cv7s.exe, версия: 7.70.0.27, отметка времени: 0x4573fcd8
Имя сбойного модуля: 1cpp.dll, версия: 3.2.4.1, отметка времени 0x51431095
Код исключения: 0xc00000fd
Смещение ошибки: 0x00007e7d
Идентификатор сбойного процесса: 0xbb0
Время запуска сбойного приложения: 0x01d05d7db8c86787
Путь сбойного приложения: C:\ProgramData\1Cv77\BIN\1cv7s.exe
Путь сбойного модуля: D:\Base\lib\1cpp.dll
Код отчета: 68206b95-c971-11e4-90d0-88ae1dca3755

Что самое интересное
Если эту обработку под этим пользователем не запускать то он нормально выходит без ошибки.
Есть у кого соображения на эту тему?
1 varelchik
 
13.03.15
15:21
Вернее чуть не правильно выразился.
ПриСтарте.ert
Запускает другую обработку.
2 Ёпрст
 
13.03.15
15:28
открывай форму модально
3 Ёпрст
 
13.03.15
15:29
чтоб только после окончания, твоя проверка на статусвозврата работала
4 varelchik
 
13.03.15
15:36
(2)ХМ странно.
Спробую.
5 varelchik
 
13.03.15
16:11
(2)Чет туплю.
ОТкрытьФормуМодально()
для внешних как сработает?
6 Ёпрст
 
13.03.15
16:21
(5) откроет форму модально
7 varelchik
 
13.03.15
17:06
(2)Тот же эффект.
8 Ёпрст
 
13.03.15
17:09
ну, тогда только смотреть порядок загрузки вк, версии и что за объекты создаются унутри обработки..
9 varelchik
 
13.03.15
17:21
вот обработка.
ПриСтарте
Процедура ПриОткрытии()
    //Если глПользователь.ФлагОповещенияПриВходе=1 Тогда
    //    ОткрытьФорму("Отчет",,КаталогИБ()+"ExtForms\НапоминаниеОтработки.ert");
    //КонецЕсли;
    Если Нрег(ИмяПользователя())="admin" Тогда
        Сообщить("При старте");
        ОткрытьФормуМодально("Отчет",1,КаталогИБ()+"Extforms\ОбрезаниеБазы.ert");
        //ЗавершитьРаботуСистемы();
    КонецЕсли;
    СтатусВозврата(0);
    Возврат;
КонецПроцедуры    // ПриОткрытии
10 varelchik
 
13.03.15
17:22
а это ОбрезаниеБазы.
Процедура Партии()
    Запрос=глСоединение();
    //{ 1. Сформируем остатки партий
    ИТЗ=СоздатьОбъект("ИндексированнаяТаблица");
    ТекстЗапрос="
    |select
    |Рег.Фирма [ЗначИзмерения1 $Справочник.Фирмы],
    |Рег.Товар [ЗначИзмерения2 $Справочник.Номенклатура],
    |Рег.Статус ЗначИзмерения3,
    |Рег.Склад [ЗначИзмерения4 $Справочник.МестаХранения],
    |Рег.Контрагент [ЗначИзмерения5 $Справочник.Контрагенты],
    |Рег.Поставщик [ЗначИзмерения6 $Справочник.Контрагенты],
    |Рег.Поставка [ЗначИзмерения7 $Документ],
    |Рег.ПрихДокумент [ЗначИзмерения8 $Документ],
    |Рег.ОстатокТовараОстаток ЗначРесурса1,
    |Рег.СтоимостьОстаток ЗначРесурса2,
    |Рег.ПродСтоимостьОстаток ЗначРесурса3,
    |Рег.НДСОстаток ЗначРесурса4
    |from $РегистрОстатки.ПартииТоваров(:ВыбДата~
    |) Рег";
    Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    Состояние("Получение данных");
    Запрос.ВыполнитьИНструкцию(ТекстЗапрос,ИТЗ);
    Состояние("Группировка");
    ИТЗ.Группировать("ЗначИзмерения8:ЗначИзмерения8","ЗначРесурса1",1);
    Док=СоздатьОбъект("Документ.СлужебОстаткиПоРегистрам");
    ИТЗ.ВыбратьСтроки();
    ИТЗДокументы=СоздатьОбъект("ИндексированнаяТаблица");
    ИТЗДокументы.НоваяКолонка("Док");
    ИТЗДокументы.НоваяКолонка("ПрихДокумент");
    ИТЗДокументы.ДобавитьИндекс("инд","*Док",1);
    Пока ИТЗ.ПолучитьСтроку() = 1 Цикл
        Док.Новый();
        Док.Фирма=ВыбФирма;
        Док.ДатаДок=ВыбДата+1;
        Док.ИмяРегистра="ПартииТоваров";
        Док.АвтоВремяКонецДня();
        глУстановитьНомерДок(Док);
        Док.Комментарий=Строка(ИТЗ.ЗначИзмерения8);
        Док.Записать();
        ТабличнаяЧасть=ИТЗ.тзПотомки;
        ТабличнаяЧасть.ЗаполнитьКолонку(,"ЗначИзмерения8",Док.ТекущийДокумент());
        ТабличнаяЧасть.ЗаполнитьКолонку(,"ЗначИзмерения7",Док.ТекущийДокумент());
        ТабличнаяЧасть.Выгрузить(Док);
        Док.Записать();
        Сообщить(Док.ТекущийДокумент());
        //Состояние("Удаление не нужных движений"+ИТЗ.ЗначИзмерения8);
        
        //Текст="
        //|delete $Регистр.ПартииТоваров
        //|from $Регистр.ПартииТоваров Партии (nolock)
        //|inner join _1sjourn j (nolock) on j.iddoc=Партии.iddoc
        //|WHERE
        //|j.date_time_iddoc<=:ВыбДата~
        //|and
        //|$Партии.ПрихДокумент=:СтарыйДок~
        //|";
        //Запрос.УстановитьТекстовыйПАраметр("ВыбДата",ВыбДата);
        //Запрос.УстановитьТекстовыйПАраметр("СтарыйДок",ИТЗ.ЗначИзмерения8);
        //Запрос.ВыполнитьСкалярный(Текст);
        Состояние("Обновление регистра "+ИТЗ.ЗначИзмерения8);
        Текст="
        |update $Регистр.ПартииТоваров
        |set
        |$Регистр.ПартииТоваров.ПрихДокумент=:ВыбДок~,
        |$Регистр.ПартииТоваров.Поставка=:ВыбДок~
        |from $Регистр.ПартииТоваров Партии (nolock)
        |WHERE
        |$Партии.ПрихДокумент=:СтарыйДок~
        |";
        Запрос.УстановитьТекстовыйПАраметр("ВыбДок",Док.ТекущийДокумент());
        Запрос.УстановитьТекстовыйПАраметр("СтарыйДок",ИТЗ.ЗначИзмерения8);
        Запрос.Выполнить(Текст);
        Состояние("Обновление документов "+Док.ТекущийДокумент());
        Текст="
        |insert into ОбрезаниеБазы (iddoc,iddocdef,deleted,vid)
        |select distinct
        |j.iddoc iddoc,
        |j.iddocdef iddocdef,
        |'' deleted,
        |'ПартииТоваров' vid
        |from $Регистр.ПартииТоваров Партии
        |inner join _1sjourn j (nolock) on j.iddoc=Партии.iddoc
        |WHERE
        |$Партии.ПрихДокумент=:ВыбДок~
        |and
        |j.date_time_iddoc>:ВыбДата~
        |";
        Запрос.УстановитьТекстовыйПАраметр("ВыбДок",Док.ТекущийДокумент());
        Запрос.УстановитьТекстовыйПАраметр("ВыбДата",ВыбДата);
        Запрос.Выполнить(Текст);
        



        //Текст="
        //|select
        //|j.iddoc [Док $Документ],
        //|j.iddocdef Док_вид
        //|from $Регистр.ПартииТоваров Рег (nolock)
        //|inner join _1sjourn j (nolock) on j.iddoc=Рег.iddoc
        //|WHERE
        //|$Рег.ПрихДокумент=:ВыбДок~
        //|";
        //Запрос.УстановитьТекстовыйПАраметр("ВыбДок",Док.ТекущийДокумент());
        //ТЗ=СоздатьОбъект("ТаблицаЗначений");
        //ТЗ=Запрос.ВыполнитьИнструкцию(Текст);
        //ТЗ.ВыбратьСтроки();
        //лДок=СоздатьОбъект("Документ");
        //Пока ТЗ.ПолучитьСтроку() = 1 Цикл
        //    лДок.НайтиДокумент(ТЗ.Док);
        //    Если ИТЗДокументы.НайтиСтроку("инд",лДок)=0 Тогда
        //        ИТЗДокументы.НоваяСтрока();
        //        ИТЗДокументы.Док=лДок.ТекущийДокумент();
        //        ИТЗДокументы.ПрихДокумент=Док.ТекущийДокумент();
        //    КонецЕсли;
        //КонецЦикла;
    КонецЦикла;
    //Текст="
    //|insert into ОбрезаниеБазы (iddoc,iddocdef,deleted,vid)
    //|select distinct
    //|j.iddoc iddoc,
    //|j.iddocdef iddocdef,
    //|'' deleted,
    //|'ПартииТоваров' vid
    //|from $Регистр.ПартииТоваров Партии
    //|inner join _1sjourn j (nolock) on j.iddoc=Партии.iddoc
    //|inner join _1sjourn j1 (nolock) on j1.iddoc=right($Партии.ПрихДокумент,9)
    //|WHERE
    //|left(j1.date_time_iddoc,8)=:ВыбДата1
    ////|and
    ////|j.date_time_iddoc>:ВыбДата
    //|";
    //Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    //Запрос.УстановитьТекстовыйПараметр("ВыбДата1",ВыбДата+1);
    //Запрос.ВыполнитьСкалярный(Текст);
    
    //    Текст="
//    |insert into _1supdts (dbsign,typeid,objid,deleted,dwnldid)
//    |select distinct
//    |'CBA' dbsign,
//    |j.iddocdef typeid,
//    |j.iddoc objid,
//    |'D' deleted,
//    |'' dwnldid
//    |from _1sjourn j (nolock)
//    |inner join $Регистр.ПартииТоваров Партии (nolock) on Партии.iddoc=j.iddoc
//    |where
//    |j.date_time_iddoc<=:КонДата~
//    |";
//    Запрос.УстановитьТекстовыйПАраметр("КонДата",ВыбДата);
//    Состояние("Регистрация удаляемых");
//    Запрос.ВыполнитьСкалярный(Текст);
//    Текст="
//    |delete _1sjourn
//    |from _1sjourn j (nolock)
//    |inner join $Регистр.ПартииТоваров Партии (nolock) on Партии.iddoc=j.iddoc
//    |WHERE
//    |j.date_time_iddoc<=:ВыбДата~
//    |";
//    Запрос.УстановитьТекстовыйПАраметр("ВыбДата",ВыбДата);
//    Запрос.ВыполнитьСкалярный(Текст);
//
//    Текст="
//    |delete $Регистр.ПартииТоваров
//    |from $Регистр.ПартииТоваров Партии (nolock)
//    |left join _1sjourn j (nolock) on j.iddoc=Партии.iddoc
//    |WHERE
//    |j.iddoc is null
//    //|and
//    //|$Партии.ПрихДокумент=:СтарыйДок~
//    |";
//    Запрос.УстановитьТекстовыйПАраметр("ВыбДата",ВыбДата);
//    //Запрос.УстановитьТекстовыйПАраметр("СтарыйДок",ИТЗ.ЗначИзмерения8);
//    Запрос.ВыполнитьСкалярный(Текст);
//    Док=СоздатьОбъект("Документ");
//    ИТЗДокументы.ВыбратьСтроки();
//    Пока ИТЗДокументы.ПолучитьСтроку() = 1 Цикл
//        Док.НайтиДокумент(ИТЗДокументы.Док);
//        Док.Записать();
//    КонецЦикла;
    
    //Таб=СоздатьОбъект("Таблица");
    //ИТЗДокументы.ВыбратьСтроки();
    //Пока ИТЗДокументы.ПолучитьСтроку() = 1 Цикл
    //    Док=ИТЗДокументы.Док;
    //    ПрихДок=ИТЗДокументы.ПрихДокумент;
    //    Таб.ВывестиСекцию("Строка");
    //КонецЦикла;
    //Таб.ТолькоПросмотр(1);
    //Таб.Показать();
    //}
КонецПроцедуры    // Партии

Процедура ЗакрытьРегистр(Рег)
    //Возврат;
    ИмяРегистра=Рег.Идентификатор;
    Если ИмяРегистра="ПартииТоваров" Тогда
        Возврат;
    КонецЕсли;
    СпНеТипизировать=СоздатьОбъект("СписокЗначений");
    СпНеТипизировать.ДобавитьЗначение("Число");
    СпНеТипизировать.ДобавитьЗначение("Строка");
    СпНеТипизировать.ДобавитьЗначение("Дата");
    СтрКолонки="";
    СтрИтоги="";
    Текст="
    |select ";
    Для н=1 По Рег.Измерение() Цикл
        Измерение=Рег.Измерение(н);
        Идентификатор=Измерение.Идентификатор;
        Тип=Измерение.Тип;
        Вид=Измерение.Вид;
        Если Тип="Документ" Тогда
            СтрокаТипизации="ПустойИД"+?(ПустоеЗначение(Вид)=1,"13","");
        Иначе
            СтрокаТипизации=?(ПустоеЗначение(Вид)=0,Тип+"."+Вид,Тип);
        КонецЕсли;
        НеТипизировать=СпНеТипизировать.Принадлежит(Тип);
        Текст=Текст+"
        |"+ИмяРегистра+"."+Идентификатор+" "+?(НеТипизировать=1,"","[")+"ЗначИзмерения"+н+" "+?(НеТипизировать=0,"$"+СтрокаТипизации+"]","")+",";
        СтрКолонки=СтрКолонки+"ЗначИзмерения"+н+",";
    КонецЦикла;
    Для н=1 По Рег.Ресурс() Цикл
        Ресурс=Рег.Ресурс(н);
        Идентификатор=Ресурс.Идентификатор;
        Текст=Текст+"
        |"+ИмяРегистра+"."+Идентификатор+"Остаток ЗначРесурса"+н+",";
        СтрИтоги=СтрИтоги+"ЗначРесурса"+н+",";
    КонецЦикла;
    Текст=Сред(Текст,1,СтрДлина(Текст)-1);
    Текст=Текст+"
    |from $РегистрОстатки."+ИмяРегистра+"(:ВыбДата~
    |) "+ИмяРегистра;
    //Сообщить(Текст);
    //Возврат;
    Запрос=глСоединение();
    Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    ИТЗ=СоздатьОбъект("ИндексированнаяТаблица");
    Запрос.ВыполнитьИНструкцию(Текст,ИТЗ);
    ИТЗ.Свернуть(СтрКолонки,СтрИтоги);
    Док=СоздатьОбъект("Документ.СлужебОстаткиПоРегистрам");    
    Если ИТЗ.КоличествоСтрок()=0 Тогда
        Возврат;
    КонецЕсли;
    //ИТЗ.ВыбратьСтроки();
    //Пока ИТЗ.ПолучитьСтроку() = 1 Цикл
        Док.Новый();
        Док.Фирма=ВыбФирма;
        Док.ДатаДок=ВыбДата+1;
        Док.ИмяРегистра=ИмяРегистра;
        Док.АвтоВремяКонецДня();
        глУстановитьНомерДок(Док);
        Док.Комментарий=ИмяРегистра;
        Док.Записать();
        Сп=СоздатьОбъект("СписокЗначений");
        Сп.ДобавитьЗначение("ВзаиморасчетыПокупателей");
        Сп.ДобавитьЗначение("ВзаиморасчетыПоставщиков");
        Если Сп.Принадлежит(ИмяРегистра)=1 Тогда
            ИТЗ.ЗаполнитьКолонку(,"ЗначИзмерения5",Док.ТекущийДокумент());
        КонецЕсли;
        ИТЗ.Выгрузить(Док);
        Док.Записать();
        Сообщить(Док);
    //КонецЦикла;
    Если Сп.Принадлежит(ИмяРегистра)=1 Тогда
        Текст="
        |insert into ОбрезаниеБазы (iddoc,iddocdef,deleted,vid)
        |select distinct
        |j.iddoc iddoc,
        |j.iddocdef iddocdef,
        |'' deleted,
        |'"+ИмяРегистра+"' vid
        |from $Регистр."+ИмяРегистра+" "+ИмяРегистра+"
        |inner join _1sjourn j (nolock) on j.iddoc="+ИмяРегистра+".iddoc
        |inner join _1sjourn j1 (nolock) on j1.iddoc=right($"+ИмяРегистра+".КредДокумент,9)
        |WHERE
        |j1.date_time_iddoc<=:ВыбДата~
        |and
        |j.date_time_iddoc>:ВыбДата
        |";
        Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
        Запрос.Выполнить(Текст);
        Текст="
        |update $Регистр."+ИмяРегистра+"
        |set $Регистр.ВзаиморасчетыПокупателей.КредДокумент=:ВыбДок~
        |from $Регистр."+ИмяРегистра+" "+ИмяРегистра+"
        |inner join _1sjourn j (nolock) on j.iddoc="+ИмяРегистра+".iddoc
        |inner join _1sjourn j1 (nolock) on j1.iddoc=right($"+ИмяРегистра+".КредДокумент,9)
        |WHERE
        |j1.date_time_iddoc<=:ВыбДата~
        |and
        |j.date_time_iddoc>:ВыбДата
        |";
        Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
        Запрос.УстановитьТекстовыйПараметр("ВыбДок",Док.ТекущийДокумент());
        Запрос.Выполнить(Текст);
        //Текст="
    КонецЕсли;
    //Текст="
    //|delete $Регистр."+ИмяРегистра+"
    //|from $Регистр."+ИмяРегистра+" ВЗ (nolock)
    //|inner join _1sjourn j (nolock) on j.iddoc=ВЗ.iddoc
    //|WHERE
    //|j.date_time_iddoc<=:ВыбДата~
    //|";
    //Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    //Запрос.ВыполнитьСкалярный(Текст);
    //ИТЗ.ВыбратьСтроку(,ИмяРегистра);
    //Сообщить(Текст);
КонецПроцедуры    // ЗакрытьРегистр

Процедура УдалитьДвижения(Рег)
    Имя=Рег.Идентификатор;
    Запрос=глСоединение();
    //Сообщить("Обороты "+Имя);
    Текст="
    |insert into ОбрезаниеБазы (iddoc,iddocdef,deleted,vid)
    |select distinct
    |j.iddoc iddoc,
    |j.iddocdef iddocdef,
    |'D' deleted,
    |'"+Имя+"' vid
    |from $Регистр."+Имя+" "+Имя+"
    |left join _1sjourn j (nolock) on j.iddoc="+Имя+".iddoc
    |WHERE
    |j.date_time_iddoc<=:ВыбДата~
    |";
    Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    Запрос.ВыполнитьСкалярный(Текст);
    
    Текст="
    |delete $Регистр."+Имя+"
    |from $Регистр."+Имя+" "+Имя+"
    |inner join _1sjourn j (nolock) on j.iddoc="+Имя+".iddoc
    |WHERE
    |j.date_time_iddoc<=:ВыбДата~
    |";
    Запрос=глСоединение();
    Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    Запрос.ВыполнитьСкалярный(Текст);
КонецПроцедуры    // УдалитьДвижения

Процедура Документы()
    Запрос=глСоединение();
    Для н=1 По Метаданные.Документ() Цикл
        Идент=Метаданные.Документ(н).Идентификатор;
        ИдДок=глМетаДата.ИДДокумента(н);
        ИдШапки="dh"+ИдДок;
        Текст="
        |delete "+ИдШапки+"
        |from "+ИдШапки+" Шапка
        |left join _1sjourn j on j.iddoc=Шапка.iddoc
        |WHERE
        |j.iddoc is null
        |";
        стат=Запрос.ВыполнитьСкалярный(Текст);
        Сообщить(Идент+" шапка:"+стат);
        кво=Метаданные.Документ(н).РеквизитТабличнойЧасти();
        Если кво>0 Тогда
            ИДТЧ="dt"+ИдДок;
            Текст="
            |delete "+ИДТЧ+"
            |from "+ИДТЧ+" Шапка
            |left join _1sjourn j on j.iddoc=Шапка.iddoc
            |WHERE
            |j.iddoc is null
            |";
            стат=Запрос.ВыполнитьСкалярный(Текст);
            Сообщить(Идент+" тч:"+стат);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры    // Документы

Процедура Сформировать()
    глДатаЗапрета='01.01.01';
    Запрос=глСоединение();
    ТекстЗапроса = "
        |If not Exists (Select *
        |               From sysobjects
        |               Where id = object_id('ОбрезаниеБазы') and objectproperty(id, 'IsUserTable') = 1
        |          )
        |   Create table ОбрезаниеБазы(
        |        iddoc char(9),
        |        iddocdef int,
        |        deleted char(1),
        |        vid char(100)
        |                      )";
    Запрос.ВыполнитьСкалярный(ТекстЗапроса);
    Запрос.ВыполнитьСкалярный("truncate table ОбрезаниеБазы");
    //Возврат;
    Для н=1 по Метаданные.Регистр() Цикл
        Рег=Метаданные.Регистр(н);
        Если Рег.Идентификатор="ПартииТоваров" Тогда
            //Сообщить("ПартииТоваров");
            Партии();
            УдалитьДвижения(рег);
            Продолжить;
        КонецЕсли;
        Если Рег.ТипРегистра="Обороты" Тогда
            УдалитьДвижения(Рег);
            Продолжить;
        КонецЕсли;
        ЗакрытьРегистр(Рег);
        УдалитьДвижения(Рег);
        //Сообщить(Рег.Идентификатор);
    КонецЦикла;
    Док=СоздатьОбъект("Документ.СлужебОстаткиПоРегистрам");
    Док.ВыбратьДокументы(ВыбДата+1,ВыбДата+1);
    Пока Док.ПолучитьДокумент() = 1 Цикл
        Если Док.СнятьПометкуУдаления()=1 Тогда
            Продолжить;
        КонецЕсли;
        Сообщить("проведение"+Док.ТекущийДокумент());
        Док.Провести();
    КонецЦикла;
    //Возврат;
    Запрос=глСоединение();
    Текст="
    |delete _1sjourn
    |from _1sjourn j (nolock)
    |WHERE
    |j.iddoc IN (SELECT iddoc FROM ОбрезаниеБазы WHERE deleted='D')
    |";
    Запрос.ВыполнитьСкалярный(Текст);
    
    Текст="
    |update _1sjourn
    |set ismark=1,closed=0
    |from _1sjourn j (nolock)
    |WHERE
    |j.date_time_iddoc<=:ВыбДата~
    |";
    Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    Запрос.ВыполнитьСкалярный(Текст);
    Текст="
    |select
    |j.iddoc [Док $Документ],
    |j.iddocdef Док_вид
    |from _1sjourn j (nolock)
    |WHERE
    |j.ismark=1
    |and
    |j.date_time_iddoc<=:ВыбДата~
    |";
    ИТЗ=СоздатьОбъект("ИндексированнаяТаблица");
    Список=СоздатьОбъект("СписокЗначений");
    Запрос.УстановитьТекстовыйПараметр("ВыбДата",ВыбДата);
    Запрос.ВыполнитьИНструкцию(Текст,ИТЗ);
    ИТЗ.Выгрузить(Список,,"Док");
    УдалитьОбъекты(Список,1);
    Текст="
    |insert into _1supdts (dbsign,typeid,objid,deleted,DWNLDID)
    |select distinct
    |'CBA' dbsign,
    |t.iddocdef typeid,
    |t.iddoc objid,
    |t.deleted deleted,
    |'' DWNLDID
    |from ОбрезаниеБазы t
    |WHERE
    |t.deleted<>'D'
    |";
    Запрос.ВыполнитьСкалярный(Текст);
    Документы();
    Текст="
    |insert into ОбрезаниеБазы (iddoc,iddocdef,deleted,vid)
    |select
    |t.objid iddoc,
    |t.typeid iddocdef,
    |'D' deleted,
    |'Удаление' vid
    |from _1supdts t
    |WHERE
    |t.deleted='D'
    |";
    Запрос.ВыполнитьСкалярный(Текст);
    Запрос.ВыполнитьСкалярный("delete _1supdts where deleted='D'");
    //ФС.КопироватьФайл(КаталогИБ()+"recalc.prm",КаталогИБ()+"recalc.prm",0);
    //Реестр=СоздатьОбъект("РеестрWin");
    //Реестр.ОткрытьКлюч("HKEY_CURRENT_USER","Software\1C\1Cv7\7.7\Titles","KEY_READ");
    //НазваниеБазы="";
    //Реестр.ЗапроситьЗначение(путь,НазваниеБазы);
    //Если ПустоеЗначение(НазваниеБазы)=1 Тогда
    //    Реестр.УстановитьЗначение(путь,"REG_SZ",НазваниеБазы);
    //КонецЕсли;
    //Инфо=СоздатьОбъект("Информатор");
    ////Объект = СоздатьОбъект("wscript.shell");
    //Текст = """"+Инфо.ПутьПриложения1С()+""""+"  config /D"+КаталогИБ()+" /NAdmin /Pbatcom123 /@recalc.prm";
    ////ЗаписьЖурналаРегистрации(ТекстСообщения);
    //ЗапуститьПриложение(Текст);
    //глВыходВопрос=0;
    //ЗавершитьРаботуСистемы();
КонецПроцедуры    // Сформировать

Процедура ПриОткрытии()
    ////СтатусВозврата(0);
    //Возврат;
    ВыбДата='31.12.13';
    Если ПустоеЗначение(Форма.Параметр)=0 Тогда
        Сформировать();
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецПроцедуры    // ПриОткрытии

ВыбФирма=Константа.ОсновнаяФирма;
11 varelchik
 
13.03.15
17:24
Если запускать в ручную все работает.
12 varelchik
 
13.03.15
17:27
Причем в автоматическом режиме видно что работа идет
до конца.
Последним сообщением выдает что очищены документы все до последнего.
13 pvase
 
13.03.15
17:37
может поможет перед удалением из _1sjourn пообнулять все переменные с объектами типа "Документ"?
14 varelchik
 
13.03.15
17:42
(13)Я же говорю, что если в ручную запускать то все пучком.
15 pvase
 
13.03.15
18:07
А если убрать из ПриОткрытии
СтатусВозврата(0);
    Возврат;
Будет работать после автоматического выполнения обработки?
16 varelchik
 
14.03.15
15:56
брось в аську свой номер телефона надо поговорили а может и встретиться.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс