0
Отвечен
Как массово переставить "галочки" на основную должность.
Анатолий Русин 8 лет назад
в Интеграция с Контур-Персонал
•
обновлен Гашков Николай (Эксперт) 8 лет назад •
4
Добрый день!
В ходе работы с новым клиентом возникла следующая задача:
В Контур-Персонале организация работал с 2008 года. Установили КЗ, настроили интеграцию.
В программу пришли должности за весь период работы организации.
Первая должность осталась основной.
Вопрос в следующем - как можно массово поставить галку "основная должность" на последнюю по дате ИД по 1500 сотрудникам? Чтобы не заходить в каждый ЛС?
Мы можем сделать что-то вроде такой вот таблицы разноски:
затем принять в неё всех сотрудников и самостоятельно проставить галочку напротив нужных должностей.
Весь вопрос в том, каким образом вообще можно разнести данную информацию в ЛС?
Возможно, какой-то другой вариант существует?
Сервис поддержки клиентов работает на платформе UserEcho
ProcessLs_ChangeOsnDolgn() { bool bInsertls=true;//только по выделенным ЛС bool skipArhiveLs=true; //пропустить архивные ЛС int countLs=(bInsertls)?cntnum:counttn; var CMsg=CreateObject("ProgressBar"); CMsg.Initial(0,100,1); CMsg.SetShowTime(static_cast_to_int(false)); for(int i=0;i<countLs;i++) //цикл по ЛС { if (CMsg.Msg_Proc(("Подождите немного. Идет обработка ЛС"),100.*i/countLs)==ESC ) {break;} int tnum=(bInsertls)?Porobr1(i)%sizetn:tn(i)%sizetn; if ( skipArhiveLs && IsArchLS(tnum)) continue; int RC=LSRead(tnum, 0); //читаем ЛС var CL=CreateObject("CombineList"); var tc=CreateObject("TmpCurCombine"); // Класс для временной смены а затем и восстановления текущего совместительства var it = CL.CreateIterator(); int lastComb=0; //код должности с "максимальной" датой начала var lastDPriem=KDateFromStr("01.01.1900"); for (it.SetBegin();!it.IsEnd();it.Next()) //цикл по должностям (it.CurKey() - внутр.код совместительства ) { int combine=it.CurKey(); tc.Init(combine);//инициализируем нужным совместительством var dPriem=KDateFromStr(kch_from_safe("data_rb")); if (dPriem.IsValid() && dPriem.GT(lastDPriem)) { lastComb=combine; lastDPriem= KDateFromStr(dPriem.GetStr()); } } if(lastComb && CL.GetBaseID()!=lastComb) //меняем галку { CL.SetBaseID(lastComb); //сохраняем ЛС char ls[256]; long num; polnyi_tn(num); lsname(num,ls); lswrite(ls,0); } } }USFUNCRW.zip
вместо var dPriem=KDateFrom(to_string(kch_tipS("data_r")));
должно быть наверно так
char str[25];
kch_from("data_rb",str);
var dPriem=KDateFromStr(str);
Спасибо, исправил, перевыложил