Ошибка компиляци при выполнении функции Com_GetEvalSum()...

0 (0)
  • Развернуть Ошибка компиляци при выполнении функции Com_GetEvalSum()... ( aand  25.03.2014 11:22 )
    5(1)
    Добрый день, коллеги. При попытке рассчитать сумму "вычисляемой" комисси по договору программа вываливается на ошибку 18414 (При вызове процедуры заданы неверные параметры).
    Функцию вызываю как описано в документации:
    ComisStr = "$888.00";
    sum = Com_GetEvalSum(ObjectType, ObjectNumber, ComisStr, EvalDate, $0, $0);
    Все параметры определены. В качестве теста параметру ComisStr присваиваю элементарное строковое значение.
    Я предполагал, что именно это значение мне и вернется. Я что-то не так делаю?

    Используется система RS-Loans в связке с RS-Bank 5.50.003.37.
    >> Ответить
    • Развернуть ошибка компиляции ( ive  25.03.2014 16:54 )
      5(1)
      в документации указано следующее:
      Com_GetEvalSum (ObjectType, ObjectNumber, ComisStr, EvalDate, [MinSum], [MaxSum], [CurCode]);
      Процедура предназначена для вычисления суммы комиссии на основе выражения, содержащего спецпеременные (тип суммы комиссии – "Вычисляемая").
      Параметры:
      ObjectType – тип объекта. Параметр имеет тип V_INTEGER.
      ObjectNumber – номер объекта. Параметр имеет тип V_INTEGER.
      ComisStr – выражение, содержащее спецпеременные. Параметр типа V_STRING.
      EvalDate – дата, на которую вычисляется сумма. Параметр типа V_DATE.
      MinSum – минимальная сумма комиссии. По умолчанию параметру установлено значение $0, если ограничения в меньшую сторону нет. Параметр типа V_MONEYL.
      MaxSum – максимальная сумма комиссии. По умолчанию параметру установлено значение $0, если ограничения в большую сторону нет. Параметр типа V_MONEYL.
      CurCode – код валюты, в которой выполняется расчет. Параметр типа V_ INTEGER.
      Возвращаемое значение:
      Процедура возвращает значение типа V_ MONEYL – вычисленную сумму.

      Третьим параметром нужно передавать СТРОКОВОЕ значение, но никак не $888
      >> Ответить
    • Развернуть всё работает ( Sergey V. Mamaev  26.03.2014 05:11 )
      5(1)
      import sbcrdinter;
      var s="$888.00-$88.00";
      msgbox(com_getevalsum(1,2988,s,date(),$0,$0));
      спокойно отрабатывает, выдаёт 800.00
      проверяйте типы указанных параметров
      версия такая же: 5.50.003.37
      >> Ответить