#define _SAY_ENTER CHR(17)+CHR(217)


// Контроль CRC кодов
#DEFINE NO_ERROR ON

// Принимает имя файла
// Возврашает RDD - которым можно открыть файл
#ifdef AXS
  #TRANSLATE _CURRENT_RDD( <x> )  => IF( !AX_Loaded( AxGetDrive( <x> ) ).AND.!AX_Loaded( <x> ), 'SIXCDX', 'DBFCDXAX')
#else
  #TRANSLATE _CURRENT_RDD( <x> )  => 'SIXCDX'
#endif

// Для совместимости с CODEBASE и APOLLON
//#TRANSLATE DELETE() => DELETED()

// Определяет имя файла CONFIG.INI
#TRANSLATE _CONFIG_INI(           ) => NameConfigIni( '' )
#TRANSLATE _CONFIG_INI(  <cPath>  ) => NameConfigIni(  <cPath>  )


#DEFINE COL_MEN     IF(INST_COLOR,'b/w*,w+/b,,,w/w*','n/w*,w/n,,,w/w*')
#DEFINE COL_BROWSE  IF(INST_COLOR,'w+/b,n/w,,,w+/b','w+/n,n/w,,,w+/n')
#DEFINE COL_REFER   IF(INST_COLOR,'n/w,w+/n','n/w,w+/n')
#DEFINE COL_REFERD  IF(INST_COLOR,'b/w,w+/n','n/w,w+/n')
//#ifndef __HARBOUR__ gt_wvt
#DEFINE COL_REF1    IF(INST_COLOR,'w+/n,n/w,,,w+/n','n/w,w+/n,,,n/w')
#DEFINE COL_REF2    IF(INST_COLOR,'w+/n*,n/w','w/n,n/w')
//#else
//#DEFINE COL_REF1    IF(INST_COLOR,'w+/rb*,n/w,,,w+/n','n/w,w+/n,,,n/w')
//#DEFINE COL_REF2    IF(INST_COLOR,'w+/bg*,n/w','w/n,n/w')
//#endif
#DEFINE COL_INPUT   IF(INST_COLOR,'n/bg,w+/n','n/w,w+/n')
#DEFINE COL_INPUTF  IF(INST_COLOR,'w+/bg','n/w')
#DEFINE COL_INPUTA  IF(INST_COLOR,'b/w','b/w')
#DEFINE COL_INPUTA1 IF(INST_COLOR,'w+/w','w+/w')
#DEFINE COL_INPUTB  IF(INST_COLOR,'n/bg,n/bg','n/w,n/w')
#DEFINE COL_INPUTD  IF(INST_COLOR,'b/bg','w/n')
#DEFINE COL_INPUTR  IF(INST_COLOR,'g+/bg,w+/b,,,n/bg','n/w,w+/n,,,w/n')
#DEFINE COL_GET     IF(INST_COLOR,'n/w,gr+/n,,,n/w','n/w,w+/n,,,n/w')
#DEFINE COL_HEADS   IF(INST_COLOR,'gr+/b,w+/n','w+/n,n/w')
#DEFINE COL_HEADR   IF(INST_COLOR,'gr+/b*','n/w')
#DEFINE COL_HEADDOP IF(INST_COLOR,'g+/b','n/w')

#DEFINE COL_ERROR      IF(INST_COLOR, 'GR+/R','n/w') //Ошибки
#DEFINE COL_WAIT       IF(INST_COLOR, 'W+/RB','n/w')  //Cообщения
#DEFINE COL_YES_OR_NO  IF(INST_COLOR, 'W+/B*','n/w') //Вопросы
#DEFINE COL_YES_MENU   IF(INST_COLOR, 'N/BG,n/BG*,R/BG,R/BG*','N/W*,W/N,W/W*,W+/N') //Меню с сообщением
#DEFINE COL_HELP_BLK   IF(INST_COLOR, 'N/G,R/G','n/w,n/W*') // HELP блокнота

