Форум по программе Контур.Зарплата.

Здесь мы отвечаем на вопросы возникающие у наших пользователей или партнеров при работе с программой или при внедрении ее в организации.

Прежде чем создать обращение, воспользуйтесь поиском. Попробуйте найти похожий топик по ключевому слову. Например "СЗВ-СТАЖ" или "6-НДФЛ".


Если Вы нашли "чужую" тему с похожим вопросом, где уже был дан ответ (есть сообщение помеченное как "Ответ"), но при этом ответ не подходит для Вашей ситуации, то не задавайте свой вопрос в комментариях к "чужой" теме. Лучше создайте новую тему со своим вопросом.

Полезные ссылки по Контур.Зарплата:

  1. Полный дистрибутив и Веб-обновления
  2. Обучающий урок
  3. Вебинары
  4. "Старый" форум (доступен только из сети Контура, архив
  5. Дистрибутив ПФ-Отчет+
0
Отвечен

Алименты по месяцу начисления

Игорь Шалдин 5 лет назад в Расчеты начислений и удержаний / Алгоритмы обновлен svetlanav 4 года назад 12

Здравствуйте.


На старом форуме взял скрипт, позволяющий рассчитать алименты с учётом сумм заработка по месяцу начисления (актуально для расчёта алиментов с сумм "переходящего отпуска"):


UserAlg608(&info,&r)   // алименты по по мес начисл
{
   int stolbec = 9;       //--- выборка начислений за текущий месяц
   double n2;
   toMatrLS();
   n2=CollectSumm(stolbec-1,0,mrasch, CL_MV | CL_COL | CL_NACH );                                      
   //--- выборка удержаний за текущий месяц
   double n3;
   n3 = CollectSumm(stolbec-1,0,mrasch, CL_MV | CL_COL | CL_UD);
   
   //--- выборка удержаний за прошлый месяц, если они назначены
   double n4=0;
   double k_nep;    int mes = 0;
   char M_T_1[90];                                                                          
   sprintf(M_T_1,"%i.01",atoi(data));                                                       
   double MesTek1 = static_cast_to_double(M_T_1);                                               char M_T_2[90];
   sprintf(M_T_2,"%i.%i",atoi(data),atoi(countday));
   double MesTek2 = static_cast_to_double(M_T_2);    double zz1=info.d1; if(atoi(info.d1) < atoi(MesTek1))  zz1=MesTek1;
   double zz2=info.d2; if(atoi(info.d2) > atoi(MesTek2))  zz2=MesTek2;    nepoln(zz1,zz2,MesTek1,MesTek2,k_nep,1);    double t_nu=n2-n3-n4;
   double res1 = t_nu*info.bz/100.;
   
   info.n1=res1*k_nep;    if(FL_V_ALG && uprc != NO_SCREEN)
   {
      infolist.add_record("Начисления",n2);
      infolist.add_record("Удержания",n3);
      infolist.add_record("Столбец Т/В",stolbec);
      infolist.add_record("Начисл. - Удержержано",t_nu);
      infolist.add_record("Проц. алиментов",info.bz);
      infolist.add_record("ПромежутРезультат",res1);       infolist.add_record("Дат_нач",info.d1);
      infolist.add_record("Дат_кон",info.d2);
      //infolist.add_record("Зед_1",z1);
      //infolist.add_record("Зед_2",z2);
      infolist.add_record("Неполн",k_nep);
      infolist.add_record("ДатТек1",MesTek1);
      infolist.add_record("ДатТек2",MesTek2);
      infolist.add_record("ИтоговыйРезультат",info.n1);
   }
   var simv=poiskprch(info.ikod);
   if(simv == 4)
   {
   char str[81];
   char str1[81];
      Rkv_from(GetCode(info.crow),"долг",str1,str);
      // Долг по алиментам уменьшается при переходе
      // в новый месяц на сумму, вычисленную ниже
   var r9=atof(str);
      if(r9 && r9 < info.n1)
      {
      // Долг по алиментам ведется и
      // долг по алиментам  < суммы алиментов
      char str1[80];
            sprintf(str1,"Долг по алиментам %-8.2f",r9);
            if(uprc != NO_SCREEN)
            vwriteat(scr04,windrow+1,0,str1);
            info.n1=r9;
      }
   }
   return code_Break;
}

Работает всё хорошо, но только если в ЛС один источник/совместительство. Если их несколько, в выборку попадают суммы по всем источникам/совместительствам.

Можно ли функцию CollectSumm  научить выбирать суммы только по тому источнику/совместительству, по которому заведён вид алиментов? Ну или что можно использовать вместо неё?


З.Ы. Смотрел "стандартный" скрипт алиментов: 


// алименты
   // 06.10.1999
   //--- выборка начислений за текущий месяц
   s1001simv("1","н",info.d1,info.d2,0,ST_ALIMENT,info.n1,2,0);  // 08.11.95
   //--- выборка удержаний за текущий месяц
   double n3;
   s1001simv("1","у",info.d1,info.d2,0,ST_ALIMENT,n3,2,0);
   //--- выборка удержаний за прошлый месяц, если они назначены
   double n4;
   s1001simv("2","у",info.d1,info.d2,-1,ST_ALIMENT,n4,2,0);
   var t_nu=info.n1-n3-n4;
   info.n1=info.n1-n3-n4;
   info.n1=info.n1*info.bz/100.;
   if(FL_V_ALG && uprc != NO_SCREEN)
   {
      infolist.add_record("Столбец Т/В",ST_ALIMENT+1);
      infolist.add_record("Начисл. - Удержержано",t_nu);
      infolist.add_record("Проц. алиментов",info.bz);
      infolist.add_record("Результат",info.n1);
   }
   var simv=poiskprch(info.ikod);
   if(simv == 4)
   {
   char str[256];
   char str1[256];
      Rkv_from(GetCode(info.crow),"долг",str1,str);
      // Долг по алиментам уменьшается при переходе
      // в новый месяц на сумму, вычисленную ниже
   var r9=atof(str);
      if(r9 && r9 < info.n1)
      {
      // Долг по алиментам ведется и
      // долг по алиментам  < суммы алиментов
      char str1[80];
            sprintf(str1,"Долг по алиментам %-8.2f",r9);
            if(uprc != NO_SCREEN)
            vwriteat(scr04,windrow+1,0,str1);
            info.n1=r9;
      }
   }
   return code_MDefault;
}


