const
  edtED101 = 1; edtED102 = 2; edtED103 = 3; edtED104 = 4; edtED105 = 5;
  edtED110 = 6;
  edtED201 = 7; edtED202 = 8; edtED203 = 9; edtED204 = 10;
  edtED205 = 11; edtED206 = 12; edtED207 = 13; edtED209 = 14; edtED210 = 15;
  edtED211 = 16; edtED214 = 17; edtED215 = 18; edtED217 = 19; edtED218 = 20;
  edtED219 = 21; edtED220 = 22; edtED221 = 23; edtED222 = 24; edtPacketEPD = 25;
  edtPacketESID = 26; edtSigEnvelope = 27; edtEnvelope = 28; edtED240 = 54;
  edtED241 = 55; edtED242 = 57; edtED999 = 58; edtED330 = 59; edtED208 = 72;
  edtED243 = 64; edtED244 = 70; edtED108 = 77; edtED111 = 78;
  stNone = 0; stED = 1; stPacket = 2; nstEd = 0; nstDsig = 1; nstDsigEnv = 2;
  nstSoap = 3; nstMsg = 4; DPEDNo = 300000;
  edtED107 = 84;
  edtED275 = 85;
  edtED276 = 86;
  // exchange #2696 - добавлен пакет PacketEID для схем 2.6.0
  edtPacketEID = 87;
  // exchange #2946
  edtED245 = 88;
  edtName = ['', '<ED101>', '<ED102>', '<ED103>', '<ED104>', '<ED105>', '<ED110>',
    '<ED201>', '<ED202>', '<ED203>', '<ED204>', '<ED205>', '<ED206>', '<ED207>',
    '<ED209>', '<ED210>', '<ED211>', '<ED214>', '<ED215>', '<ED217>', '<ED218>',
    '<ED219>', '<ED220>', '<ED221>', '<ED222>', '<PacketEPD>','<PacketESID>',
    '<SigEnvelope>', '<Envelope>', '', '', '', '', '', '', '', '', '', '', '',
    '', '', '', '', '', '', '', '', '', '', '', '', '', '',
    '<ED240>', '<ED241>', '', '<ED242>', '<ED999>', '<ED330>', '',
     '', '', '', '<ED243>', '', '', '', '', '', '<ED244>', '', '<ED208>',
     '', '', '', '', '<ED108>', '<ED111>',
     '', '', '', '', '',
     '<ED107>', '<ED275>', '<ED276>',
     '<PacketEID>', '<ED245>'];
  sscName = ['00 - ЭПД оплачен', '01 - ЭПД отложен', '02 - ЭПД помещён в картотеку в УБР',
    '03 - ЭПД помещён в картотеку в КО', '04 - ЭПД аннулирован', '',
    '06 - ЭПД изьят из картотеки по причине полной оплаты частными суммами', '',
    '08 - ЭПД отозван из картотеки', '09 - ЭПД оплачен из картотеки', '10 - ЭПД безотзывный',
    '11 - ЭПД помещён в картотеку документов, ожидающих акцепта', '', '', '', '',
    '', '', '', '', '20 - ЭПД не прошёл контроль', '21 - пакет ЭПД не прошёл контроль',
    '', '', '', '', '', '', '', '', '30 - пакет ЭПД прошёл контроль',
    '31 - пакет ЭПД аннулирован', '32 - пакет ЭПД не может быть отозван'];
  scName = ['00 - ЭПД оплачен', '01 - ЭПД отложен', '02 - ЭПД помещён в картотеку',
    '03 - ЭПД помещён в картотеку в КО', '04 - ЭПД аннулирован', '',
    '06 - ЭПД изьят из картотеки по причине полной оплаты частными суммами', '',
    '08 - ЭПД отозван из картотеки', '09 - ЭПД оплачен из картотеки', '',
    '11 - ЭПД помещён в картотеку документов, ожидающих акцепта', '', '', '', '',
    '', '', '', '', '20 - ЭПД не прошёл контроль'];
  scRequestCode = ['00 - Направление получателю информации без исходного запроса',
    '01 - Уточните номер б/с получателя, поскольку указанный в документе б/с' +
    ' получателя отсутствует', '02 - уточните номер б/с и наименование получателя,' +
    ' поскольку б/с с номером, указанным в расчетном документе, открыт клиенту' +
    ' с другим наименованием', '03 - подтвердите отсутствие дублирования документа' +
    ' с указанными реквизитами', '04 - подтвердите наименование плательщика',
    '05 - подтвердите наименование получателя', '06 - предоставьте информацию' +
    ' о клиенте КО - физ. лице, являющемся плательщиком по документу с указанными' +
    ' реквизитами: ИНН либо адрес места жительства (регистрации) или места' +
    ' пребывания', '07 - подтвердите назначение платежа', '08 - подтвердите значения' +
    ' полей документа с указанным номером'];
  scAnswerCode = ['', '01 - правильность реквизитов получателя либо отсутсвие' +
    ' дублирования документа не могут быть подтверждены, сумма документа с' +
    ' указанными реквизитами подлежит возврату', '02 - направляем правильные' +
    ' значения реквизитов получателя', '03 - подтверждаем отсутсвие дублирования' +
    ' по расчетному документу с указанными реквизитами', '04 - подтвержденное' +
    ' (уточненное) наименование плательщика', '05 - подтвержденное (уточненное)' +
    ' наименование получателя', '06 - сообщаем информацию о плательщике - ' +
    ' физ лице: ИНН либо адрес места жительства (регистрации) или места пребывания',
    '07 - подтвержденное (уточненное) назначение платежа', '08 - сообщаем' +
    ' значение полей документа с у казанным номером'];


