Форум по программе Контур.Зарплата.
Здесь мы отвечаем на вопросы возникающие у наших пользователей или партнеров при работе с программой или при внедрении ее в организации.
Прежде чем создать обращение, воспользуйтесь поиском. Попробуйте найти похожий топик по ключевому слову. Например "СЗВ-СТАЖ" или "6-НДФЛ".
Если Вы нашли "чужую" тему с похожим вопросом, где уже был дан ответ (есть сообщение помеченное как "Ответ"), но при этом ответ не подходит для Вашей ситуации, то не задавайте свой вопрос в комментариях к "чужой" теме. Лучше создайте новую тему со своим вопросом.
Полезные ссылки по Контур.Зарплата:

Расчет НДФЛ: 305 вид не учитывает суммы налога по 505 виду
Добрый день. Справочники - Настройка налога на доходы физических лиц - НДФЛ 01.2018 - в столбце Доп у вида 305 и 505 стоит "Н". В ЛС расчет 505 правильный, а 305 рассчитывает без учета сумм 505. Какие ещё настройки посмотреть? нужен расчет 305 с учётом рассчитанного 505. Спасибо.

Добрый день!
- Проверьте что у 305 в 18,20,21,22 столбце Спец.ТВХ стоят *
- Порядок расчета (Прд) у 305 должен быть больше чем у 505
- В параметрах алгоритма 305 НЕ должно стоять "1,*,1"
Если все условия выполнены - добавьте к вопросу сохраненку

Проблема с алгоритмом расчета аванса, переопределенным через пользовательский скрипт
Здравствуйте. С вашей помощью написал программу расчета аванса, но то ли плохо потестировал, то ли одно из двух...
Когда одно человека считаем, то всё хорошо. Когда нескольких, то почему то записывает только одного. Прошу помочь, а то самому точно не осилить.
Полный код в приложении.USAVANS.zip

травматизм не начислился
ZPL_zplinfo_net(20180328_080749).cabВ ЛС несколько должностей. Программа все взносы начислила, кроме травматизма 554 вида.

554 вид может использоваться только для расчета взносов по совместительству, у Вас он считается только по Осн, для взносов по всем совместительствам нужно использовать 'итоговые' виды (354) но в вашей настройке такой отсутствует. Если старый 354 вид не используется то нужно его удалить и перенести настройку вида из чистой поставки (в поставке в таблице входимости отметить вид и передать в файл по Alt+F9, затем у себя принять по Alt+F10). Либо можно настроить 554 вид чтобы считался по всем совместительствам - в специальной таблице входимости поставить * в столбце C22

Расчету доплаты до МРОТ при не полностью отработанном месяце
ЛС отработал 112 часов из 159 часов. Был на б/л. Мы начислили б/л, затем з/п. Так вот, минималка неправильно доначисляет. Вид расчитывает за 112 часов.

Неверный перерасчет у вида
ZPL_zplinfo_net(20180321_144327).cabУ нас ещё проблемные виды по настройкам.
А ещё не по теме, возможно посмотреть у этого ЛС при расчёте б/л автоматически не перерасчитывается заработная плата за предыдущий месяц

171-ый вид. 4-ый столбец специальной таблицы входимости. Стоит 2 "Не пересчитывать рабочее время если оно уже было заполнено". Поэтому и не пересчитывается.

Выборка размера северной надбавки из РВ видов НУ
Поправьте, пожалуйста, скрипт. В колонке 33 символом 3 отмечены виды СН. Как подсуммировать РВ по этим видам по основному подразделению, источнику, совместительству и без учета пересчетных строк.
Спасибо.
UserDefineSev(month, d1, d2)
{
int stolbec = 33;
double n2=0;
var Prop = CreateObject("APropBE");
Prop.Init(GetGeneralSrcLS(),GetGeneralSubjectLS(),GetGeneralPodrLS(),GetGeneralCombineLS()); //Основной источник
var CurProp = GetCurPropCountLS(); // По должностям
char buf[256];
char func[256];
sprintf(func,"R_Col_T(3,'н',%d,0,0,Prop)%s",stolbec);
CallFuncReceive(func,buf,250,2);
n2 = atof(buf)/100;
return n2;
}

Попробуйте так:
UserGetRvColProp(col,sim, prop)
{
int Flags=CL_SOURCE|CL_MV;//выборка по виду по месяцу начисления
double rv=0.;
//цикл по видам ТВХ
for(int pos=0;pos<cntplus;pos++)
{
char cur_sim=Sim_For_Position(pos,col-1);
if ( cur_sim!=sim)
continue;
rv+=CashSummProp(0,kodnu1[pos],mrasch,mrasch,42,Flags,prop);
}
return rv;
}
Использовать так:
var Prop = CreateObject("APropBE");
Prop.Init(GetGeneralSrcLS(),GetGeneralSubjectLS(),GetGeneralPodrLS(),GetGeneralCombineLS());
return UserGetRvColProp(25,'3', Prop);

Параметры алгоритма "Доплата до МРОТ" (алгоритм 897)
Здравствуйте.
Напомните, пожалуйста, параметры алгоритма 897 ("старый" форум, к сожалению, недоступен).

Пилотный проект ФСС. Как настроить расчёт больничного, чтобы считались только первые 3 дня.
Добрый день!
Потенциальный клиент задал вопрос - каким образом в КЗ реализована работа с больничным для организаций, работающих по пилотному проекту ФСС.
Требуется выплачивать сотрудникам только первые 3 дня больничного листа за счёт предприятия, а остальные расчёты производит ФСС.
Подскажите, пожалуйста, каким образом включить данный режим в программе?

https://kz.skbkontur.ru/KZ_UNPACKED/KZ_PILOT_BETA/PilotFSS.doc
Основных проблем сейчас 2:
1) В реестрах у нас только обычные больничные передаются
2) ЭЛН еще не умеем использовать для реестров.

Настройка НДФЛ нерезидента
Добрый день! Вопрос по настройке налога для нерезидента. В настройке Налога (алг 207) коды доходов видов, вычеты и признак учета должны совпадать с настройками этих видов в алг.205? Номер таблицы в налоге на нерезидента 3.
Сделала настройку по 3 варианту при смене статуса( справка из помощи), что еще надо сделать?

Алименты по месяцу начисления
Здравствуйте.
На старом форуме взял скрипт, позволяющий рассчитать алименты с учётом сумм заработка по месяцу начисления (актуально для расчёта алиментов с сумм "переходящего отпуска"):
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);
Сервис поддержки клиентов работает на платформе UserEcho