Форум по программе Контур.Зарплата.
Здесь мы отвечаем на вопросы возникающие у наших пользователей или партнеров при работе с программой или при внедрении ее в организации.
Прежде чем создать обращение, воспользуйтесь поиском. Попробуйте найти похожий топик по ключевому слову. Например "СЗВ-СТАЖ" или "6-НДФЛ".
Если Вы нашли "чужую" тему с похожим вопросом, где уже был дан ответ (есть сообщение помеченное как "Ответ"), но при этом ответ не подходит для Вашей ситуации, то не задавайте свой вопрос в комментариях к "чужой" теме. Лучше создайте новую тему со своим вопросом.
Полезные ссылки по Контур.Зарплата:
- Полный дистрибутив и Веб-обновления
- Обучающий урок
- Вебинары
- "Старый" форум отключен, архив
- Дистрибутив ПФ-Отчет+
Алименты по месяцу начисления
Здравствуйте.
На старом форуме взял скрипт, позволяющий рассчитать алименты с учётом сумм заработка по месяцу начисления (актуально для расчёта алиментов с сумм "переходящего отпуска"):
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 умеет выбирать суммы с учетом источника/совместительства, но не умеет выбирать суммы по месяцу начисления. Чем её можно заменить?
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);
Доплата до МРОТ (алгоритм 897). Как выделить РК и СН?
Блин, с этимим северными...
Вячеслав предложил хорошее решение "крутить" СН, РК сверху доплаты до МРОТ. Но, блин теперь хочют выделять СН и РК с доплаты до МРОТ = "вернулись к тем же баранам" с кучей СН.
Наверное, одно из решений в 897м алгоритме при определении суммы МРОТ с СН и РК - искать виды северных в л/с и выбирать процент С/Н из РВ. Т.е.+ в колонке доплаты до МРОТ нужно отметить виды С/Н и выбирать либо РВ только по основному источнику/объекту/итд???
Вид можно завести любой в пределах начислений, а если заводите среди удержаний, то не забудьте поставить в столбце С23 специальной ТВХ букву "Н" (Начисление). Поскольку он будет считаться после видов начислений, поставьте порядок 100 или 130. Налоги будут браться, поэтому ставим 2000.
Возможность выгрузки данных организации из ЭЛН на сайт ФСС
Здравствуйте!
Существует ли возможность выгружать ЭЛН вместе с данными, указываемыми организацией (ИНН, к примеру), на сайт ФСС
Алгоритм для премии
Добрый день,
помогите пожалуйста с алгоритмом.
Надо посчитать в/о 202(премия) = оклад*РВ/НРВ*коэф, и округлить до 2знаков после запятой, где
оклад = БЗ основного в/о(5)
РВ = РВ из основного в/о(5)
КЧ(код категории)
коэф - берется из сетки окладов и др.табл в зависимости от категории и месяца.
Пример:
Оклад=8484
РВ=31
НРВ=75.5
КЧ(код категории)=13
Коэф =2.8247
Сумма премии = 8484*31/75.5*2.8247 = 9839.83
ЛС
КЧ (kat=13)
Сетка окладов и другие таблицы (№таблицы 4)
Здравствуйте.
Алгоритм: 4
Параметры: D2=Б(внутренний_код_оклада)/Н(1); D3=К(kat,4) // Н и К - русские
В 26 столбце спецТВХ символ 1
Запись РВ и суммы в НУ в ЛС
Здравствуйте. Делаю расчет аванса.
Если делаю из списка ЛС, то РВ и сумма записываются без проблем. Если делаю из ЛС, то заполнение происходить в зависимости от того, была ли заполнена РВ.
Что нужно сделать, чтобы это исправить (заполнение при РВ = 0 из ЛС при расчете аванса)?
P.S. Использую функции PutSumm и PutTime
Доплата до МРОТ (алгоритм 897). Как отключить заполнение табеля рабочими днями?
Здравствуйте, уважаемые разработчики.
Замечательный алгоритм 897. Но... обнаружилось, что заполнение табеля рабочими днями - лишний функционал алгоритма. В некоторых организациях есть желание добавлять данный вид автоматом, не закрывать датой увольнения, разнести всем сотрудникам, включая архивных - на тот, случай, если архивные вновь устроятся на работу.
Просьба отвязать заполнение табеля - пусть табель заполняет оклад/тариф или вывести в параметры.
В шестой параметр будет добавлен флаг:
0x08 - не заполнять табель рабочими днями
оплата нерабочих оплачиваемых дней
как настроить расчет нерабочего оплачиваемого дня 24 июня, надо чтобы входили все выплаты если бы день был рабочим , но при расчете среднего заработка (отпуск, командировка...) день и заработок за этот день не входил в расчет
Расчет ЗП за Апрель 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