var
  FOneED, FFirst, FLast, FSigEnvelope, FVerifySigEnvelope, FEnvelope,
  FAppMessageID, FMessageID, FTransportFileName, FFormatXML,
  FSavePacketEPD, FNotED222, FAccountLoginBudget, FMakeRecName,
  FirstInfo, FiltrBudget, FFillNumberEd101, IsDebug, IsLogined,
  FAnswerEd211: Boolean;
  DirMain, FileLog, FileInfo, DirTmp, FileTmp, DirIn, DirOut, FileOut,
  DirArh, DirErr, DirRep, FileIn, FileArh, FileErr, FileRep, FileTest,
  FEDAuthor, FTo, FFrom, FSystemCode, FMessageType, FPriority, Exch_Name,
  Msg, FModuleFileName, FFunctionFileName, FFileUfebsRep, FFileRepED211,
  FED211OperType, Sql, Foreign_Key, fsScriptName: String;
  FEDDate: TDateTime;
  Ufebs, UfebsRep, Xml, Node, Excel, VarValue: Variant;
  fileStream: TFileStream;
  fsScript: TfsScript;

  // exchange #2759
  // переменная =true, если для текущего пользователя разрешены все бюджеты
  vAllBudgetForUser: boolean;

  // exchange #3061
  // проверяем год прилогиненного бюджета.
  // выставляем флаг=true если год бюджета >=2016.
  vBudgetYear2016andAbove: boolean;


{~ED243_RequestCode_Name
  расшифровка кодов запросов ED243.EDDefineRequestCode }
