Обсуждение:Проверка внебаланса (глава 3): равенств 9999==Актив & 99998==Пассив

0 (0)
  • Развернуть Обсуждение:Проверка внебаланса (глава 3): равенств 9999==Актив & 99998==Пассив ( Обсуждение примера  06.09.2003 10:52 )
    0(0)
    Макропроцедура проверки документов внебалансового учета (3 глава) на предмет выполнения равенств:
    итог БС 99999 == сумме итогов всех активных БС,
    итог БС 99998 == сумме итогов всех пассивных БС.
    Показания к применению: например, при расчете баланса в RS-Bank получено сообщение "Сумма остатков на пассивных счетах (кроме 99999) глава 3 не равна остатку 99998 (валюта 0)".
    Ограничение: работает только по файлу архивных документов.
    Период проверки задается константами в тексте макроса.
    Посмотреть пример
    >> Ответить
    • Развернуть проверку сделал сразу при вводе дока в obdocar3.mac, помогает, то же самое внес и в ( S_Andrey  23.12.2003 13:52 )
      0(0)
      obdocum3.mac

      file oa (obacnt) key 0; /* добавлено для проверки */

      /* определение типа счета */
      macro typeo(acc)
      oa.chapter=3;
      oa.account=acc;
      if (geteq(oa)) return trim(oa.kind_account); else return ""; end;
      end;


      macro Проверить_документ( Режим, Тип_документа )
      /* проверка недопустимость корреспонденции активных счетов с 99998
      и пассивных с 99999 */
      if (substr(Документ.account_payer,1,5)=="99999")
      if (typeo(Документ.account_receiver)=="П") msgbox("Недопустимая корреспонденция счета!"); return 1; end;
      elif (substr(Документ.account_receiver,1,5)=="99999")
      if (typeo(Документ.account_payer)=="П") msgbox("Недопустимая корреспонденция счета!"); return 1; end;
      end;
      if (substr(Документ.account_payer,1,5)=="99998")
      if (typeo(Документ.account_receiver)=="А") msgbox("Недопустимая корреспонденция счета!"); return 1; end;
      elif (substr(Документ.account_receiver,1,5)=="99998")
      if (typeo(Документ.account_payer)=="А") msgbox("Недопустимая корреспонденция счета!"); return 1; end;
      end;
      return 0;
      end;

      >> Ответить