private int New2D(byte[] b, int nLen) { int nRet = AppC.RC_OK; if (IsGood2D(b, nLen)) { xSer2D.AddNew(b, nLen, xPars.b2DFull); if (xPars.b2DFull == false) { xSer2D.State = READ2D_STATE.R_FULL_SER; } switch (xSer2D.State) { case READ2D_STATE.R_SAME_DOC: case READ2D_STATE.R_BAD_KEYS: xSer2D = new Ser2DSym(xNSI); break; case READ2D_STATE.R_FULL_SER: if (xSer2D.bRewrite == false) { // создаем новый xNSI.AddDocRec(xSer2D.xD, dgDoc); StatAllDoc(); } else { xNSI.UpdateDocRec(xSer2D.drRew, xSer2D.xD); } sLastDoc = xSer2D.xD.xDocP.sNomDoc; xSer2D = new Ser2DSym(xNSI); break; } } else { nRet = AppC.RC_BADID; } return(nRet); }