1 (2018-12-27 10:34:28 отредактировано Kolossi)

Тема: getDepoEx

Добрый день !

Столкнулся с проблемой при использовании данной функции.

...
y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal
...

Получаю ошибку несуществующего аргумента (attempt to index a nil value) в момент очистки таблиц при первом за текущие сутки коннекте к серверу.  Дальше работает корректно, все данные из таблицы лимитов получаются, при переконнекте скрипт не вылетает.

Попробовал посмотреть что она в этот момент возвращает
...
y=type(getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2))
...

получил:   bad argument #1 to type (value expected)

Выборки из других таблиц getParamEx, getPortfolioInfoEx работают как и должны круглосуточно.

Возможно это баг разработчиков. Но я не могу придумать как это обойти, кроме как останавливать скрипт на время обновления данных. Подскажите если кого озарит smile

2 (2019-01-09 09:27:09 отредактировано swerg)

Re: getDepoEx

Из описания:

getDepoEx
...
Функция возвращает таблицу Lua с параметрами Таблицы лимитов по бумагам.
В случае ошибки функция возвращает «nil».

Т.е. видимо надо написать как-то так:

depo = getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2)
if depo == nil then
    ... здесь как-то обрабатываем ситуацию "информацию получить не удалось"... например так:
    y = 0
else
    y = depo.currentbal
end

3 (2019-01-10 10:57:27 отредактировано Kolossi)

Re: getDepoEx

Дык так и было. Но скрип вылетал на 10 строке в момент очистки данных таблиц на сервере

--test getDepoEx
is_run=true
function main()
    while is_run do
        go()
        sleep(2000)
    end
end
function go()
    local depo = getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2)
    if depo == nil or type(depo)=="nil" or type(depo)~="table"  then
        message( type(depo),1)
    else
            y = depo.currentbal
    end

end
function OnStop(stop_flag)
    is_run=false
end


Чудесным образом заработало корректно после последнего обновления квика до 7.23.2.5
wink

4

Re: getDepoEx

А до этого какая версия использовалась?
Возможно, исправили какую-то бажину

5

Re: getDepoEx

swerg пишет:

А до этого какая версия использовалась?
Возможно, исправили какую-то бажину

7.23.2.3
Похоже так.

6

Re: getDepoEx

Kolossi пишет:

Но скрип вылетал на 10 строке в момент очистки данных таблиц на сервере

if type(depo)~="table"  then - достаточная проверка