//    объединение строк в ЛС  при нажатии F5
//                                                
//    вызов прописан в startup
//      

DopUserActionsBeforeMakeBalance(reg, &arSrc, &ar)
{

   char Cod[9];                      //___________________подгот переменных для диалога

   //___________________диалог
   if (ESC==Panel_Zapros(" Объединение строк одного вида НУ ","",
                        " Введите код вида НУ ",Cod, 10)  ) return ESC;
                                                                  
   FreeSpaceString(Cod,3,"");   int cod = atoi(Cod);      //___________________обраб переменных после диалога


  var  lsChanged =  false;
  int   combine    =  GetGeneralCombineLS();
  var  curProp    =  CreateObject("APropBE");
  curProp.SetCombine(combine);

  if( MergeNu(curProp, cod, mrasch) )  lsChanged=true;        // Объединяем дубликаты

//   return ESC;
}


MergeNu(prop, nuList, month)
{
  var lsChanged=false;
  var arr;

  int cod_int = Extern_To_Intern(nuList);                    //  int cntNu=ListNUToSafeArray(nuList, ',', arr);
    //   if (ESC==Panel_Zapros(" Получаем внутр код вида НУ ","",   " Внутр код вида НУ ",cod_int, 10)  ) return ESC;

    int rowkod[ROWMAX];                                              // массив с номерами строк
    int cntrow = poiskosnkodProp(cod_int, rowkod, 0, prop);          // получаем список строк с кодом==kod
		
    FiltrRowkod(rowkod, cntrow, month, 1);                            // отфильтровываем  (убираем?)  из массива недействующие 

    //if(cntrow<2)   continue;		
    if(MergeRows(rowkod, cntrow))   lsChanged=true;

  return lsChanged;
}


MergeRows(rowkod, cntrow)
{
  var lsChanged=false;
  double rowCodeTarget=GetCode(rowkod[0]);
  double rowCodeSources[cntrow];

  // сначала получим все коды видов, а потом уже будем объединять (после объединения строки сдвигаются !!!)
  for(int i=1; i<cntrow;i++)   rowCodeSources[i]=GetCode(rowkod[i]);

  for(int i=1; i<cntrow; i++)
  {
   if(NetDialogs().GetNuHelper().TryMergeNu(rowCodeSources[i], rowCodeTarget))
    {
     string s="tn:"+to_string(kch_from_int("tn"))+" перекодировали "+to_string(rowCodeSources[i])+" -> "+to_string(rowCodeTarget);
     //NetUserClasses().toLog_error(s);
     lsChanged=true;
    }
  }


  return lsChanged;
}

