Очистка регистра сведений "Списанные товары" в закрытых периодах

Очистка регистра сведений ""Списанные товары" с отбором по периоду

Анализировал на днях размеры таблиц базы. 

8Гб отдано под РС «Списанные товары». Многовато под записи, которые нужны только для закрытия периодов. 

Сходил к ГБ, взял клятвенное уверение, что документы за 2014 год не будут изменяться с гарантией 100%, и вычистил записи РС «Списанные товары» с возрастом старшим, чем 31.12.2014 23:59:59.

Результат: База «похудела» на 5,4ГБ. 

Может, кому и сгодится…

3 Comments

  1. SITR-utyos

    Почему-то у меня не показывает сколько осталось обработать.

    Вот так будет работать быстрее

    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ПрошлоВремени = ТекущаяДата();
    
    Состояние(«Получаем список регистраторов…»);
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    «ВЫБРАТЬ РАЗЛИЧНЫЕ
    | СписанныеТовары.Регистратор КАК Регистратор
    |ИЗ
    | РегистрСведений.СписанныеТовары КАК СписанныеТовары
    |ГДЕ
    | СписанныеТовары.Период МЕЖДУ &НачПериода И &КонПериода
    |
    |УПОРЯДОЧИТЬ ПО
    | Регистратор
    |АВТОУПОРЯДОЧИВАНИЕ»;
    
    Запрос.УстановитьПараметр(«НачПериода», НачПериода);
    Запрос.УстановитьПараметр(«КонПериода», КонПериода);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    // Подготовка прогрессбара к работе
    Счетчик = 0;
    ИндикаторПрогресса = 0;
    ОбщКолво = Выборка.Количество();
    КоличествоОбработанныхОбъектовДляОбновленияСтатуса = ?(ОбщКолво>100,цел(ОбщКолво/100),1);
    ЭлементыФормы.Индикатор1.МаксимальноеЗначение = ?(ОбщКолво>100,100,ОбщКолво);
    
    Состояние(«Выполняется очистка РС «Списанные товары»…»);
    
    НаборЗаписей = РегистрыСведений.СписанныеТовары.СоздатьНаборЗаписей();
    Пока Выборка.Следующий() Цикл
    НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
    НаборЗаписей.Записать();
    
    ОбработкаПрерыванияПользователя();
    Если Счетчик % КоличествоОбработанныхОбъектовДляОбновленияСтатуса = 0 Тогда
    ИндикаторПрогресса = ИндикаторПрогресса + 1;
    КонецЕсли;
    Счетчик = Счетчик + 1;
    
    КонецЦикла;
    
    ПрошлоВремени = ТекущаяДата()-ПрошлоВремени;
    ВремяВыполнения = «Время выполнения: » + Формат(‘00010101’+ПрошлоВремени,»ДФ=mm:ss»);
    
    Предупреждение(«Обработка завершена.»);
    
    КонецПроцедуры

    Показать

    Reply
  2. ksv74

    (1) А еще быстрее, если в запросе АВТОУПОРЯДОЧИВАНИЕ убрать.

    Reply
  3. mikukrnet
    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *