Стандартными средствами сделать не представляется по двум причинам:
- Очень большой период, и если запускать обработку проведения, то даже при корректном количественном учете займет много времени
- Пересорт. Разумеется в базе не соблюдалась последовательность ввода.
Функция ПолучитьСписокВидов()
СписокВидов = Новый СписокЗначений;
СписокВидов.Добавить("РеализацияТоваровУслуг");
СписокВидов.Добавить("ПеремещениеТоваров");
СписокВидов.Добавить("ПоступлениеТоваровУслуг");
СписокВидов.Добавить("ВозвратТоваровОтПокупателя");
СписокВидов.Добавить("ОприходованиеТоваров");
СписокВидов.Добавить("СписаниеТоваров");
СписокВидов.Добавить("КомплектацияНоменклатуры");
СписокВидов.Добавить("ПриходныйОрдерНаТовары");
СписокВидов.Добавить("ВозвратТоваровПоставщику");
Возврат СписокВидов;
КонецФункции
из списка формируется запрос к документам
Запрос = Новый Запрос;
ФлагПервыйВход = Истина;
Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Вид, ВложенныйЗапрос.Ссылка ИЗ (";
Для каждого Док из Метаданные.Документы Цикл
Если СписокВидов.НайтиПоЗначению(Док.Имя) = Неопределено
Тогда Продолжить;
КонецЕсли;
Если НЕ ФлагПервыйВход Тогда
Запрос.Текст = Запрос.Текст + СИМВОЛЫ.ПС + " ОБЪЕДИНИТЬ ВСЕ"+ СИМВОЛЫ.ПС ;
КонецЕСли;
ФлагПервыйВход = Ложь;
Запрос.Текст = Запрос.Текст + СИМВОЛЫ.ПС + " ВЫБРАТЬ ВЫРАЗИТЬ("""+Док.Имя+""" КАК Строка) КАК Вид, Ссылка ИЗ Документ." + Док.Имя + " ГДЕ Дата МЕЖДУ &НачДата и &КонДата ";
КонецЦикла;
Ну и для каждой строи выполняется код
Процедура ОбработкаДокумента(Ссылка);
МДДок = Ссылка.Метаданные();
Попытка
Выполнить("Обработать"+МДДок.Имя+"(Ссылка)");
Исключение
СообщитьД(МДДок.Синоним+"
|"""+Ссылка+"""
|"+ОписаниеОшибки(),СтатусСообщения.Важное);
КонецПопытки;
КонецПроцедуры
т.е. для каждого вида документов должна быть своя процедура. Например для приходных накладных
Процедура ОбработатьПоступлениеТоваровУслуг(Ссылка)
// Код процедуры
КонецПроцедуры
Информация по партиям сидит в таблице значений.
Более подробно можно посмотреть в коде обработки.
Ну и как всегда. Все делаем на копиях. если погубите свои рабочие базы, виноваты сами :)
P.S.
У меня на компе 16 гигов памяти, 10 из которых я пустил на RAM диск (вот этот вот). На этом диске обработка 5 лет шла 50 минут.
Тот же самый период на обычном жестком шла 20 часов.
Выводы делайте сами