#DEFINE _GLOB_SET_DEF  { ' ', '', '', .T.,'000',;          //  5
                         .F., ' ', ,.T.,.F.,;              // 10
                         '*', 17, CTOD(''), CTOD(''), .T.,;// 15
                         .F.,.T., .F., .F., '',;           // 20
                         0, '', SPACE(6),'4', .F.,;        // 25
                         CTOD(''),'',{},{13},.t.,;         // 30
                         10,.f.,CTOD(''),.f.,.t.,;         // 35
                         .T.,.F.,"0000000000",.t. }        // 40, 39 - _DS_PRESENT

                       // Начальное значение для Global_SET


#DEFINE _USER_CODE  Global_Set[2]  // Код оператора     ( 6 символов  )
#DEFINE _USER_NAME  Global_Set[3]  // Фамилия оператора ( 25 символов )
#DEFINE _REC_YES    Global_Set[4]  // Запись и добавление разрешены ( .T. )
                                   // Базы только на чтение         ( .F. )
#DEFINE _COUNTRY    Global_Set[5]  // Код языка ( '000' - Русский )
#DEFINE _FILL_YES   Global_Set[6]  // Нужно ли дополнять номера документов
#DEFINE _FILL_DOC   Global_Set[7]  // Символ заполнения номеров документов
#DEFINE _MENU_YES   Global_Set[9]  // Показывать список предприятий
#DEFINE _ZABALANS_P Global_Set[10] // (.T./.F.)Полнная/Неполная проводка
                                   // с забалансовыми  счетами
#DEFINE _ZABALANS_S Global_Set[11] // ' ' - Показывать балансовые
                                   // '1' - Показывать забалансовые
                                   // '*' - Показывать ВСЕ

#DEFINE _SUMMA_LEN  15             // Длина экранной суммы
#DEFINE _ITOG_LEN   Global_Set[12] // Длина итоговой суммы
#DEFINE _PRO_PATH   cProPath       // Путь к общим файлам
#DEFINE _EXE_PATH   cExePath       // Путь к общим Программам

#ifdef __HARBOUR__
#DEFINE _ARC_PATH   "UTIL\"        // Путь архиваторам
#DEFINE _ARC_RAR    "UTIL\RAR.exe"        // Путь архиваторам
#else
#DEFINE _ARC_PATH   "UTIL\"        // Путь архиваторам
#DEFINE _ARC_RAR    "UTIL\RAR.exe"        // Путь архиваторам
#endif


#DEFINE _PATH_SHOP  cPathShop      // Путь к магазинам

#DEFINE _BEGIN_DATE_VVOD  Global_Set[13]  // Минимальная дата для ввода
#DEFINE _END_DATE_VVOD    Global_Set[14]  // Максимальная дата для ввода
#DEFINE _YES_NO_VVOD_MAIN Global_Set[15]  // Разрешено прямая коректировка NAIN
#DEFINE _YES_NO_RUBLI     Global_Set[16]  // Разрешена корректировка рублевых сумм
#DEFINE _YES_NO_ANALIT    Global_Set[17]  // Разрешо добавление аналитик
#DEFINE _41to41           Global_Set[18]  // Разрешена корреспонденция 41 <--> 41 и тд.
#DEFINE _ROZNICA          Global_Set[19]  // БЭСТ Розница
#DEFINE _ANALIT_PREFIKS   Global_Set[20]  // префикс для номера аналитик
// DIM88
#DEFINE _USER_STATION     Global_Set[21]  // уникальный номер в STATION.PRO
#DEFINE _PATH_REPORT      Global_Set[22]  // путь к файлам отчетов
#DEFINE _USER_MENU        Global_Set[23]  // Код варианта меню для пользователя
#DEFINE _VERSIA           Global_Set[24]  // Код версии
#DEFINE _IS_BUDGET        Global_Set[25]  // Код версии
#DEFINE _DATE_CNTRL       Global_Set[26]  // Дата разрешения корретировки
#DEFINE _FIRM_CODE        Global_Set[27]  // Код предприятия
#DEFINE _DOP_REJ          Global_Set[28]  // Доп. режимы
#DEFINE _ARRAY_NUM        Global_Set[29]  // Коды доп.режимов
#DEFINE _CN_PRESENT       Global_Set[30]  // Договор
#DEFINE _LEN_SCHET        Global_Set[31]  // Длина счета
#DEFINE _PIC_SCHET        REPLICATE('X',Global_Set[31])
#DEFINE _PARTFIS          Global_Set[32]  // Партнеры/Физ лица
#DEFINE _USN_BEG          Global_Set[33]  // УСН
#DEFINE _IS_USN           Global_Set[34]  // Базы УСН
#DEFINE _TX_PRESENT       Global_Set[35]  // Экспорт налоговых форм
                  //      Global_Set[36]  // Мы под харбором
