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