Закончил данную обработку.
Вот ключевые участки кода:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Процедура ПереносОстатков()
СпрСклады = Справочники.СкладыКомпании.Выбрать();
Пока СпрСклады.Следующий() Цикл
ВводОстатков = Документы.ВводОстатковТоваров.СоздатьДокумент();
ВводОстатков.Комментарий = "Перенос остатков при свертке ИБ";
ВводОстатков.СкладКомпании = СпрСклады.Ссылка;
ВводОстатков.Автор = Справочники.Пользователи.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
ВводОстатков.Организация = Справочники.Организации.НайтиПоНаименованию("ГРАНД-АВТО");
ВводОстатков.ПодразделениеКомпании = Справочники.ПодразделенияКомпании.НайтиПоНаименованию("ГРАНД-АВТО");
ВводОстатков.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("АВТОСКЛАД");
ВводОстатков.ДоговорВзаиморасчетов = Справочники.ДоговорыВзаиморасчетов.НайтиПоКоду("ЦБ000001");
ВалютаДок = Справочники.Валюты.НайтиПоКоду("840");
КурсДок = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(пвДатаСвертки, Новый Структура("Валюта", ВалютаДок));
ВводОстатков.ВалютаДокумента = ВалютаДок;
ВводОстатков.КурсДокумента = КурсДок.Курс;
ВводОстатков.ХозОперация = Справочники.ХозОперации.ВводОстатковТоваров;
ВводОстатков.Дата = КонецДня(пвДатаСвертки)+1; // Дата документа с начала дня следующего числа
ВводОстатков.СтатьяОприходованияТМЦ = Справочники.СтатьиДоходовИРасходов.НайтиПоКоду("30003");
ТЧ = ВводОстатков.Товары;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиТоваровКомпанииОстатки.Номенклатура,
| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,
| ОстаткиТоваровКомпанииОстатки.СкладКомпании
|ИЗ
| РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&Дата, ) КАК ОстаткиТоваровКомпанииОстатки
|ГДЕ
| ОстаткиТоваровКомпанииОстатки.СкладКомпании = &СкладКомпании";
Запрос.УстановитьПараметр("СкладКомпании", СпрСклады.Ссылка);
Запрос.УстановитьПараметр("Дата", пвДатаСвертки);
Выборка = Запрос.Выполнить().Выбрать();
ЭлементыФормы.Индикатор.МинимальноеЗначение = 0;
ЭлементыФормы.Индикатор.МаксимальноеЗначение = Выборка.Количество();
ЭлементыФормы.Индикатор.Значение = 0;
Пока Выборка.Следующий() Цикл
НоваяСтрокаТЧ = ТЧ.Добавить();
НоваяСтрокаТЧ.Номенклатура = Выборка.Номенклатура;
ВводОстатков.ОбработкаРеквизита("Товары.Номенклатура",НоваяСтрокаТЧ,);
НоваяСтрокаТЧ.Количество = Выборка.КоличествоОстаток;
ВводОстатков.ОбработкаРеквизита("Товары.Количество",НоваяСтрокаТЧ,);
Отбор = Новый Структура("ТипЦен, Номенклатура");
Отбор.ТипЦен = ВводОстатков.ДоговорВзаиморасчетов.ТипЦенПокупки; // Какой тип цены
Отбор.Номенклатура = Выборка.Номенклатура; // Для какой номенклатуры
Цена = РегистрыСведений.Цены.СрезПоследних( пвДатаСвертки, Отбор);
Для каждого стр из Цена Цикл
НоваяСтрокаТЧ.Цена = стр.Цена;
ВводОстатков.ОбработкаРеквизита("Товары.Цена",НоваяСтрокаТЧ,);
КонецЦикла;
ЭлементыФормы.Индикатор.Значение = ЭлементыФормы.Индикатор.Значение+1;
ОбработкаПрерыванияПользователя();
КонецЦикла;
ВводОстатков.Записать();
ЭлементыФормы.Индикатор.Значение = 0;
КонецЦикла;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Процедура ПереносЦен()
Для каждого СтрЦена из тпНастройкаЦен Цикл
ДокИзмЦен = Документы.ИзменениеЦен.СоздатьДокумент();
ДокИзмЦен.ОбработкаЗаполнения(Неопределено);
ДокИзмЦен.Комментарий = "Перенос цен при свертке ИБ";
ДокИзмЦен.Дата = КонецДня(пвДатаСвертки)+1; // Дата документа с начала дня следующего числа пвДатаСвертки;
ДокИзмЦен.ХозОперация = Справочники.ХозОперации.УстановкаЦенКомпании;
//Док.УстановитьНовыйНомер();
ДокИзмЦен.ДатаНачалаДействия = пвДатаСвертки;
ДокИзмЦен.Организация = Справочники.Организации.НайтиПоНаименованию("ГРАНД-АВТО");
ДокИзмЦен.ПодразделениеКомпании = Справочники.ПодразделенияКомпании.НайтиПоНаименованию("ГРАНД-АВТО");;
ДокИзмЦен.ТипЦен = СтрЦена.ТипЦены;
ВалютаДок = Справочники.Валюты.НайтиПоКоду("840");
КурсДок = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(пвДатаСвертки, Новый Структура("Валюта", ВалютаДок));
ДокИзмЦен.ВалютаДокумента = ВалютаДок;
ДокИзмЦен.КурсДокумента = КурсДок.Курс;
ДокИзмЦен.РасчетЦенОт = 2; //Выставляем "От цен поставщика"
//ДокИзмЦен.Поставщик = Справочники.Контрагенты.НайтиПоНаименованию("АВТОСКЛАД");
ТЧ = ДокИзмЦен.Товары;
ОтборТипЦен = Новый Структура("ТипЦен", СтрЦена.ТипЦены);
тзДанные = РегистрыСведений.Цены.СрезПоследних(пвДатаСвертки, ОтборТипЦен);
ЭлементыФормы.Индикатор.МинимальноеЗначение = 0;
ЭлементыФормы.Индикатор.МаксимальноеЗначение = тзДанные.Количество();
ЭлементыФормы.Индикатор.Значение = 0;
Для Каждого Стр Из тзДанные Цикл
НайденнаяСтрока = ТЧ.Найти(Стр.Номенклатура,"Номенклатура");
Если НайденнаяСтрока = Неопределено Тогда
СтрокаТоваров= ТЧ.Добавить();
СтрокаТоваров.Номенклатура = Стр.Номенклатура;
ДокИзмЦен.ОбработкаРеквизита("Товары.Номенклатура",СтрокаТоваров,);
КонецЕсли;
ЭлементыФормы.Индикатор.Значение = ЭлементыФормы.Индикатор.Значение+1;
КонецЦикла;
ДокИзмЦен.Записать();
ЭлементыФормы.Индикатор.Значение = 0;
КонецЦикла;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Процедура ПереносВзаиморасчетов()
СпрВалюты = Справочники.Валюты.Выбрать();
Пока СпрВалюты.Следующий() Цикл
ДокВзаиморасч = Документы.ВводОстатковВзаиморасчетов.СоздатьДокумент();
ДокВзаиморасч.Комментарий = "Перенос цен при свертке ИБ";
ДокВзаиморасч.Организация = Справочники.Организации.НайтиПоНаименованию("ГРАНД-АВТО");;
ДокВзаиморасч.ПодразделениеКомпании = Справочники.ПодразделенияКомпании.НайтиПоНаименованию("ГРАНД-АВТО");;;
ДокВзаиморасч.ВалютаДокумента = СпрВалюты.Ссылка;
ДокВзаиморасч.Дата = КонецДня(пвДатаСвертки)+1; // Дата документа с начала дня следующего числа пвДатаСвертки;
ДокВзаиморасч.Автор = Справочники.Пользователи.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
ДокВзаиморасч.РегламентированныйУчет = Истина;
КурсДок = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(пвДатаСвертки, Новый Структура("Валюта", СпрВалюты.Ссылка));
ДокВзаиморасч.КурсДокумента = КурсДок.Курс;
ДокВзаиморасч.ХозОперация = Справочники.ХозОперации.ВводОстатковВзаиморасчетов;
ТЧ = ДокВзаиморасч.Состав;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВзаиморасчетыКомпанииОстаткиИОбороты.Контрагент КАК Контрагент,
| ВзаиморасчетыКомпанииОстаткиИОбороты.ДоговорВзаиморасчетов КАК ДоговорВзаиморасчетов,
| ВзаиморасчетыКомпанииОстаткиИОбороты.Сделка КАК Сделка,
| ВзаиморасчетыКомпанииОстаткиИОбороты.СуммаКонечныйОстаток КАК Сумма,
| ВзаиморасчетыКомпанииОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаУпр,
| ВзаиморасчетыКомпанииОстаткиИОбороты.СуммаБазКонечныйОстаток КАК СуммаБаз
|ИЗ
| РегистрНакопления.ВзаиморасчетыКомпании.ОстаткиИОбороты(, &Дата, , , ) КАК ВзаиморасчетыКомпанииОстаткиИОбороты
|ГДЕ
| ВзаиморасчетыКомпанииОстаткиИОбороты.ДоговорВзаиморасчетов.ВалютаВзаиморасчетов = &ВалютаВзаиморасчетов";
Запрос.УстановитьПараметр("Дата", пвДатаСвертки);
Запрос.УстановитьПараметр("ВалютаВзаиморасчетов",СпрВалюты.Ссылка);
Результат = Запрос.Выполнить();
ТЗ = Новый ТаблицаЗначений;
ОписаниеКонтрагента = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
ОписаниеДоговорВзаиморасчетов = Новый ОписаниеТипов("СправочникСсылка.ДоговорыВзаиморасчетов");
ОписаниеСтроки = Новый ОписаниеТипов("Строка");
ОписаниеСуммы = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(12, 3));
ТЗ.Колонки.Добавить("Контрагент",ОписаниеКонтрагента);
ТЗ.Колонки.Добавить("ДоговорВзаиморасчетов",ОписаниеДоговорВзаиморасчетов);
ТЗ.Колонки.Добавить("Сделка",ОписаниеСтроки);
ТЗ.Колонки.Добавить("Сумма",ОписаниеСуммы);
ТЗ.Колонки.Добавить("СуммаУпр",ОписаниеСуммы);
ТЗ.Колонки.Добавить("СуммаБаз",ОписаниеСуммы);
ТЗ = Результат.Выгрузить();
ТЗ.Свернуть("Контрагент, ДоговорВзаиморасчетов" ,"Сумма, СуммаУпр, СуммаБаз");
ЭлементыФормы.Индикатор.МинимальноеЗначение = 0;
ЭлементыФормы.Индикатор.МаксимальноеЗначение = ТЗ.Количество();
ЭлементыФормы.Индикатор.Значение = 0;
Для каждого стр из ТЗ Цикл
Сумма = ?(ПустаяСтрока(стр.Сумма), 0, стр.Сумма);
Если Сумма > 0 Тогда
СтрокаТоваров= ТЧ.Добавить();
СтрокаТоваров.Контрагент = Стр.Контрагент;
ДокВзаиморасч.ОбработкаРеквизита("Состав.Контрагент",СтрокаТоваров,);
СтрокаТоваров.ДоговорВзаиморасчетов = Стр.ДоговорВзаиморасчетов;
ДокВзаиморасч.ОбработкаРеквизита("Состав.ДоговорВзаиморасчетов",СтрокаТоваров,);
СтрокаТоваров.СуммаДебет = Сумма;
ИначеЕсли Сумма < 0 Тогда
СтрокаТоваров= ТЧ.Добавить();
СтрокаТоваров.Контрагент = Стр.Контрагент;
ДокВзаиморасч.ОбработкаРеквизита("Состав.Контрагент",СтрокаТоваров,);
СтрокаТоваров.ДоговорВзаиморасчетов = Стр.ДоговорВзаиморасчетов;
ДокВзаиморасч.ОбработкаРеквизита("Состав.ДоговорВзаиморасчетов",СтрокаТоваров,);
СтрокаТоваров.СуммаКредит = Макс(-Сумма, Сумма);
КонецЕсли;
ЭлементыФормы.Индикатор.Значение = ЭлементыФормы.Индикатор.Значение+1;
КонецЦикла;
ДокВзаиморасч.Записать();
ЭлементыФормы.Индикатор.Значение = 0;
КонецЦикла;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Процедура УстановкаПометкиУдаления()
Запрос = Новый Запрос;
ФлагПервыйВход = Истина;
Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (";
Для каждого Док из Метаданные.Документы Цикл
Если НЕ ФлагПервыйВход Тогда
Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ ";
КонецЕСли;
ФлагПервыйВход = Ложь;
Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ Ссылка ИЗ Документ." + Док.Имя + " ГДЕ Дата МЕЖДУ &НачДата и &КонДата ";
КонецЦикла;
Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос УПОРЯДОЧИТЬ ПО ВложенныйЗапрос.Ссылка.Дата";
Запрос.УстановитьПараметр("НачДата", НачалоГода(пвДатаСвертки));
Запрос.УстановитьПараметр("КонДата", пвДатаСвертки);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ЭлементыФормы.Индикатор.МинимальноеЗначение = 0;
ЭлементыФормы.Индикатор.МаксимальноеЗначение = Выборка.Количество();
ЭлементыФормы.Индикатор.Значение = 0;
Пока Выборка.Следующий() Цикл
ЭлементыФормы.Индикатор.Значение = ЭлементыФормы.Индикатор.Значение+1;
Попытка
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
Объект.Записать();
Исключение
Сообщить("Ошибка установки пометки удаления: "+Выборка.Ссылка);
КонецПопытки;
ОбработкаПрерыванияПользователя();
КонецЦикла;
ЭлементыФормы.Индикатор.Значение = 0;
КонецПроцедуры
Насколько такой способ верный, т.к. первые тестирования показали, что вроде все работает и полученные в итоге цифры похожи на правду?
Может быть стоит что-нибудь еще учесть?