#DEFINE _JRN_YES          Global_Set[37]  // Включена регистрация изменений
#DEFINE _XML_SETUP        Global_Set[38]  //
#DEFINE _DS_PRESENT       Global_Set[39]  // Мобильная торговля

memvar  lNewFirm, cExePath
MEMVAR cProPath
MEMVAR helpfile, help_code
MEMVAR INST_COLOR, INST_PAROL, INST_CFG, INST_DATE
MEMVAR PATH_DB, GlobalTask, GlobalDemo
MEMVAR lIsGlobValuta, GlobalValuta, GlobalTmpPath, Global_BVsumma, ;
       Global_BCurs, GLobal_Analit, Global_Set
MEMVAR CURR_DATA, CURR_BEG, CURR_END, CURR_BREAK, CURR_MAIN, ;
       CURR_PROF, CURR_CURS, CURR_KARB, CURR_ZAP, CURR_BCURS, CURR_MDATA,;
       CURR_DTIME, CURR_FTIME, CURR_A_BEG, CURR_A_END, CURR_PROJECT, CURR_LDATA
MEMVAR c_My_CODE
MEMVAR aIn,aLastIn,nApp
MEMVAR ST_FILE,PRN0_PAROL,PRN0_COLOR
MEMVAR PRN0_TYPE, PRN0_WIDTH, PRN0_WTYPE, PRN0_PAPER, PRN0_STR,;
       PRN0_PROBROS, PRN0_PAUSE,PRN0_DEVICE,PRN0_PSEVDO,;
       PRN0_E_YES,PRN0_E_PATH,PRN0_E_FILE,PRN0_FONT,PRN0_HEAD,PRN0_NUMSTR,PRN0_BEGSTR,;
       PRN0_LCODE,PRN0_BCODE,PRN0_ECODE, PRN0_LSUM, PRN0_PTYPE,;
       PRN0_ORINT, PRN0_OTSTUP,PRN0_BEST_PRINT,PRN0_WIN_PRINT,PRN0_WPRINTER

MEMVAR PRN0_TNAME,PRN0_TDEVICE,PRN0_TVIEW,PRN0_TNAST,PRN0_TFILE,;
       PRN0_TERROR,PRN0_TCOPY,PRN0_TSHAB,PRN0_TCODE,;
       PRN0_WIN,PRN0_TWIN
MEMVAR LBL_NAME,  LBL_BOSS,  LBL_SHEF,  LBL_ADRES,  LBL_TEL, LBL_FAX,;
       LBL_BOSS2,  LBL_SHEF2, LBL_CODE, LBL_POZ, LBL_INDEKS, LBL_OPER, LBL_OKPO,;
       LBL_WPPATH
MEMVAR IDENT_USER
FIELD Code,ShortName,Name,Dt_Schet,Dt_Code,Kt_Schet,Kt_Code
FIELD Summa,NNOper

#ifdef _TRIAL_DATE
  #translate DATE()  => (IF(DTOS(MY_DATE())>_TRIAL_DATE,MyExit(),MY_DATE()))
#endif

#TRANSLATE oInitList(oList) =>;
 InitList(;
          oList:nTop,oList:nBottom,oList:cColHead,oList:aBlockCol,;
          oList:cCurProc,oList:aHeads,oList:aRef,oList:aPict,oList:aWhen,;
          oList:aValid,oList:nUniMode,oList:bDelInit,oList:bScrInit,;
          oList:aSortSeek,oList:aPrintHead,oList:bPost,oList:bDelPost,;
          oList:aGetBlock,oList:bColor,oList:bColor1,oList:nLeftBrd,;
          oList:bScrPost,oList:cFindMacro,oList:cCol_Browse,oList:lYesClear,;
          oList:bPreGet,oList:bPostGet,oList:nTag,oList:nDispRow,;
          oList:aHotKey,oList:bRestSave,oList:bPostRead,oList:lSubIndex,;
          oList:bSayHead,oList:bKeyHead;
          )

