public void ПереРассчитатьЗаписиРегистраРасчета(/* ИмяРегистра,
НаборЗаписейРегистра,
Физлица = Неопределено,
ЗаписиДоходыНДФЛ = Неопределено,
НаборЗаписейРасчетСреднего = Неопределено,
ГоловнаяОрганизация = Неопределено,
ОбособленноеПодразделение = Неопределено,
ТабличнаяЧастьДокумента = Неопределено,
ОднократныйРасчетСреднего = Ложь*/)
{
if(true/*НаборЗаписейРегистра.Количество() = 0*/)
{
}
/*// здесь предполагаем, что в наборе записей не может быть записей с разными периодами регистрации
*/
//ПериодРегистрации = НаборЗаписейРегистра[0].ПериодРегистрации;
//Регистратор = НаборЗаписейРегистра.Отбор.Регистратор.Значение;
//ИмяПВР = Метаданные.РегистрыРасчета[ИмяРегистра].ПланВидовРасчета.Имя;
//СчитатьСреднийЗаработок = Истина;
/*// Получим максимальное число показателей
*/
/*ЗапросНаКоличествоПоказателей = Новый Запрос(
"ВЫБРАТЬ
| МАКСИМУМ(Показатели.НомерСтроки) КАК КолВоПоказателей
|ИЗ
| ПланВидовРасчета."+ИмяПВР+".Показатели КАК Показатели");*/
//ВыборкаКоличестваПоказателей = ЗапросНаКоличествоПоказателей.Выполнить().Выбрать();
//ВыборкаКоличестваПоказателей.Следующий();
//КоличествоПоказателей = ВыборкаКоличестваПоказателей.КолВоПоказателей;
if(true/*КоличествоПоказателей = Null*/)
{
//КоличествоПоказателей = 0;
}
//Запрос = Новый Запрос;
//Запрос.УстановитьПараметр("парамРегистратор", Регистратор);
//Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
/*// таблица ФизлицаДляПерерасчета
*/
/*// Список физлиц по которым необходимо выполнить перерасчет
*/
/*// Поля:
*/
/*// ФизЛицо
*/
if(true/*Физлица = Неопределено*/)
{
/*// Описание:
*/
/*// Получает список неповторяющихся физлиц по которым есть записи
*/
/*// перерасчета в одной из таблиц перерасчета - по основным или дополнительным начислениям
*/
/*//
*/
/*ФизлицаДляПерерасчетаТекст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Перерасчет.ФизЛицо КАК Физлицо
|ПОМЕСТИТЬ ВТФизлица
|ИЗ
| (ВЫБРАТЬ
| Перерасчет.ФизЛицо КАК ФизЛицо
| ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ПерерасчетОсновныхНачислений КАК Перерасчет
| ГДЕ
| Перерасчет.ОбъектПерерасчета = &парамРегистратор
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Перерасчет.ФизЛицо
| ИЗ
| РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций.ПерерасчетДополнительныхНачислений КАК Перерасчет
| ГДЕ
| Перерасчет.ОбъектПерерасчета = &парамРегистратор) КАК Перерасчет
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо";*/
}
//Запрос.Текст = ФизлицаДляПерерасчетаТекст;
//Запрос.Выполнить();
/*// соответствие категории начисления и массива сособов расчета
*/
/*// для записей, которые будут перерассчитываться
*/
/*Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ";*/
/*Запрос.Текст = Запрос.Текст
+ ?(ИмяПВР = "ОсновныеНачисленияОрганизаций","
| ВидРасчета.ПериодДействияБазовый КАК ПериодДействияБазовый,
| ВидРасчета.ЗачетНормыВремени КАК ЗачетНормыВремени,
| ВидРасчета.ЗачетОтработанногоВремени КАК ЗачетОтработанногоВремени,","")
+ ?(ИмяПВР = "ДополнительныеНачисленияОрганизаций",
"
| ВЫБОР КОГДА КодыДоходаСВычетами.КодДохода ЕСТЬ NULL ТОГДА Ложь ИНАЧЕ Истина КОНЕЦ Как РасчетВычетов,","")
+ "
| "+ИмяРегистра+".ВидРасчета.КатегорияРасчета Как КатегорияРасчета,
| "+ИмяРегистра+".ВидРасчета.СпособРасчета Как СпособРасчета
|ИЗ
| РегистрРасчета." + ИмяРегистра + " Как "+ ИмяРегистра + "
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТФизлица Как ФизлицаДляПерерасчета
| ПО ФизлицаДляПерерасчета.ФизЛицо = "+ИмяРегистра+".ФизЛицо"
+ ?(ИмяПВР = "ДополнительныеНачисленияОрганизаций",
"
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ КодДохода Из РегистрСведений.НДФЛВычетыПоДоходам) Как КодыДоходаСВычетами
| ПО "+ИмяРегистра+".ВидРасчета.КодДоходаНДФЛ = КодыДоходаСВычетами.КодДохода","")
+ ?(КоличествоПоказателей > 0,
"
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета."+ИмяПВР+".Показатели КАК ТЧПоказатели
| ПО "+ИмяРегистра+".ВидРасчета = ТЧПоказатели.Ссылка","")
+ "
|ГДЕ Регистратор = &парамРегистратор
|УПОРЯДОЧИТЬ ПО
| "+ИмяРегистра+".ВидРасчета.КатегорияРасчета.Код
|ИТОГИ ПО "+ИмяРегистра+".ВидРасчета.КатегорияРасчета";*/
//ВыборкаКатегорий = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
/*// соответствие категорий начислений и массива способов расчета
*/
//КатегорииСпособы = Новый Соответствие;
while(true/*ВыборкаКатегорий.Следующий()*/)
{
/*// Получим структуру необходимых данных для расчетов текущей категории
*/
//МассивСпособовРасчета = Новый Массив;
/*// Массив способов расчета текущий категории
*/
//ТаблицаПоказателей = Новый ТаблицаЗначений;
/*// Массив видов показателей схем мотивации
*/
//ТаблицаПоказателей.Колонки.Добавить("Показатель");
//ТаблицаПоказателей.Колонки.Добавить("ВидСтажа");
//ТаблицаПоказателей.Колонки.Добавить("ВидСтажаКод");
//НормаВремени = Ложь;
/*// Признак необходимости получения нормы времени для видов расчета
*/
//ОтработаноВремени = Ложь;
/*// Признак необходимости получения отработанного времени для видов расчета
*/
//РасчетВычетов = Ложь;
/*// Признак необходимости расчета вычетов к доходам
*/
//НеобходимБазовыйПериод = Ложь;
/*// Признак необходимости базового периода
*/
//ВложеннаяВыборка = ВыборкаКатегорий.Выбрать();
while(true/*ВложеннаяВыборка.Следующий()*/)
{
//МассивСпособовРасчета.Добавить(ВложеннаяВыборка.СпособРасчета);
if(true/*ИмяПВР = "ОсновныеНачисленияОрганизаций"*/)
{
//НормаВремени = НормаВремени ИЛИ ВложеннаяВыборка.ЗачетНормыВремени;
//ОтработаноВремени = ОтработаноВремени ИЛИ ВложеннаяВыборка.ЗачетОтработанногоВремени ИЛИ ВложеннаяВыборка.ЗачетНормыВремени;
//НеобходимБазовыйПериод = НеобходимБазовыйПериод ИЛИ (НЕ ВложеннаяВыборка.ПериодДействияБазовый);
}
if(true/*ИмяПВР = "ДополнительныеНачисленияОрганизаций"*/)
{
//РасчетВычетов = РасчетВычетов ИЛИ ВложеннаяВыборка.РасчетВычетов;
}
}
/*;
НеобходимыеДанные = ПолучитьСтруктуруНеобходимыхДанных(МассивСпособовРасчета, ТаблицаПоказателей);*/
//НеобходимыеДанные.НормаВремени = НеобходимыеДанные.НормаВремени ИЛИ НормаВремени ИЛИ (НеобходимыеДанные.База И (ИмяПВР = "ОсновныеНачисленияОрганизаций" Или ИмяПВР = "УправленческиеНачисления"));
//НеобходимыеДанные.ОтработаноВремени = НеобходимыеДанные.ОтработаноВремени ИЛИ ОтработаноВремени ИЛИ (НеобходимыеДанные.База И (ИмяПВР = "ОсновныеНачисленияОрганизаций" Или ИмяПВР = "УправленческиеНачисления"));
//НеобходимыеДанные.ВычетыКДоходамНДФЛ = РасчетВычетов;
if(true/*НеобходимыеДанные.База*/)
{
//НеобходимыеДанные.НормаВремениЗаМесяц = НеобходимыеДанные.НормаВремениЗаМесяц ИЛИ НеобходимБазовыйПериод;
}
if(true/*ИмяРегистра = "ОсновныеНачисленияОрганизаций" Или ИмяРегистра = "УправленческиеНачисления"*/)
{
//НеобходимыеДанные.НормаВремениЗаМесяц = Истина;
/*// для предотвращения ложных сообщений об отсутствии графика
*/
}
if(true/*Не НеобходимыеДанные.НакопленныеДанныеПоДокументуОснованию*/)
{
//НеобходимыеДанные.НакопленныеДанныеПоДокументуОснованию = ИмяРегистра = "УдержанияРаботниковОрганизаций" И (НеобходимыеДанные.База Или НеобходимыеДанные.ДоходыОблагаемыеЕСН);
}
/*// если нужны данные для расчета среднего заработка
*/
if(true/*СчитатьСреднийЗаработок И (НеобходимыеДанные.СреднийЗаработок ИЛИ НеобходимыеДанные.СреднийЗаработокОтпуска) И (НаборЗаписейРасчетСреднего <> Неопределено)*/)
{
//СформироватьИЗаписатьДанныеРасчетаСреднего(ИмяРегистра, Регистратор, НаборЗаписейРасчетСреднего);
if(true/*ОднократныйРасчетСреднего*/)
{
//СчитатьСреднийЗаработок = Ложь;
}
}
//ИсходныеДанные = ПолучитьДанныеДляРасчета(ИмяРегистра, ВыборкаКатегорий.КатегорияРасчета, НеобходимыеДанные, Регистратор, ГоловнаяОрганизация, ПериодРегистрации, Истина, Физлица);
/*// Курс результата передаем равным 1, т.к. считаем, что перерасчет доступен только для реглучета
*/
//РассчитатьЗаписиНабора(ИсходныеДанные, НаборЗаписейРегистра, НеобходимыеДанные, ЗаписиДоходыНДФЛ, ГоловнаяОрганизация, ОбособленноеПодразделение, ТабличнаяЧастьДокумента);
/*// записываем набор после расчета каждой очередной категории
*/
//НаборЗаписейРегистра.Записать(Истина, Истина);
}
//;;
}