{~Exch2467_Export_ADD_CLASS
 exchange #2467
  Коды субсидии плательщика выгружать в УФК  по операциям по счетам БУ/АУ
  только с кодом 21, 31 для форматов ZS, ZV, ZN, UK

  В выгрузку значения поля "Код субсидии" из ЭД :
   - "Заявка БУ/АУ на выплату средств" (195) с типом (ZV) (PP);
   - "Заявка БУ/АУ на получение наличных денег" (194) с типом (ZS);
   - "Расшифровка сумм неиспользованных средств для АУ/БУ" (222) с типом (RN);
   - "Справка уведомление об уточнении операций БУ/АУ" (198) с типом (UF);

  в формате ФК внести следущее изменение:
  1). При выгрузке проверять: если тип счета плательщика (195/194 классы
      значение поля "Счет" блока "Плательщик", 222/198 классы значение поля
      "Лицевой счет") = 5 - "Лицевой счет в ФК" и начинается жестко на 21, 31,
      при этом в поле "Код субсидии" указано значение отличное от 0 - "Не указан",
      выгружать указанное значение.
  2). Если условия по п. 1 не соблюдены, всегда выгружать значение "Пусто".

 exchange #2476
  В формате ФК внести следующее изменение:
  При выгрузке проверять: если тип счета плательщика (195/194 классы значение
  поля «Счет» блока «Плательщик»,
  222/198 классы значение поля "Лицевой счет") = 5 – «Лицевой счет в ФК»
  при этом в поле «Код субсидии» указано значение отличное от 0 – «Не указан»,
  проверять значение указанного «Кода субсидии» в справочнике «Коды субсидий»
  (Справочники – Бюджет – Показатели учета БУ/АУ – Коды субсидий) на наличие
  признака «Контроль в ФК»,
  если данный признак присутствует в карточке «Коды субсидии»,
  выгружать данное значение, если признак отсутствует в справочнике,
  выгружать значение пусто.

 exchange #2476
  доработка ФТ-1: убрана проверка 21 и 31 из начала номера счета (по #2467).}
procedure Exch2467_Export_ADD_CLASS( var aDocLine: variant;
                                     aAccount: string;
                                     aAccountID: string;
                                     aGRANTINVESTMENT_ID: string;
                                     aFieldName: string = 'ADD_KLASS');
var
  xCode: string;
begin

    try
      if (QueryField( ' select oa.orgacctype_id TYPEID '
                      +' from ORGACCOUNT oa where oa.id=?',
                      [ aAccountID],
                      'TYPEID') <> '5')
        then aDocLine.SetAttribute( aFieldName, '')
        else
      // допускается что код цели может быть не указан.
      // в этом случае поле ADD_KLASS заполнять "пусто"
      if (LENGTH( TRIM( aGRANTINVESTMENT_ID)) <= 0)
        then aDocLine.SetAttribute( aFieldName, '')
        else begin
          xCode := QueryField( 'Select Code From GrantInvestment Where Id = ?'
                               // exchange #2476
                               +' and CONTROLFK=1',
                               [ aGRANTINVESTMENT_ID],
                               'CODE');
//          if ((POS( '21', aAccount) = 1) OR (POS( '31', aAccount) = 1))
//            then begin
              if (xCode = '0')
                then aDocLine.SetAttribute( aFieldName, '')
                else aDocLine.SetAttribute( aFieldName, xCode);
{
            end else begin
              aDocLine.SetAttribute( aFieldName, '');
            end;}
        end;

      except
        ExceptionLog( 'Сбой Exch2467_Export_ADD_CLASS');
    end;

end;


begin
end.
