// Модуль описания общих констант и переменных, для всех модулей экспорта и импорта.

uses
  'WorkAppVersion.inc',
  'WorkAzkVersion.inc';

var
  DirIni, DirTmp, DirOut, DirArh, DirRep, DirIn,
  FileTmp, FileOut, FileLog, FileInfo, FileIn, FileValidate: String;
  FirstInfo, FileOutIsLocalNet, FileOutOrgCodeIsFk, param_CtlValidOn,
  param_StopAllUnloadDocNotValid, param_changeKBK, ChangeKbk: Boolean;
  Schema, RegExp, Data, Validate, VarArrayAttr, Class_id: Variant;
  CacheFormatKbk: TStringList;

  // журнал типа log, только не накопительный, а на одну операцию.
  // в конце операции этот журнал очищается и файл удаляется.
  vJournalTmp: string;

  // exchange #3054
  // текст, который дописывается в начале строки в логах
  // нужен для организации структурированного файла - отступа.
  vLogPrefix: string;

  // exchange #3057
  // вынесена настройка конфига "Схема загрузки доп кодов из ADD_KLASS"
  // используется в загрузчике Imp_FK_IK.
  // приходится тянуть дубль из Un_ConstRef поскольку эта переменная
  // используется в модуле Uf_Import, а он теперь вставлен во все загрузчики.
  // кто то использует Un_ConstRef, а кто то Un_Const
  vCfg_LoadDopKD_from_ADD_KLASS: string;

const
  OffsetNumFileName = 1007;
  OffsetMonthFileName = 12;
  cr = #10 + #13;
  
  // список значений поля extstatus_ID (select * from extstatus)
  cnExtStatusID_NotUnloaded       = '0';   // не выгружен
  cnExtStatusID_UnLoaded          = '1';   // выгружен
  cnExtStatusID_Refuse            = '7';    // отказан
  cnExtStatusID_Tested            = '4';    // проверен
  cnExtStatusID_Deliver           = '2';    // проверен
  cnExtStatusID_ValidateError     = '3';  // Ошибка проверки
  cnExtStatusID_EndProcess        = '10'; // Обработка завершена
  cnExtStatusID_SignNotValid      = '19';  // ЭП неверна
  cnExtStatusID_ImportError       = '42';  // Ошибка импорта
  cnExtStatusID_Exported          = '23';   // Импортирован
  
procedure SetLogPrefix( aPrefix: string = '');
begin
  vLogPrefix := aPrefix;
end;

{~WriteLog
  логирование сообщения Msg в журнале FileLog.
  если второй параметр - MsgStatus =true, то строка Msg отображается в
  контроле StatusBar.
  сообщение логируется так же в журнале отладки (Log), если скрипты собираются
  с отладочными журналами.}
procedure WriteLog(Msg: String; MsgStatus: Boolean = False);
begin
  if MsgStatus then StatusBarSimpleText( Msg);
  if FileLog <> '' then WriteLogFile(FileLog, vLogPrefix + Msg);
  if (vJournalTmp <> '') then WriteLogFile(vJournalTmp, vLogPrefix + Msg);

end; {End WriteLog}

{~WriteInfo
  логирование сообщения Msg в журнале информационных уведомлений FileInfo.
  если второй параметр - MsgStatus =true, то строка Msg отображается в
  контроле StatusBar.
  сообщение логируется так же в журнале отладки (Log), если скрипты собираются
  с отладочными журналами и временном журнале (для специальных уведомлений).}
procedure WriteInfo(Msg: String; MsgStatus: Boolean = False);
begin
  if (vJournalTmp <> '') then WriteLogFile(vJournalTmp, vLogPrefix + Msg);
  if MsgStatus then StatusBarSimpleText( Msg);
  if FirstInfo and (FileIn <> '') then
    WriteLogFile(FileInfo, 'Файл: ' + FileIn);
  WriteLogFile(FileInfo, vLogPrefix + Msg);
  FirstInfo := False;
  WriteLogFile(FileLog, vLogPrefix + Msg);

end; {End WriteInfo}


begin
end.