// Возвращает номер ключа в cTag
#IFDEF SIX
  #translate Bs_KeyNo([<cTag>]) =>  Sx_KeyNo([<cTag>])
  #translate BS_TagInfo([<nFile>]) => SX_TagInfo([<nFile>])
#ELSE
  #IFDEF CDX
    #translate Bs_KeyNo([<cTag>]) => OrdKeyNo([<cTag>])
    #translate BS_TagInfo([<nFile>]) => {}// будет позднее
  #ELSE
    #translate Bs_KeyNo([<cTag>]) => Ax_KeyNo([<cTag>])
    #translate BS_TagInfo([<nFile>]) => AX_TagInfo([<nFile>])
  #ENDIF
#ENDIF

// Возвращает имя с полным путем текущего открытого файла
#ifdef SIX
  #translate Bs_TableName() =>  Sx_TableName()
#else
  #IFDEF CDX
    #translate Bs_TableName() => dbInfo(10)
  #ELSE
    #translate Bs_TableName() =>  Ax_TableName()
  #ENDIF
#endif

// Возвращает путь к текущему открытому файлу
#TRANSLATE Bs_PathName() => LEFT(Bs_TableName(),ATTOKEN(Bs_TableName(),"\")-1)

// Проверка на временный файл
#ifndef __HARBOUR__
#TRANSLATE Bs_IsTmp(<cFile>) => EMPTY( CHARREM( "1234567890",TOKEN(TOKEN(<cFile>,"\"),".",1)) )
#TRANSLATE Bs_IsTmp() => EMPTY( CHARREM( "1234567890",TOKEN(TOKEN(Bs_TableName(),"\"),".",1)) )
#else
#TRANSLATE Bs_IsTmp(<cFile>) => "B4P"$UPPER(<cFile>)
#TRANSLATE Bs_IsTmp() => "B4P"$UPPER(Bs_TableName())
#endif

// Блокировка записи
#ifdef SIX
  #TRANSLATE Bs_RLock([<x>]) => SX_RLock(<x>)
#else
  #ifdef AXS
    #TRANSLATE Bs_RLock([<x>]) => AX_RLock(<x>)
  #else
    #TRANSLATE Bs_RLock([<x>]) => DBRLock(<x>)
  #endif
#endif


// Из за проблем сборок
#TRANSLATE NTOC(<x>) => LTRIM(STR(<x>,30))
#TRANSLATE POSREPL(<cString>,<cReplaceString>,[<nStartPos>]) => STUFF(<cString>,<nStartPos>,LEN(<cReplaceString>),<cReplaceString>)

// Из за проблем округления
#TRANSLATE ROUND(<x>,<y>)  => BS_ROUND(<x>,<y>)
// Разблокировка записей с формированием уникального проверочного кода
#ifdef NO_ERROR
  // Переопределение структуры
  #TRANSLATE FCOUNT() => Bs_FCOUNT()
  // Разблокировка записи
  #translate DbUnLockAll() => (SetInfoCRC(.T.),SX_UnLock())
  #translate DbUnLock() =>    (SetInfoCRC(),SX_UnLock(RECNO()))
  #TRANSLATE Bs_UnLock() =>   SX_UnLock(RECNO())
#else
  // Разблокировка записи
    #TRANSLATE Bs_UnLock() => SX_UnLock()
#endif

// Список тэгов
#TRANSLATE Bs_Tags() => _Bs_Tags()

// Количество открытых бэгов
#TRANSLATE Bs_IndexCount() => _Bs_IndexCount()


//  Имя индексного файла
#ifndef __HARBOUR__
#TRANSLATE Bs_IndexName([<n>]) => IF(EMPTY(CHARREM( "1234567890",TOKEN(ORDBAGNAME([<n>]),".",1))),GlobalTmpPath,Bs_PathName())+ORDBAGNAME([<n>])
#else
#TRANSLATE Bs_IndexName([<n>]) => ORDBAGNAMEB([<n>])
#endif





#ifdef SIX
  #TRANSLATE Bs_IsFLocked() => Sx_IsFLocked()
