Таблица перерасчетов содержит данные о тех записях, которые возможно требуется пересчитать. Давай разбираться дальше.
Перерасчеты должны быть, если меняется сумма база в регистре расчета.
Так работают автоматически помещаемые системой в таблицу перерасчетов записи. То есть когда мы указываемые зависимые виды расчета, система видит что изменился ведущий вид расчета, зависимый необходимо пересчитать, система САМА добавляет эти записи в таблицу перерасчетов.
Для надбавки, сумма базы, - берется из регистра бухгалтерии. Уже противоречие.
В этом случае система по понятным причинам ничего САМА не запишет в таблицу перерасчетов. В этом случае необходимо осуществлять ПРОГРАММНУЮ запись в таблицу перерасчетов. В модуле набора записей регистра бухгалтерии анализировать текущие проводки и при необходимости программно писать данные в таблицу перерасчетов.
Здесь можно посмотреть рабочий код от Гакусея, там же мы с ним обсуждали эту задачку:
http://forum.chistov.pro/index.php?topic=993.msg47196#msg47196
В этой ветки, есть запрос, не уверен что он правильно. Есть ли ветка, где разбирали примеры в самой конфигурации, а не в виде текста. Хочется посмотреть на реальные примеры. А так пока не понятно.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТЧ.СубконтоКт1 КАК Сотрудник,
| НАЧАЛОПЕРИОДА(ТЧ.Период, МЕСЯЦ) КАК Период
|ПОМЕСТИТЬ ВТ
|ИЗ
| &ТЧ КАК ТЧ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновныеНачисления.Регистратор,
| ОсновныеНачисления.Сотрудник,
| ОсновныеНачисления.ВидРасчета
|ПОМЕСТИТЬ РР
|ИЗ
| РегистрРасчета.ОсновныеНачисления КАК ОсновныеНачисления
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ
| ПО ОсновныеНачисления.Сотрудник = ВТ.Сотрудник
|ГДЕ
| ОсновныеНачисления.ВидРасчета = &ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РР.Регистратор КАК Регистратор,
| РР.Сотрудник,
| РР.ВидРасчета
|ИЗ
| РР КАК РР
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.Перерасчет1 КАК Перерасчет1
| ПО РР.Регистратор = Перерасчет1.ОбъектПерерасчета
| И РР.Сотрудник = Перерасчет1.Сотрудник
| И РР.ВидРасчета = Перерасчет1.ВидРасчета
|ГДЕ
| Перерасчет1.ОбъектПерерасчета ЕСТЬ NULL
|
|УПОРЯДОЧИТЬ ПО
| Регистратор
|ИТОГИ ПО
| Регистратор";
Запрос.УстановитьПараметр("ТЧ",ЭтотОбъект.Выгрузить());
Запрос.УстановитьПараметр("ВидРасчета",ПланыВидовРасчета.ОсновныеНачисления.БУух);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаРегистратор = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаРегистратор.Следующий() Цикл
Запись=РегистрыРасчета.ОсновныеНачисления.Перерасчеты.Перерасчет1.СоздатьНаборЗаписей();
Запись.Отбор.ОбъектПерерасчета.Значение=ВыборкаРегистратор.Регистратор;
Выборка=ВыборкаРегистратор.Выбрать();
Пока Выборка.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
стр=Запись.Добавить();
стр.ВидРасчета=Выборка.ВидРасчета;
стр.Сотрудник=Выборка.Сотрудник;
КонецЦикла;
Запись.Записать(Ложь);
КонецЦикла;