Страница 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.     
Всем спасибо, дальше сам разберусь :smile:

Re: Проблемы c выбором МЦ в НОП, Галактика 7.12

Добавлено: 18 июн 2013, 11:29
edward_K
Да уж - в лучших традициях медленности кода. То есть показываются то все, а в отбор идут тока те по которым есть остаток.
Можно конечно попробовать накладывать поль.фильтр по значению функции PreviursKolSopr, но для этого нужно чтобы она возвращала значение в поле.
В общем на 712 как то без шансов или написать свой фейс на подмену стандартного.

Re: Проблемы c выбором МЦ в НОП, Галактика 7.12

Добавлено: 18 июн 2013, 11:44
Semi-bit
Тему можно закрывать. Скорее всего, будем фейс писать.