Тут другая беда:  функция s1001simv  умеет выбирать суммы с учетом источника/совместительства, но не умеет выбирать суммы по месяцу начисления. Чем её можно заменить?



Script
Ответ
var CurProp = GetCurPropCountLS();
...
n2=CollectSummProp(stolbec-1,0,mrasch, CL_MV | CL_COL | CL_NACH,CurProp);
...
n3 = CollectSummProp(stolbec-1,0,mrasch, CL_MV | CL_COL | CL_UD,CurProp);
0
Отвечен

Доплата до МРОТ (алгоритм 897). Как выделить РК и СН?

Блин, с этимим северными...

Вячеслав предложил хорошее решение "крутить" СН, РК сверху доплаты до МРОТ. Но, блин теперь хочют выделять СН и РК с доплаты до МРОТ = "вернулись к тем же баранам" с кучей СН.

Наверное, одно из решений в 897м алгоритме при определении суммы МРОТ с СН и РК - искать  виды северных в л/с и выбирать процент С/Н из РВ. Т.е.+ в колонке доплаты до МРОТ нужно отметить виды С/Н и выбирать либо РВ только по основному источнику/объекту/итд???

Ответ

Вид можно завести любой в пределах начислений, а если заводите среди удержаний, то не забудьте поставить в столбце С23 специальной ТВХ букву "Н" (Начисление). Поскольку он будет считаться после видов начислений, поставьте порядок 100 или 130. Налоги будут браться, поэтому ставим 2000.

0
Отвечен

Алгоритм для премии

Добрый день,

помогите пожалуйста с алгоритмом.

Надо посчитать в/о 202(премия) = оклад*РВ/НРВ*коэф, и округлить до 2знаков после запятой, где

  оклад = БЗ основного в/о(5)

  РВ = РВ из основного в/о(5)

  КЧ(код категории)

  коэф - берется из сетки окладов и др.табл в зависимости от категории и месяца.

Пример:

Оклад=8484

РВ=31

НРВ=75.5

КЧ(код категории)=13

Коэф =2.8247

Сумма премии = 8484*31/75.5*2.8247 = 9839.83


ЛС

 

КЧ (kat=13)



 

Сетка окладов и другие таблицы (таблицы 4)



Ответ
Игорь Шалдин 5 лет назад

Здравствуйте.

Алгоритм: 4

Параметры: D2=Б(внутренний_код_оклада)/Н(1); D3=К(kat,4)   // Н и К - русские

В 26 столбце спецТВХ символ 1

0
Отвечен

Запись РВ и суммы в НУ в ЛС

Здравствуйте. Делаю расчет аванса.

Если делаю из списка ЛС, то РВ и сумма записываются без проблем. Если делаю из ЛС, то заполнение происходить в зависимости от того, была ли заполнена РВ.
Что нужно сделать, чтобы это исправить (заполнение при РВ = 0 из ЛС при расчете аванса)?

P.S. Использую функции PutSumm и PutTime

0
Завершен

Доплата до МРОТ (алгоритм 897). Как отключить заполнение табеля рабочими днями?

Здравствуйте, уважаемые разработчики.


Замечательный алгоритм 897. Но... обнаружилось, что заполнение табеля рабочими днями - лишний функционал алгоритма. В некоторых организациях есть желание добавлять данный вид автоматом, не закрывать датой увольнения, разнести всем сотрудникам, включая архивных - на тот, случай, если архивные вновь устроятся на работу. 


Просьба отвязать заполнение табеля - пусть табель заполняет оклад/тариф или вывести в параметры.

Ответ

В шестой параметр будет добавлен флаг:

  • 0x08 - не заполнять табель рабочими днями




-1
На рассмотрении

оплата нерабочих оплачиваемых дней

Пользователь Елена 2 года назад в Расчеты начислений и удержаний обновлен svt 2 года назад 45

как настроить расчет нерабочего оплачиваемого дня 24 июня, надо чтобы входили все выплаты если бы день был рабочим , но при расчете среднего заработка (отпуск, командировка...) день и заработок за этот день не входил в расчет

-1
Отвечен

Расчет ЗП за Апрель 2020

Добрый день. В Апреле сотрудников переводят на дистанционную работу, в связи с этим с 4.04 меняют график с шестидневного (выходные были по понедельникам) на пятидневный. 

С 1.04 по 3.04 необходимо оплатить оклад исходя из НРВ 26  19650/26*3=2267,31

а с 4.04 по 30 необходимо оплатить                         из НРВ 22 19650/22*19=16970,45                                                             в  итоге Оклад 19237,66 а не 19650 как за полный месяц.

Как это можно реализовать в программе. 

Смена графика в КЧ не дает такого результата.



Сервис поддержки клиентов работает на платформе UserEcho