function ED243_RequestCode_Name( aCode: integer): string;
begin
  try
    case aCode of
       0: Result := scRequestCode[ aCode];
      01: Result := 'Уточните номер банковского (лицевого)счета получателя средств, '
                    +'поскольку указанный в распоряжении банковский (лицевой) счет '
                    +'получателя средств отсутствует';
      02: Result := 'Уточните номер банковского (лицевого) счета и наименование '
                    +'получателя средств, поскольку банковский (лицевой) счет с '
                    +'номером, указанным в распоряжении, открыт клиенту с другим наименованием';
      03: Result := 'Подтвердите отсутствие дублирования распоряжения с указанными реквизитами';
      04: Result := 'Подтвердите наименование плательщика';
      05: Result := 'Подтвердите наименование получателя средств';
      06: Result := 'Предоставьте информацию о клиенте кредитной организации – '
                    +'физическом лице, являющемся плательщиком по распоряжению с '
                    +'указанными реквизитами: ИНН либо адрес места жительства '
                    +'(регистрации) или места пребывания';
      07: Result := 'Подтвердите назначение платежа';
      08: Result := 'Подтвердите значение поля (полей) расчетного документа с '
                    +'указанным номером (номерами). Номер поля может принимать '
                    +'значения: 60, 61, 101 – 110';
      09: Result := 'Уточните (дополните) реквизиты, ошибочно указанные '
                    +'(отсутствующие) в ранее направленном распоряжении (в том '
                    +'числе в соответствии с требованиями статьи 7.2 Федерального закона N 115-ФЗ)';
      10: Result := 'Просим вернуть ошибочно перечисленную сумму с указанием '
                    +'пояснений о причине просьбы о возврате денежных средств';
      11: Result := 'Просим информировать о зачислении денежных средств получателю средств';
      12: Result := 'Подтвердите значение реквизитов в записи реестра с номером из '
                    +'платежного поручения на общую сумму с реестром';
      13: Result := 'Уточните (дополните) ошибочно указанные (отсутствующие) '
                    +'реквизиты записи в реестре из ранее направленного платежного '
                    +'поручения на общую сумму с реестром';
      14: Result := 'Запрос информации, связанной с операциями с использованием платежных карт';
      99: Result := 'Запрос, для которого не представляется возможным использование иных установленных кодов запроса';
    else  Result := '';//INTTOSTR( aCode);
    end;//case//
    except
      raise( 'Сбой UfebsConst.ED243_RequestCode_Name'#13#10 + LastException.Message);
  end;
end;

{~ED244_AnswerCode_Name
  расшифровка кодов ответов ED244.EDDefineAnswerCode }
function ED244_AnswerCode_Name( aCode: integer): string;
begin
  try
    case aCode of
       0: Result := scAnswerCode[ aCode];
      01: Result := 'Правильность реквизитов получателя средств либо отсутствие '
                    +'дублирования распоряжения не могут быть подтверждены, сумма '
                    +'распоряжения с указанными реквизитами подлежит возврату';
      02: Result := 'Направляем правильные значения реквизитов получателя средств';
      03: Result := 'Подтверждаем отсутствие дублирования по распоряжению с '
                    +'указанными реквизитами';
      04: Result := 'Подтвержденное (уточненное) наименование плательщика';
      05: Result := 'Подтвержденное (уточненное) наименование получателя средств';
      06: Result := 'Сообщаем информацию о плательщике: ИНН либо адрес места '
                    +'жительства (регистрации) или места пребывания';
      07: Result := 'Подтвержденное (уточненное) назначение платежа';
      08: Result := 'Сообщаем значение поля (полей) расчетного документа с '
                    +'указанным номером (номерами). Номер поля может принимать '
                    +'значения: 60, 61, 101 – 110';
      09: Result := 'Подтверждение зачисления денежных средств на счет получателя средств';
      10: Result := 'Указанный в распоряжении номер банковского счета получателя '
                    +'средств закрыт. По просьбе получателя средств сообщаем новые '
                    +'банковские реквизиты данного получателя средств';
      11: Result := 'Сообщаем уточненные (дополненные) значения реквизита '
                    +'(реквизитов) распоряжения с указанным номером (номерами)';
      12: Result := 'Сообщаем уточненные (дополненные) значения реквизитов записи '
                    +'реестра с указанным номером из платежного поручения на общую сумму с реестром';
      13: Result := 'Сумма не возвращена по причине отсутствия согласия получателя '
                    +'средств после зачисления денежных средств получателю средств';
      14: Result := 'Сумма будет возвращена до зачисления денежных средств получателю средств';
      15: Result := 'Сумма будет возвращена (получено согласие получателя средств о возврате суммы)';
      16: Result := 'Информация по запросу, связанному с операциями с использованием платежных карт';
      99: Result := 'Ответ, для которого не представляется возможным использование иных установленных кодов ответа';
    else  Result := '';//INTTOSTR( aCode);
    end;//case//
    except
      raise( 'Сбой UfebsConst.ED244_AnswerCode_Name'#13#10 + LastException.Message);
  end;
end;

begin
end.