---------------------------
Ошибка
---------------------------
Дублирование уникального ключа. таблица IENTERDATA=>TEMP_DOPLATY||0F200EC4
Продолжить редактирование ?
---------------------------
Да Нет
---------------------------
Мне кажется собака зарыта в этом куске.
Код: Выделить всё
cmOk:
{
var i:word;
var checkDate: boolean;
checkDate:=true;
_loop temP_copy
{
// message(temP_copy.sum);
if getfirst raisealg where((temP_doplaty.raise==raisealg.raisestst))=tsOk
{
// message(raisealg.sum);
if getfirst raisests where((raisealg.raisestst==raisests.nrec))=tsOk
{
// message(raisests.nrec);
// if tsOk=getfirst temP_doplaty where((temP_copy.nrec==temP_doplaty.nrec))
// {
if tsOK=getfirst str_rhist where((temP_doplaty.drec==str_rhist.drec and raisests.nrec==str_rhist.craisests))// ordered by str_rhist.drec
{
// message(temP_copy.drec);
if str_rhist.rhsum<>temP_doplaty.sum and str_rhist.WRTYPEOPER<>30
{
// str_rhist.craisests:=raisests.nrec;
// str_rhist.cstaffstr:=staffnrec;
str_rhist.rhsum:=temP_doplaty.sum;
// str_rhist.crstrtype:=raisests.raisetype;
// str_rhist.drec:=cur_date();
// str_rhist.WRTYPEOPER:=32; //код операции 32- изменение доплаты CATSTRPR.WCODOPER
// str_rhist.WHATTR:=2;
update current str_rhist;
}
}
else if tsOk=getlast str_rhist where((raisests.nrec==str_rhist.craisests)) ordered by str_rhist.drec
{
dateTemp:=str_rhist.drec;
message(dateTemp);
if temP_doplaty.sum<>str_rhist.rhsum
{
clearbuffer(#str_rhist);
str_rhist.craisests:=raisests.nrec;
str_rhist.cstaffstr:=staffnrec;
str_rhist.rhsum:=temP_doplaty.sum;
str_rhist.crstrtype:=raisests.raisetype;
str_rhist.drec:=temP_doplaty.drec;
str_rhist.WRTYPEOPER:=32; //код операции 32- изменение доплаты CATSTRPR.WCODOPER
str_rhist.WHATTR:=2;
insert current str_rhist;
}
else
{
message('Невозможно выполнить действие.При изменении даты доплат не был изменён процент доплат.');
checkDate:=false;
if getfirst temP_copy where((temp_doplaty.nrec==temp_copy.nrec))=tsOk
{
// message(dateTemp);
// Updatetable();
temp_doplaty.nrec:=temp_copy.drec;
// temp_copy.drec:=dateTemp;
// update current temP_copy;
update current temP_doplaty;
rescanpanel(#temP_doplaty);
}
rescanpanel(#raisests);
// rescanpanel(#temp_doplaty);
break;
// stop;
// abort;
}
}
// }
}
raisealg.sum:=temP_doplaty.sum;
update current raisealg;
}
}
// и т.д. ----------------------------------------
