0
gerthog
26.09.14
✎
09:29
|
Запустил обработку:
Процедура ОчиститьНаДату(ДатаОчистки)
Состояние("Обрабатываются данные за: "+Формат(ДатаОчистки,"ДЛФ=DD"));
ЗапросОчистка = Новый Запрос;
ЗапросОчистка.Текст = "ВЫБРАТЬ
| ВерсииОбъектов.Объект,
| ВерсииОбъектов.НомерВерсии,
| ВерсииОбъектов.ВерсияОбъекта,
| ВерсииОбъектов.АвторВерсии,
| ВерсииОбъектов.ДатаВерсии,
| ВерсииОбъектов.УдалитьСжато
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
|ГДЕ
| ВерсииОбъектов.ДатаВерсии >= &НачПериода
| И ВерсииОбъектов.ДатаВерсии <= &КонПериода";
ЗапросОчистка.Параметры.Вставить("НачПериода",НачалоДня(ДатаОчистки));
ЗапросОчистка.Параметры.Вставить("КонПериода",КонецДня(ДатаОчистки));
Выборка = ЗапросОчистка.Выполнить().Выбрать();
НовыйНомерВерсии=1;
Пока Выборка.Следующий() Цикл
ВерсииОбъектов = РегистрыСведений.ВерсииОбъектов;
МенеджерЗаписиИИО = ВерсииОбъектов.СоздатьМенеджерЗаписи();
МенеджерЗаписиИИО.Объект = Выборка.Объект;
МенеджерЗаписиИИО.НомерВерсии = Выборка.НомерВерсии;
МенеджерЗаписиИИО.Прочитать();
МенеджерЗаписиИИО.Объект = Справочники.Номенклатура.ПустаяСсылка();
МенеджерЗаписиИИО.НомерВерсии = НовыйНомерВерсии;
МенеджерЗаписиИИО.ВерсияОбъекта = Неопределено;
МенеджерЗаписиИИО.Записать();
НовыйНомерВерсии=НовыйНомерВерсии+1;
КонецЦикла;
НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(Справочники.Номенклатура.ПустаяСсылка());
НаборЗаписей.Записать();
Сообщить ("за: "+Формат(ДатаОчистки,"ДЛФ=DD")+" очищено "+НовыйНомерВерсии+" записей." ,СтатусСообщения.Внимание);
КонецПроцедуры
Процедура КнопкаВыполнитьНажатие(Кнопка)
Если ЗначениеЗаполнено(ДатаПо)=Ложь Тогда
Предупреждение("Не указана дата очистки !",10);
Возврат;
КонецЕсли;
ЗапросДаты = Новый Запрос;
ЗапросДаты.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
| НАЧАЛОПЕРИОДА(ВерсииОбъектов.ДатаВерсии, ДЕНЬ) КАК ДатаВерсии
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
|ГДЕ
| НАЧАЛОПЕРИОДА(ВерсииОбъектов.ДатаВерсии, ДЕНЬ) <= &ДатаПо
|
|УПОРЯДОЧИТЬ ПО
| ДатаВерсии";
ЗапросДаты.Параметры.Вставить("ДатаПо",ДатаПо);
ВыборкаДаты = ЗапросДаты.Выполнить().Выбрать();
Пока ВыборкаДаты.Следующий() Цикл
ОбработкаПрерыванияПользователя();
ОчиститьНаДату(ВыборкаДаты.ДатаВерсии);
КонецЦикла;
Предупреждение("Обработка завершена !",10);
КонецПроцедуры
Чистка шла всю ночь, но база не уменьшилась ни на метр, почему?
|
|