Форум по программе Контур.Зарплата.
Здесь мы отвечаем на вопросы возникающие у наших пользователей или партнеров при работе с программой или при внедрении ее в организации.
Прежде чем создать обращение, воспользуйтесь поиском. Попробуйте найти похожий топик по ключевому слову. Например "СЗВ-СТАЖ" или "6-НДФЛ".
Если Вы нашли "чужую" тему с похожим вопросом, где уже был дан ответ (есть сообщение помеченное как "Ответ"), но при этом ответ не подходит для Вашей ситуации, то не задавайте свой вопрос в комментариях к "чужой" теме. Лучше создайте новую тему со своим вопросом.
Полезные ссылки по Контур.Зарплата:
- Полный дистрибутив и Веб-обновления
- Обучающий урок
- Вебинары
- "Старый" форум (доступен только из сети Контура, архив)
- Дистрибутив ПФ-Отчет+
![](https://cdn.userecho.com/characters/1056.png?1)
Несколько состояний в табеле
Спрашивают про возможность учета в табеле несколько состояний сотрудника в день соответственно по часам. Например, часть дня работал, а другую часть был на учебе. Или учет сверхурочных, 8 часов работал и 3 часа сверхурочных. Возможно ли такое реализовать?
![](https://cdn.userecho.com/characters/1056.png?1)
Создание вида оплаты для совместительства
Почему-то не получается создать начисление для совместительства.
Для смены совместительства использую TmpCurCombine, создаю с помощью
otkrsnu. Начисление создаётся, но для основного места работы.
![](/s/cache/35/e4/35e43d93bbd97d8f6d07479c3c6a6d57.png)
Для открытия строки недостаточно одного совместительства. В общем случае для строки могут задаваться источники, объекты... otrksnu смотрит на "свойство" установленное в CMN_SRC_C_WORK
//AmbaMessageBox("982 = " + last_day_982.GetStr(),"",MB_OK|MB_ICONINFORMATION,0); //AmbaMessageBox("988 = " + last_day_988.GetStr(),"",MB_OK|MB_ICONINFORMATION,0); var Prop = CreateObject("APropBE"); Prop.SetCombine(comb); var ts1 = CreateObject("TempCommonSrc"); ts1.TempCommonSrcInitial(CMN_SRC_C_WORK); SetCommonProp(CMN_SRC_C_WORK,Prop); var ts2 = CreateObject("TempCommonSrc"); ts1.TempCommonSrcInitial(CMN_SRC_MAIN); SetCommonProp(CMN_SRC_MAIN,Prop); var tc=CreateObject("TmpCurCombine"); // Класс для временной смены, а затем и восстановления текущей должности tc.Init(comb);//инициализируем
![](https://cdn.userecho.com/characters/1040.png?1)
Интеграция с Контур-Персоналом. Как восстановить обработанное письмо?
Добрый день!
При работе с клиентов возникла следующая ситуация:
Расчётчик не видит по ЛС приказа на увольнение сотрудника и выплату компенсации за неиспользованный отпуск. С помощью продемонстрированного вами ранее механизма фильтрации мы с расчётчикоом нашли данный приказ в "Обработанных письмах".
Очевидно, расчётчик по ошибке нажал F3 при обработке приказа. Такая ситуация возникла по нескольким ЛС - ошибочно помечены, как обработанные, приказы на отпуска и компенсации.
Сейчас вижу 2 варианта решения проблемы:
1. Рассчитать вручную.
2. Перепровести приказ в КП, чтобы пришло ещё одно письмо на синхронизацию.
Подскажите, пожалуйста, есть ли возможность вытащить письмо из "обработанных" обратно во "входящие" и обработать ещё раз?
Это позволило бы сильно сократить действия, которые необходимо выполнить пользователю для исправления своей ошибки.
![](/s/cache/c6/55/c655e6df5559aef5af7fb3037897036b.png)
Приказ удалить невозможно. По F3 приказ помечается как обработанный. Нажмите F9 и включите отображение всех приказов включая обработанные, галку что приказ обработан можно снимать двойным кликом мыши.
![](https://cdn.userecho.com/characters/1056.png?1)
поиск вида оплаты в лицевом счете
Здравствуйте. Есть необходимость проверить существование некоторых видов оплат в конкретном лицевом счете, включая данные по датах начала и окончания действия.
Есть ли функция, выполняющая такой поиск? Или хотя бы как можно перечислить все виды оплат, получить данные по датах начала и окончания?
Спасибо.
![](https://cdn.userecho.com/characters/1043.png?1)
Пример функции:
TryFindCodeValidOnDate(comb,extCode,kDate) { var Prob = CreateObject("APropBE"); Prob.Init(CLL_TOTAL_SRC,CLL_TOTAL_SUBJECT,CLL_TOTAL_PODR,comb); //инициализируем APropBE вн.кодом совместительства int rowkod[ROWMAX];//массив с номерами строк int cntrow=poiskosnkodProp(Extern_To_Intern(extCode),rowkod,0,Prob);//получаем список строк с кодом==kod for (int row=0; row<cntrow; row++) { double ikod=GetCode(rowkod[row]); var dbRow=KDateFromD(GetBegDate(rowkod[row])); var deRow=KDateFromD(GetEndDate(rowkod[row])); if (dbRow.IsValid() && dbRow.GT(kDate)) //вид еще не открыт continue; if (deRow.IsValid() && deRow.LT(kDate)) //вид закрыт continue; return row; } return -1; }
Использовать так:
var d=KDateFromInt_WithDay(1,mrasch); if (TryFindCodeValidOnDate(comb,extCode,d)==-1) //вид на 1 первое число расчетного месяца не найден.. { //код для открытия вида }
![](https://cdn.userecho.com/characters/65.png?1)
Шифр затрат в расчетном листе
Здравствуйте.
Есть необходимость вывести часть шифра затрат в расчетке у конкретных видов начислений. Подскажите, пожалуйста, как это сделать?
форма check102
Спасибо.
![](https://cdn.userecho.com/characters/1043.png?1)
Есть переменная InternCodE, в которой находится внутренний точный код вида печатаемой строки.
Через GetShifrZatrRow(double IntCode) можно получить шифр затрат...
Добавить печать значения ШЗ можно например в comexcel.S в функции StringExcel(Part)
Например:
sprintf(cell,"S%d",NumStr); tWriteStringToCell(cell,OemToAnsi(ts1)); sprintf(cell,"T%d",NumStr); tWriteStringToCell(cell,OemToAnsi(arg)); }
Заменяем на
sprintf(cell,"S%d",NumStr); tWriteStringToCell(cell,OemToAnsi(ts1)); sprintf(cell,"T%d",NumStr); tWriteStringToCell(cell,OemToAnsi(arg)); if (kod==305) //ШЗ печатаем только для 305 вида { sprintf(cell,"U%d",NumStr); tWriteStringToCell(cell,OemToAnsi(GetShifrZatrRow(InternCodE))); } }
![](https://cdn.userecho.com/characters/65.png?1)
Функция выборки рабочего по нормативному календарю
Подскажите, пожалуйста, как выбрать норму рабочего времени в днях/в часах по нормативному календарю за запрашиваемый период?
![](/s/cache/35/e4/35e43d93bbd97d8f6d07479c3c6a6d57.png)
Такая функция поможет:
UsrGetNormPeriod(what,&D1,&D2,numcalend) { int am1 = KDateFromStr(D1).GetAbs(); int am2 = KDateFromStr(D2).GetAbs(); int tmrasch = mrasch; int tmp = nkalend; if ( nkalend!=numcalend && numcalend>0 ) rwnorma(numcalend,0); double Total = 0.; for (int am=am1; am<=am2; ++am ) { mrasch=am; s118(); Total += norm(what); } mrasch=tmrasch; if ( nkalend!=tmp ) { rwnorma(tmp,0); s118(); } return Total; }
Пример вызова:
return UsrGetNormPeriod(1,"01.01.2018","31.12.2018",2);
![](https://cdn.userecho.com/characters/65.png?1)
Расчетные листки в Excel
Добрый день.
Выводим расчетки в Excel.
Спасибо за возможность добавить количество строк на странице.
Но еще есть пожелания.
Имеется ЛС без начислений (пустой) и ЛС с начислениями. Выводим на них расчетку в Excel с настройкой "Не печатать квитки по которым нет сумм" 1.
Если пустой ЛС стоит первым в списке ЛС, то при печати получаем просто пустое окно просмотра печатной формы, или ошибку ofiscomexcel.s строка 80
или дублирование расчетки непустого лс в Экселе %) Последний раз вывела 4х раза...
А если пустой ЛС стоит последним, то в Excel не выводит вообще ничего
Поправьте, пожалуйста
п.с.
Пока игрался с данной настройкой (1/0) и чередованием пустойЛС/ ЛС с суммами и наоборот, ЛС с суммами то 2 раза выводится на 1м листе, то 3 раза, то как положено, 1 раз %)
![](/s/cache/35/e4/35e43d93bbd97d8f6d07479c3c6a6d57.png)
там сложность в том, что "квиток" формируется на всех в одной книге...
А если хотим отправить на почту - надо формировать квитки с разбивкой по сотрудникам ( каждый сотрудник в отдельной книге)
Ну т.е. сделать "быстро" не получится.
Немного "отойду" от отчетности и посмотрю..
![](https://cdn.userecho.com/characters/65.png?1)
Доплата до МРОТ (алгоритм 897). Как отключить заполнение табеля рабочими днями?
Здравствуйте, уважаемые разработчики.
Замечательный алгоритм 897. Но... обнаружилось, что заполнение табеля рабочими днями - лишний функционал алгоритма. В некоторых организациях есть желание добавлять данный вид автоматом, не закрывать датой увольнения, разнести всем сотрудникам, включая архивных - на тот, случай, если архивные вновь устроятся на работу.
Просьба отвязать заполнение табеля - пусть табель заполняет оклад/тариф или вывести в параметры.
![](https://cdn.userecho.com/characters/1043.png?1)
В шестой параметр будет добавлен флаг:
0x08 - не заполнять табель рабочими днями
![](https://cdn.userecho.com/characters/1040.png?1)
Просмотр действий пользователей. Записывается информация не по всем пользователям.
Добрый день! Клиент обратилась с вопросом.
В программе включено логирование действий пользователей. За день в программе работало 6 расчётчиков, но при просмотре действий видна информация только по двоим. Для каждого расчётчика настроено отдельное рабочее место через Admin.Bat
Подскажите, пожалуйста, из-за чего может возникать такая ошибка, и как включить логирование по всем пользователям?
![](/s/cache/35/e4/35e43d93bbd97d8f6d07479c3c6a6d57.png)
у всех расчетчиков нужно сделать ресурс T_SYSTEM общим
![](https://cdn.userecho.com/characters/65.png?1)
Смена КПП в сформированном отчете 2НДФЛ
Скажите, можно сменить массово КПП в сформированном отчете (поменяли КПП у филиала в карточке предприятия после формирования отчета) в таблице по Альт+Цтрл+Шифт+Вин+ЛКМ без неприятных последствий?
Провели работу по минусам, а оказалось, КПП поменять успели, поэтому переформировывать не очень хочется. Обновить ЛС тоже нельзя - люди ходют по филиалам.
![](/s/cache/35/e4/35e43d93bbd97d8f6d07479c3c6a6d57.png)
В 2-НДФЛ можно КПП поменять в столбце, последствий не будет. Достаточно потом зайти в отчет и выйти с сохранением (чтобы переформировались файлы). В 6-НДФЛ такая замена не пройдет.
Сервис поддержки клиентов работает на платформе UserEcho