#else
  #ifdef AXS
    #TRANSLATE Bs_IsFLocked() => Ax_IsFLocked()
  #else
    #TRANSLATE Bs_IsFLocked() => dbInfo(20)
  #endif
#endif
/*
#ifdef SIX
  #TRANSLATE Bs_IsShared() => Sx_IsShared()
#else
  #ifdef AXS
    #TRANSLATE Bs_IsShared() => Ax_IsShared()
  #else
    #TRANSLATE Bs_IsShared() => !dbInfo(20)
  #endif
#endif
*/
#ifdef SIX
  #TRANSLATE Bs_IsShared() => Sx_IsShared()
#else
  #ifdef AXS
    #TRANSLATE Bs_IsShared() => Ax_IsShared()
  #else
    #ifdef __HARBOUR__
      #TRANSLATE Bs_IsShared() => dbInfo(36)
    #else
      #TRANSLATE Bs_IsShared() => !dbInfo(20)
    #endif
  #endif
#endif

#ifdef SIX
  #TRANSLATE Bs_SetPass(<x>) => Sx_SetPass(<x>)
  #TRANSLATE Bs_TableType()  => Sx_TableType()
  #TRANSLATE Bs_DbfEncrypt() => Sx_DbfEncrypt()
  #TRANSLATE Bs_DbfDecrypt() => Sx_DbfDecrypt()
#else
  #ifdef AXS
    #TRANSLATE Bs_SetPass(<x>) => Ax_SetPass(<x>)
    #TRANSLATE Bs_TableType()  => Ax_TableType()
    #TRANSLATE Bs_DbfEncrypt() => Ax_DbfEncrypt()
    #TRANSLATE Bs_DbfDecrypt() => Ax_DbfDecrypt()
  #endif
#endif

#ifdef SIX
  #TRANSLATE Bs_GetLocks() => Sx_GetLocks()
#else
  #ifdef AXS
    #TRANSLATE Bs_GetLocks() => Ax_GetLocks()
  #else
    #TRANSLATE Bs_GetLocks() => DbRLockList()
  #endif
#endif


#ifdef __HARBOUR__
#DEFINE PLOCAL LOCAL
#else
#DEFINE PPARAMETERS AXS
#DEFINE PLOCAL PRIVATE
#endif

#DEFINE SLOCAL LOCAL

#ifdef __WL32
  #translate Bs_Run(<cRun>) => CWSWAP(<cRun>)
#else
#ifndef __HARBOUR__
  #translate Bs_Run(<cRun>) => SWPRUNCMD(<cRun>)//__RUN(<cRun>)
#else
  #translate Bs_Run(<cRun>) => XRUN(<cRun>)
#endif
#endif

#translate RotateAndReader( <oGet>, <aSim>, <nRow>, <nCol>  ) => ;
           RotateAndReader( <oGet>, <aSim>, <nRow>, <nCol>,,, COL_REFER, COL_REF1 )

#translate RotateAndReader(<oGet>, <aSim>, [<nRow>], [<nCol>], [<lRotate>], [<cPrompt>] ) => ;
           RotateAndReader(<oGet>, <aSim>, [<nRow>], [<nCol>], [<lRotate>], [<cPrompt>], COL_REFER, COL_REF1 )

#translate RotateAndReader(<oGet>, <aSim>, <nRow>, <nCol>, <lRotate>, <cPrompt> ) => ;
           RotateAndReader(<oGet>, <aSim>, <nRow>, <nCol>, <lRotate>, <cPrompt>, COL_REFER, COL_REF1 )

#define _NNOPER_INI   LoadPath()+"INI\nNoper.INC"
#translate StepPlus()   => StepPlus( _NNOPER_INI, 0 )
#translate AnalitStep() => StepPlus( LOADPATH()+'INI\ANALIT.INC', 0 )
#translate _SprawStep() => StepPlus( LOADPATH()+'INI\SPRAW.INC', 0 )

#ifdef AXS
  #translate OrdSetFocus( <n> )  => MyOrdSetFocus( <n> ) //!!!!!!!!!!
#endif

#IFDEF AXS
  #DEFINE RE_OPEN_DBF ReOpenDbf()
