текст ПВД...ткни а то мож смотрю не туда...
Если ДатаОкончания = Дата(1,1,1) Тогда
ДатаОкончания = ТекущаяДата();
КонецЕсли;
ВыборкаДанных = Новый ТаблицаЗначений;
ВыборкаДанных.Колонки.Добавить("ТаблицаРегистровНакопления");
ВыборкаДанных.Колонки.Добавить("ТаблицаРегистровСведений");
ВыборкаДанных.Колонки.Добавить("Дата");
ВыборкаДанных.Колонки.Добавить("Комментарий");
ВыборкаДанных.Колонки.Добавить("Ответственный");
ВыборкаДанных.Колонки.Добавить("Номер");
ВыборкаДанных.Колонки.Добавить("ПометкаУдаления");
ВыборкаДанных.Колонки.Добавить("Автор");
ВыборкаДанных.Колонки.Добавить("Организация");
ВыборкаДанных.Колонки.Добавить("КлючВыгружаемыхДанных");
Если Параметры.Свойство("тзРегистрыДвиженийДокумента") Тогда
тзРегистрыДвиженийДокумента = Параметры.тзРегистрыДвиженийДокумента;
Иначе
тзРегистрыДвиженийДокумента = Новый ТаблицаЗначений;
тзРегистрыДвиженийДокумента.Колонки.Добавить("ОбъектМД");
Документ = Метаданные.НайтиПоПолномуИмени("Документ.КорректировкаЗаписейРегистров");
Для Каждого РегДвижения Из Документ.Движения Цикл
СтрокаТЗ = тзРегистрыДвиженийДокумента.Добавить();
СтрокаТЗ.ОбъектМД = РегДвижения
КонецЦикла;
КонецЕсли;
тзРегистрыНакопленияВыгружаемые = Новый ТаблицаЗначений;
тзРегистрыНакопленияВыгружаемые.Колонки.Добавить("ОбъектМД");
тзРегистрыНакопленияВыгружаемые.Колонки.Добавить("Выгружать");
тзРегистрыНакопленияВыгружаемые.Колонки.Добавить("тзЗаписей");
Для Сч = 0 По (Метаданные.РегистрыНакопления.Количество()-1) Цикл
РегистрНакопления = Метаданные.РегистрыНакопления.Получить(Сч);
Если РегистрНакопления.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Обороты Тогда
Продолжить;
КонецЕсли;
СтрокаТЗ = тзРегистрыДвиженийДокумента.Найти(РегистрНакопления, "ОбъектМД");
Выгружать = 1;
Если СтрокаТЗ = Неопределено Тогда
Выгружать = 0;
КонецЕсли;
НоваяСтрокаТЗ = тзРегистрыНакопленияВыгружаемые.Добавить();
НоваяСтрокаТЗ.ОбъектМД = РегистрНакопления;
НоваяСтрокаТЗ.Выгружать = Выгружать;
КонецЦикла;
Запрос = Новый Запрос;
Для Каждого СтрокаТЗ Из тзРегистрыНакопленияВыгружаемые Цикл
Если СтрокаТЗ.Выгружать = 0 Тогда
Продолжить;
КонецЕсли;
СтрокаТЗ.тзЗаписей = Новый ТаблицаЗначений;
РегистрНакопления = СтрокаТЗ.ОбъектМД;
ТекстЗапроса = "ВЫБРАТЬ";
Для Сч = 0 По (РегистрНакопления.Измерения.Количество()-1) Цикл
Измерение = РегистрНакопления.Измерения.Получить(Сч);
СтрокаТЗ.тзЗаписей.Колонки.Добавить(СокрЛП(Измерение.Имя));
ТекстЗапроса = ТекстЗапроса + "
| " + СокрЛП(РегистрНакопления.Имя) + "." + СокрЛП(Измерение.Имя) + ",";
КонецЦикла;
СписокРесурсов = Новый СписокЗначений;
Для Сч = 0 По (РегистрНакопления.Ресурсы.Количество()-1) Цикл
Ресурс = РегистрНакопления.Ресурсы.Получить(Сч);
СтрокаТЗ.тзЗаписей.Колонки.Добавить(СокрЛП(Ресурс.Имя));
СписокРесурсов.Добавить(СокрЛП(Ресурс.Имя));
ТекстЗапроса = ТекстЗапроса + "
| " + СокрЛП(РегистрНакопления.Имя) + "." + СокрЛП(Ресурс.Имя) + "Остаток" + ?(Сч < (РегистрНакопления.Ресурсы.Количество()-1) ,",", "");
КонецЦикла;
Для Сч = 0 По (РегистрНакопления.Реквизиты.Количество()-1) Цикл
Реквизит = РегистрНакопления.Реквизиты.Получить(Сч);
СтрокаТЗ.тзЗаписей.Колонки.Добавить(СокрЛП(Реквизит.Имя));
КонецЦикла;
СтрокаТЗ.тзЗаписей.Колонки.Добавить("Активность");
СтрокаТЗ.тзЗаписей.Колонки.Добавить("Период");
ТекстЗапроса = ТекстЗапроса + "
|ИЗ
| РегистрНакопления." + СокрЛП(РегистрНакопления.Имя) + ".Остатки(&ДатаОкончания, ) КАК " + СокрЛП(РегистрНакопления.Имя);
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("ДатаОкончания", Новый Граница(ДатаОкончания, ВидГраницы.Включая));
ТаблицаОстатковРегистра = Запрос.Выполнить().Выгрузить();
Для Каждого НаборЗаписей Из ТаблицаОстатковРегистра Цикл
НоваяСтрокаТЗ = СтрокаТЗ.тзЗаписей.Добавить();
НоваяСтрокаТЗ.Активность = 1;
НоваяСтрокаТЗ.Период = ДатаОкончания;
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
ЭлементСпискаРесурсов = СписокРесурсов.НайтиПоЗначению(ИмяКолонки);
Если ЭлементСпискаРесурсов = Неопределено Тогда
ДОбавкаКИмениКолонки = "";
Иначе
ДОбавкаКИмениКолонки = "Остаток";
КонецЕсли;
Попытка
НоваяСтрокаТЗ[ИмяКолонки] = НаборЗаписей[ИмяКолонки+ДОбавкаКИмениКолонки];
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Для Каждого СтрокаТЗ Из тзРегистрыНакопленияВыгружаемые Цикл
Если СтрокаТЗ.Выгружать = 0 Тогда
Продолжить;
КонецЕсли;
Если СтрокаТЗ.тзЗаписей.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
ВыборкаДанных.Колонки.Добавить(СтрокаТЗ.ОбъектМД.Имя);
КонецЦикла;
НоваяСтрокаВыборки = ВыборкаДанных.Добавить();
НоваяСтрокаВыборки.Дата = ДатаОкончания;
НоваяСтрокаВыборки.Комментарий = "Перенос остатков регистров накопления";
НоваяСтрокаВыборки.ТаблицаРегистровСведений = Новый ТаблицаЗначений;
НоваяСтрокаВыборки.ТаблицаРегистровСведений.Колонки.Добавить("Имя");
НоваяСтрокаВыборки.ТаблицаРегистровСведений.Колонки.Добавить("Представление");
НоваяСтрокаВыборки.ТаблицаРегистровНакопления = Новый ТаблицаЗначений;
НоваяСтрокаВыборки.ТаблицаРегистровНакопления.Колонки.Добавить("Имя");
НоваяСтрокаВыборки.ТаблицаРегистровНакопления.Колонки.Добавить("Представление");
НоваяСтрокаВыборки.КлючВыгружаемыхДанных = СокрЛП(ДатаОкончания)+"РегистрыНакопления";
Для Каждого СтрокаТЗ Из тзРегистрыНакопленияВыгружаемые Цикл
Если СтрокаТЗ.Выгружать = 0 Тогда
Продолжить;
КонецЕсли;
Если СтрокаТЗ.тзЗаписей.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
РегистрНакопления = СтрокаТЗ.ОбъектМД;
СтрокаТаблицыРегистровНакопления = НоваяСтрокаВыборки.ТаблицаРегистровНакопления.Добавить();
СтрокаТаблицыРегистровНакопления.Имя = РегистрНакопления.Имя;
СтрокаТаблицыРегистровНакопления.Представление = РегистрНакопления.Синоним;
НоваяСтрокаВыборки[РегистрНакопления.Имя] = Новый ТаблицаЗначений;
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
НоваяСтрокаВыборки[РегистрНакопления.Имя].Колонки.Добавить(ИмяКолонки);
КонецЦикла;
Для Каждого Запись Из СтрокаТЗ.тзЗаписей Цикл
НоваяЗапись = НоваяСтрокаВыборки[РегистрНакопления.Имя].Добавить();
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
Попытка
НоваяЗапись[ИмяКолонки] = Запись[ИмяКолонки];
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЦикла;
тзРегистрыСведенийВыгружаемые = Новый ТаблицаЗначений;
тзРегистрыСведенийВыгружаемые.Колонки.Добавить("ОбъектМД");
тзРегистрыСведенийВыгружаемые.Колонки.Добавить("Выгружать");
тзРегистрыСведенийВыгружаемые.Колонки.Добавить("тзЗаписей");
Для Сч = 0 По (Метаданные.РегистрыСведений.Количество()-1) Цикл
РегистрСведений = Метаданные.РегистрыСведений.Получить(Сч);
Если РегистрСведений.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Или РегистрСведений.Имя = "СоответствиеСчетовБУиНУ" Тогда
Продолжить;
КонецЕсли;
СтрокаТЗ = тзРегистрыДвиженийДокумента.Найти(РегистрСведений, "ОбъектМД");
Выгружать = 1;
Если СтрокаТЗ = Неопределено Тогда
Выгружать = 0;
КонецЕсли;
НоваяСтрокаТЗ = тзРегистрыСведенийВыгружаемые.Добавить();
НоваяСтрокаТЗ.ОбъектМД = РегистрСведений;
НоваяСтрокаТЗ.Выгружать = Выгружать;
КонецЦикла;
Для Каждого СтрокаТЗ Из тзРегистрыСведенийВыгружаемые Цикл
Если СтрокаТЗ.Выгружать = 0 Тогда
Продолжить;
КонецЕсли;
СтрокаСверткиИзмерения = "";
СтрокаСверткиРесурсы = "";
СтрокаСверткиРеквизиты = "";
СтрокаТЗ.тзЗаписей = Новый ТаблицаЗначений;
СтрокаТЗ.тзЗаписей.Колонки.Добавить("Активность");
СтрокаТЗ.тзЗаписей.Колонки.Добавить("Период");
СтрокаСверткиИзмерения = "Активность,Период,";
РегистрСведений = СтрокаТЗ.ОбъектМД;
Для Сч = 0 По (РегистрСведений.Измерения.Количество()-1) Цикл
Измерение = РегистрСведений.Измерения.Получить(Сч);
СтрокаТЗ.тзЗаписей.Колонки.Добавить(СокрЛП(Измерение.Имя));
СтрокаСверткиИзмерения = СтрокаСверткиИзмерения + СокрЛП(Измерение.Имя) + ",";
КонецЦикла;
СтрокаСверткиИзмерения = Лев(СтрокаСверткиИзмерения, СтрДлина(СтрокаСверткиИзмерения) - 1);
Для Сч = 0 По (РегистрСведений.Ресурсы.Количество()-1) Цикл
Ресурс = РегистрСведений.Ресурсы.Получить(Сч);
СтрокаТЗ.тзЗаписей.Колонки.Добавить(СокрЛП(Ресурс.Имя));
СтрокаСверткиРесурсы = СтрокаСверткиРесурсы + СокрЛП(Ресурс.Имя) + ","
КонецЦикла;
СтрокаСверткиРесурсы = Лев(СтрокаСверткиРесурсы, СтрДлина(СтрокаСверткиРесурсы) - 1);
Для Сч = 0 По (РегистрСведений.Реквизиты.Количество()-1) Цикл
Реквизит = РегистрСведений.Реквизиты.Получить(Сч);
СтрокаТЗ.тзЗаписей.Колонки.Добавить(СокрЛП(Реквизит.Имя));
СтрокаСверткиРеквизиты = СтрокаСверткиРеквизиты + СокрЛП(Реквизит.Имя) + ",";
КонецЦикла;
СтрокаСверткиРеквизиты = Лев(СтрокаСверткиРеквизиты, СтрДлина(СтрокаСверткиРеквизиты) - 1);
Если СокрЛП(РегистрСведений.ПериодичностьРегистраСведений) = "Непериодический" Тогда
НаборЗаписей = РегистрыСведений[СтрокаТЗ.ОбъектМД.Имя].Выбрать();
Пока НаборЗаписей.Следующий() Цикл
НоваяСтрокаТЗ = СтрокаТЗ.тзЗаписей.Добавить();
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
Попытка
НоваяСтрокаТЗ[ИмяКолонки] = НаборЗаписей[ИмяКолонки];
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
Иначе
НаборЗаписейТаблица = РегистрыСведений[СтрокаТЗ.ОбъектМД.Имя].СрезПоследних(Новый Граница(ДатаОкончания, ВидГраницы.Включая),);
Для Каждого НаборЗаписей Из НаборЗаписейТаблица Цикл
НоваяСтрокаТЗ = СтрокаТЗ.тзЗаписей.Добавить();
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
Попытка
НоваяСтрокаТЗ[ИмяКолонки] = НаборЗаписей[ИмяКолонки];
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаТЗ Из тзРегистрыСведенийВыгружаемые Цикл
Если СтрокаТЗ.Выгружать = 0 Тогда
Продолжить;
КонецЕсли;
Если СтрокаТЗ.тзЗаписей.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
ВыборкаДанных.Колонки.Добавить(СтрокаТЗ.ОбъектМД.Имя);
КонецЦикла;
НоваяСтрокаВыборки = ВыборкаДанных.Добавить();
НоваяСтрокаВыборки.Дата = ДатаОкончания;
НоваяСтрокаВыборки.Комментарий = "Перенос остатков регистров сведений";
НоваяСтрокаВыборки.ТаблицаРегистровСведений = Новый ТаблицаЗначений;
НоваяСтрокаВыборки.ТаблицаРегистровСведений.Колонки.Добавить("Имя");
НоваяСтрокаВыборки.ТаблицаРегистровСведений.Колонки.Добавить("Представление");
НоваяСтрокаВыборки.ТаблицаРегистровНакопления = Новый ТаблицаЗначений;
НоваяСтрокаВыборки.ТаблицаРегистровНакопления.Колонки.Добавить("Имя");
НоваяСтрокаВыборки.ТаблицаРегистровНакопления.Колонки.Добавить("Представление");
НоваяСтрокаВыборки.КлючВыгружаемыхДанных = СокрЛП(ДатаОкончания)+"РегистрыСведений";
Для Каждого СтрокаТЗ Из тзРегистрыСведенийВыгружаемые Цикл
Если СтрокаТЗ.Выгружать = 0 Тогда
Продолжить;
КонецЕсли;
Если СтрокаТЗ.тзЗаписей.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
РегистрСведений = СтрокаТЗ.ОбъектМД;
СтрокаТаблицыРегистровСведений = НоваяСтрокаВыборки.ТаблицаРегистровСведений.Добавить();
СтрокаТаблицыРегистровСведений.Имя = РегистрСведений.Имя;
СтрокаТаблицыРегистровСведений.Представление = РегистрСведений.Синоним;
НоваяСтрокаВыборки[РегистрСведений.Имя] = Новый ТаблицаЗначений;
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
НоваяСтрокаВыборки[РегистрСведений.Имя].Колонки.Добавить(ИмяКолонки);
КонецЦикла;
Для Каждого Запись Из СтрокаТЗ.тзЗаписей Цикл
НоваяЗапись = НоваяСтрокаВыборки[РегистрСведений.Имя].Добавить();
Для Сч = 0 По (СтрокаТЗ.тзЗаписей.Колонки.Количество()-1) Цикл
ИмяКолонки = СтрокаТЗ.тзЗаписей.Колонки.Получить(Сч).Имя;
Попытка
НоваяЗапись[ИмяКолонки] = Запись[ИмяКолонки];
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЦикла;