Runtime error 216 in G_zarpl.dll

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Runtime error 216 in G_zarpl.dll

Сообщение Irina_ »

Здравствуйте.
Написала отчет на VIP. Использовала табельные функции WT_GHBD и WT_GetDaysBwDates для нахождения часов и дней по графику и фактически. При выборочной проверке все было нормально. Однако обнаружила проблему по принятым в периоде , за который нахожу нужные дни и часы: в табеле дни и часы по графику показаны в зависимости от факта наличия повторного трудоустройства, т.е. по сотрудникам, в истории увольнений которых есть записи, фонд показан за весь месяц, а по сотрудникам, у которых нет записей в истории увольнений, фонд показан с учетом даты приема. Мне же для работы нужен был фонд за целый месяц. Поэтому для принятых в периоде, с которым работаю, решила воспользоваться функциями ChaGR(M,Y,R) и DniGR(M,Y,R). Компиляция прошла без ошибок, но при запуске интерфейса в Галактике получаю ошибку «Runtime error 216 (rtl: попытка обращения к некорректному дескриптору) in G_zarpl.dll at 00090BB4». Если комментирую эти функции, то ошибки нет. Может кто-нибудь подскажет, что сделать.
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Runtime error 216 in G_zarpl.dll

Сообщение KATZ »

Возможно, этим функциям для работы требуется какой-нибудь инициализированный контекст, который при расчете зарплаты есть, а в вашем интерфейсе его нет. Попробуйте до этих функций вставить InitWorkingTable, вдруг да поможет. А если нет, то не теряйте время на поиск причины, просто сделайте свой аналог. Всего одна запись из таблицы KLNDR требуется, чтобы дни и часы по нужному графику за нужный месяц посчитать, и строчек 5 кода.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Runtime error 216 in G_zarpl.dll

Сообщение edward_K »

1. Если нет записи в истории - то считается с даты приема - эт нормально. Или вам нужны часы по графику? В табеле чаго в плановых часах ?
2. Те функции предназначены для расчета ЗП и без IntInit не работают(+еще может что нибудь).
3. Проще для часов по графику написать свою функцию или поискать стандартный объект. Но табельные показывают с учетом переходов - так что лучше отталкиваться от них.
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Runtime error 216 in G_zarpl.dll

Сообщение Irina_ »

IntInit и InitWorkingTable использую, ведь работаю с WT_GHBD и WT_GetDaysBwDates.
To KATZ. Я уже посмотрела KLNDR. Насчет 5 строчек кода думаю Вы погорячились. Придется считать не только дни, но часы и минуты. Могут возникнуть проблемы при наличии переходов в межпериод. И по правде говоря, не хочется изобретать велосипед, если есть готовые функции. Но, если проблема не решится, то придется.
To EDWARD_K. В том то и дело, что в табелях по принятым в нужном периоде показано по-разному. Например, фонд за 07.2014 - 175 часов. Сотрудники приняты в 07.2014, не с 1-го числа. Пусть оба отработали за месяц 100 часов. У одного в табеле по плану вижу 175 часов, у другого – 100. Мне надо 175. Т.о. при использовании табельных функций с одним сотрудником проблемы нет, получаю то, что надо, а с другим – проблема.
Ответить