#ELSE
  #DEFINE RE_OPEN_DBF
#ENDIF

#ifdef SIX
  #include "sixcdx.ch"
#else
  #ifdef AXS
    #include "dbfcdxax.ch"
  #endif
#endif

// DEFINE для GetCase
#DEFINE CS_LEN        17
#DEFINE CS_L_ONLY     aCaseSet[1]
#DEFINE CS_N_ROW      aCaseSet[2]
#DEFINE CS_N_COL      aCaseSet[3]
#DEFINE CS_A_LIST     aCaseSet[4]
#DEFINE CS_A_SET      aCaseSet[5]
#DEFINE CS_C_COLOR    aCaseSet[6]
#DEFINE CS_L_RETURN   aCaseSet[7]
#DEFINE CS_L_ADD      aCaseSet[8]
#DEFINE CS_C_MESS     aCaseSet[9]
#DEFINE CS_L_FRAME    aCaseSet[10]
#DEFINE CS_C_HEAD     aCaseSet[11]
#DEFINE CS_L_EMPTY    aCaseSet[12]
#DEFINE CS_L_HORIZONT aCaseSet[13]
#DEFINE CS_A_SETVAL   aCaseSet[14]
#DEFINE CS_N_POZ_GET  aCaseSet[15]
#DEFINE CS_X_ONLY     aCaseSet[16]
#DEFINE CS_C_NCOLOR   aCaseSet[17]

// для определения номера диска с
#ifdef BLINKER
  #TRANSLATE MY_NetWork()  => .T.
  #TRANSLATE MY_COMPNO( <x> ) => PP_COMPNO( <x> )
  #TRANSLATE MY_COMPNO( <x>, [<x2>], [<x3>] ) => PP_COMPNO( <x>, <x2>, <x3> )
#else
  #ifdef RTLINK
    #TRANSLATE MY_NetWork()  => NetWork()
    #TRANSLATE MY_COMPNO( <x> ) => PP_COMPNO( <x> )
    #TRANSLATE MY_COMPNO( <x>, [<x2>], [<x3>] ) => PP_COMPNO( <x>, <x2>, <x3> )
  #else
    #TRANSLATE MY_NetWork()  => NetWork()
    #TRANSLATE MY_COMPNO( <x> ) => PP_COMPNOX( <x> )
    #TRANSLATE MY_COMPNO( <x>, [<x2>], [<x3>] ) => PP_COMPNOX( <x>, <x2>, <x3> )
  #endif
#endif

/*
#TRANSLATE NetUs1Exc( [<cAlias>], [<cFile>]        ) => ;
           NetUse(    [<cAlias>], [<cFile>], , .T. )

#TRANSLATE NetUs1Exc( [<cAlias>], [<cFile>], [<cIndexes>]      ) => ;
           NetUse(    [<cAlias>], [<cFile>], [<cIndexes>], .T. )

#TRANSLATE NetUs1Exc( [<cAlias>], [<cFile>], [<cIndexes>],      [<cRdd>] ) => ;
           NetUse(    [<cAlias>], [<cFile>], [<cIndexes>], .T., [<cRdd>] )
*/

// CRC32 - код по умолчанию
#TRANSLATE NIL_CRC(<cRecNo>,<cPath>)  => GetProcessStation(<cRecNo>,<cPath>)
#TRANSLATE PRED_CRC(<cRecNo>,<cPath>) => CRYPT(ALLTRIM(TOKEN(Bs_TableName(),"\"))+<cRecNo>+<cPath>+"#",PASSWORD_CRC)
#DEFINE    PATH_CRC                     ""  // LoadPath()
#DEFINE    RECNO_CRC                    "" //ALLTRIM(STR(RECNO(),10,0))
#DEFINE    PASSWORD_CRC                 "12 стульев и товарищ Бендер"

//#DEFINE _LEN_SCHET   6

