V82.ОбщиеМодули.ПроведениеРасчетовПереопределяемый.РассчитатьЗаписиРегистраРасчета C# (CSharp) Method

РассчитатьЗаписиРегистраРасчета() public method

        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/*БудетДоначислениеПоУпрУчету И ЗаписиДоходыНДФЛ <> НеОпределено*/)
                    {
                        /*// запись набора записей доходов НДФЛ
            */
                        /*// необходимо для расчета ДоначислениеПоУправленческомуУчету
            */
                        //ЗаписиДоходыНДФЛ.Записать();
                    }
                }
                //;;
            }
        }
ПроведениеРасчетовПереопределяемый