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