0
Отвечен

Табель по совместительству

Роман Шивалов 7 лет назад в Прочее обновлен Вячеслав Шинкарев (менеджер разработки) 7 лет назад 6

Здравствуйте.

Как можно прочитать табель по совместительству.

Я написал алгоритм, который учитывает совместительства. И всё бы хорошо, но не могу посчитать количество рабочих дней по табелю. Причем количество нормативных дней считается.

Использую функцию skoljko.

Вывел в строку табель calm. Для основного места работы показывает нормальный табель. Для совместительства показывает одни "n". Табель заполнен что для обоих должностей.
Подскажите, пожалуйста, в чем может быть дело.

Script

Ответ

Ответ

Поставьте s50(mrasch) перед double fakt = 0.;

ХОРОШО, МНЕ ПОНРАВИЛОСЬ
Оценка удовлетворенности от Роман Шивалов 7 лет назад
На рассмотрении

О каком алгоритме идет речь?
К тому моменту, когда выполняется расчет вида (если мы говорим об алгоритме расчета вида), в память уже загружен нужный табель и никаких хитростей делать не надо для его получения. При условии конечно, что у этого вида код совместительства не забыли прописать.

К сожалению, речь об авансах.

Вот существенный код, который вызываю:


    var Src=GetCommonProp(CMN_SRC_MASS_LS);        

    var ts1 = CreateObject("TempCommonSrc");
    ts1.TempCommonSrcInitial(CMN_SRC_C_WORK);
    SetCommonProp(CMN_SRC_C_WORK,Src);

    var ts2 = CreateObject("TempCommonSrc");
    ts2.TempCommonSrcInitial(CMN_SRC_INT_LS);
    SetCommonProp(CMN_SRC_INT_LS,Src);

    var ts3 = CreateObject("TempCommonSrc");
    ts3.TempCommonSrcInitial(CMN_SRC_COUNT_LS);
    SetCommonProp(CMN_SRC_COUNT_LS,Src);

    s50(mrasch);

   

    int row_avans = poisk_row(201,0,data,0);

    var Prop=GetPropOfCod(GetCode(row_avans));
    var Combine=CreateObject("TmpCurCombine");
    if (Prop.GetCombine()!=GetGeneralCombineLS())
        Combine.Init(Prop.GetCombine());

    double fakt = 0.;
    double norm = 0.;
    double tmp = 0.;
    skoljko(tmp,data,1,15,rsimv,calm,1); fakt += tmp;
    skoljko(tmp,data,1,15,simv_nr,calm,1); fakt += tmp;
    skoljko(norm,data,1,countday,simv_nr,calmras,cht);
    tmp = dney_v_tab(rsimv,calm,1,15)+dney_v_tab(simv_nr,calm,1,15);

                                                                                                                                 // для совместительства:
    AmbaMessageBox("fakt = " + to_string(fakt),"",MB_OK|MB_ICONINFORMATION,0);    // рабочих часов = 0
    AmbaMessageBox("norm = " + to_string(norm),"",MB_OK|MB_ICONINFORMATION,0);    // норма в часах - считает правильно
    AmbaMessageBox("tmp = " + to_string(tmp),"",MB_OK|MB_ICONINFORMATION,0);    // рабочих дней = 0
    AmbaMessageBox("calm = " + to_string(calm),"",MB_OK|MB_ICONINFORMATION,0);    // табель "nnnnnnnnn" и т.д.
                                                                                                          // для основного места работы всё хорошо



Перед skoljko() нужно вызвать s50(mrasch);

Ответ

Поставьте s50(mrasch) перед double fakt = 0.;

Сервис поддержки клиентов работает на платформе UserEcho