Страница 1 из 1
Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 17 июн 2013, 16:46
Semi-bit
Обнаружили такую проблемку при выборе МЦ в Накладной на отпуск в производство.
То есть, при последовательном выборе МЦ Insert'ом некоторые пропускаются. Прошу объяснить, чем могло быть вызвано такое поведение программы. Сразу предупреждаю, что триггеров у нас много на этих таблицах висит, и все кривые напрочь, так что очень надеюсь, что проблема не в них. КИСы предлагают не отображать эти проблемные МЦ, но я в данном модуле не очень хорошо разбираюсь, и просто не знаю, как это сделать.
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 17 июн 2013, 21:00
Алексей
7.12.... давно это было... а может эти МЦ были ранее отпущены другой накладной и стоит контроль по отпуску по ДО, т.е. не больше чем в ДО указано? (сами настройки не спрашивайте, не вспомню)
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 18 июн 2013, 09:28
edward_K
getifccurrentfieldname в окне выбора.
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 18 июн 2013, 10:30
Semi-bit
Алексей
Но если они уже отпущены, разве не должно быть количество по нулям?
edward_K
GETMCSOPR.BRGETMCSOPR.PICK.PICKKOL
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 18 июн 2013, 10:56
edward_K
да. в 810 уже фейс переделан и формирование выбора зависит от настройки boGetTune('Doc.MakeKol').
Мож у кого то завалялся GetMcSop.Vip от 712 - смотреть нужно событие cmMarkUnMark
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 18 июн 2013, 11:16
Semi-bit
edward_K
Однако, нашёлся
Код: Выделить всё
cmMarkUnMark :
{
if (isValid(#Pick))
delete current Pick
else
{
MakePickTable555(SpStep.KolSkl-PreviursKolSopr);
#ifdef ATL51
RedrawCurrentAndGo (GetCurrentFormat,true);
#else
if (GetNext SpStep = tsOk)
CallToNeighBours(cmPosDown,#SpStep);
#end
}
rescanpanel(#SpStep);
}
Код: Выделить всё
function PreviursKolSopr : double;
{
RunInterface('iRasNeotg',SpStep.nRec,PreviursKolSopr);
If PreviursKolSopr > SpStep.KolSkl
PreviursKolSopr := SpStep.KolSkl;
}
Procedure MakePickTable555(KOL:double);
{
Pick.PickKol := KOL;
if not isValid(tnPick)
{
Pick.wList := 555;
Pick.cRec := SpStep.NRec;
Pick.nRec := 0;
if Pick.PickKol>0
Insert Current Pick;
}
else
if Pick.PickKol > 0
Update current Pick;
else
delete current Pick;
}
Код: Выделить всё
!╔═════════════════════════════════════════════════════╗
!║ Расчет распределенного кол-ва по позиции ДО ранее ║
!║ сформированными сопроводительными док-тами ║
!╚═════════════════════════════════════════════════════╝
Interface iRasNeotg,AlwaysReturn,cacheable;
Create view
Var
c1 :comp;
D1:double;
From
SpSopr,SpStep,KatOtpED,
synonym KatOtpED KatOtpED2
Where
((
c1 == SpStep.nRec and
SpStep.nRec == SpSopr.cSpStep and
SpStep.cOtpEd == KatOtpEd.NRec and
SpSopr.cOtpEd == KatOtpEd2.NRec
))
;
parameters
c1,//spstep.nrec
D1;//распределенное кол-во
Handleevent
cmInit:
{
D1 := 0;
if ((SpStep.PrMC > 1) and not boGetTune('Doc.CtrUslAktDo'))
{
abort;
exit; //нет контроля кол.Услуги
}
if ((SpStep.PrMC = 1) and not boGetTune('Doc.MakeKol'))
{
abort;
exit; //нет контроля кол.МЦ
}
_LOOP SpSopr
D1 := D1 + SpSopr.KolOpl * if(KatOtpEd2.koef = 0, 1, KatOtpEd2.koef)
/ if(KatOtpEd.koef = 0, 1, KatOtpEd.koef);
abort;
}
end;
end.
Всем спасибо, дальше сам разберусь
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 18 июн 2013, 11:29
edward_K
Да уж - в лучших традициях медленности кода. То есть показываются то все, а в отбор идут тока те по которым есть остаток.
Можно конечно попробовать накладывать поль.фильтр по значению функции PreviursKolSopr, но для этого нужно чтобы она возвращала значение в поле.
В общем на 712 как то без шансов или написать свой фейс на подмену стандартного.
Re: Проблемы c выбором МЦ в НОП, Галактика 7.12
Добавлено: 18 июн 2013, 11:44
Semi-bit
Тему можно закрывать. Скорее всего, будем фейс писать.