#ifdef __HARBOUR__
#DEFINE DEF_CARGO(o)  o:cargo

 #xtranslate ACHOICE(       =>   ctw_ACHOICE(
 #xtranslate COL()          =>   ctw_COL()
 #xtranslate DEVOUT(        =>   ctw_DEVOUT(
 #xtranslate DEVOUTPICT(    =>   ctw_DEVOUTPICT(
 #xtranslate DEVPOS(        =>   ctw_DEVPOS(
 #xtranslate DISPBOX(       =>   ctw_DISPBOX(
 #xtranslate DISPOUT(       =>   ctw_DISPOUT(
 #xtranslate DISPOUTAT(     =>   ctw_DISPOUTAT(
 #xtranslate MAXCOL()       =>   MIN(ctw_MAXCOL(),79)
 #xtranslate MAXROW()       =>   MIN(ctw_MAXROW(),24)
 #xtranslate MEMOEDIT(      =>   MEMOEDIT_(
 #xtranslate QOUT(          =>   ctw_QOUT(
 #xtranslate QQOUT(         =>   ctw_QQOUT(
 #xtranslate ROW()          =>   ctw_ROW()
 #xtranslate SCROLL(        =>   ctw_SCROLL(
 #xtranslate SETPOS(        =>   ctw_SETPOS(
 #xtranslate SETRC(         =>   ctw_SETPOS(
 #xtranslate TBROWSENEW(    =>   ctw_TBROWSENEW(
 #xtranslate TBROWSEDB(     =>   ctw_TBROWSEDB(
 #xtranslate __AtPrompt(    =>   ctw___AtPrompt(
 #xtranslate SAVESCREEN(    =>   ctw_SAVESCREEN(
 #xtranslate RESTSCREEN(    =>   ctw_RESTSCREEN(
 #xtranslate OrdBagName(    =>   OrdBagNameA(
 #xtranslate GETREADER(     =>   ReferGetReader(  //иначе будет зацикл
 #xtranslate LIKE(          =>   WildMatch(
 #xtranslate GETACTIVE(     =>   GetActiveGet(
 #xtranslate NUMDISKL(      =>   NUMDISKL_(
 #xtranslate DISKCHANGE(    =>   DISKCHANGE_(
 #xtranslate DISKFREE(         =>   DISKFREE_(

//#xtranslate GET() => GetBest()

#xtranslate GetNew([<nRow,...>])       => GetNewBest([<nRow>])
#xtranslate SayScreen([<cString,...>]) => SayScreen_([<cString>])
#xtranslate colorwin([<nTop,...>])     => colorwin_([<nTop>])
#xtranslate clearwin([<nTop,...>])     => clearwin_([<nTop>])
#xtranslate mRow()     => _mRow()
#xtranslate mCol()     => _mCol()


#translate DBCLOSEAREA()        => dCloseArea()
#translate DBCLOSEALL()         => dCloseAll()


#ifdef _DEBUG
#translate DISPBEGIN()  => NulFunction()
#translate DISPEND()  => NulFunction()
#xtranslate TRAPSHIFT(    =>   NulFunction(
#endif

#xtranslate ExeName()       => ExeName_()




//Это потому что в Harbour свой box.ch и он как раз и грузится, а там по-другому
// Рамка из одинарной линии
#define FRAMES1 "┌─┐│┘─└│ "

// Рамка из двойной линии
#define FRAMES2 "╔═╗║╝═╚║ "

// Рамка с закрашенным обрамлением
#define BRAME  "█▀███▄██"

// Рамка с заполнением символом ▒
#define PRAME  "▒▒▒▒▒▒▒▒▒"

// Рамка с заполнением символом ░
#define NRAME  "░░░░░░░░░"

// Рамка сплошная
#define SRAME  "█████████"

// Рамка пустая
#define EMPTY_BOX  "         "

#endif

#ifdef __PLATFORM__Linux
 #xtranslate SAYSCREEN(         =>   LNX_SAYSCREEN(
 #define OS_FILE_MASK     "*"
#else
 #define OS_FILE_MASK     "*.*"
#endif

// день пройдет и ночь настанет... отыскивать эти s_lib. Переправил во всех ch. azat 15/08/2005
#ifndef S_LIB_EDIT
  #define    S_LIB_EDIT   1   // pедактиpование
#endif
#ifndef S_LIB_ADD
  #define    S_LIB_ADD    2   // дополнение
#endif
#ifndef S_LIB_FILTER
  #define    S_LIB_FILTER 0   // ввод знач. для фильтpации
#endif