21.12.2005, 14:53 | #1 |
Участник
|
Необходимо написать отчет, в котором отражается численность сотрудников 31 числа каждого месяца, причем вразрезе договорников, внеш совместителей (не полная ставка), внутренних совместителей (показываются только в табеле приказ не оформляем , т.е. определяется только путем просмотра таблицы с табелями - еси есть два раза на одного сотрудника строка со временем штатник, то считаем его совместителем), штатников (оформляем приказ о приеме,первводе ставка 1 по штатному расписанию).
Пытаюсь найти табличку откуда данные тянуть хотя бы для штатников. Смотрю, где хранятся приказы. Есть шапка и recId, по этому рекайди связываются строки. Т.е. получается, что надо смотреть все приказы с сотворения света и лазить в шапку, чтобы получить последний приказ на 31 число и идентифицировать его вид (увольнение или прием). В справочнике Организация на дату считаются количество занятых ставок, оно считается не по головам. Куда посмотреть можно? Для идентификации штатников хочу использовать следующие характеристики: 1. Должен быть приказ на 31 число, при этом последним приказом должно считаться либо прием, либо перевод 2. в приказе должна стоять галка По штатному 3. Ставка = 1 |
|
21.12.2005, 19:35 | #2 |
Участник
|
Цитата:
Постараюсь ответить вечером. Но сразу видно, что постановка задачи неправильная. Отчет должен показывать: 1. ЛИБО численность сотрудников на последний день месяца 2. ЛИБО численность сотрудников на 31 число. Но только для тех месяцев, где есть это 31 число. Скорее всего, вариант 2 - не совсем то, что хотелось. |
|
21.12.2005, 22:33 | #3 |
Участник
|
Есть последнее число месяца. Последнего числа месяца числится столько -то сотрудников. Именно сколько сотрудников в последний день месяца работает.
|
|
22.12.2005, 09:40 | #4 |
NavAx
|
Наверно так. Только это пример для одной организации.
При большем количестве организаций или анализе по подразделенияем надо анализировать контейнер. Код: static void test(Args _args) { EmplTable EmplTable; TransDate TransDate = 22\12\2005; container con; int i; ; while select EmplTable { con = RPayHistory::getOrganizationByDateInterval(EmplTable.EmplId,TransDate,TransDate); if (conlen(con) > 0) i++; } info(strfmt("%1", i)); } В axapta есть интересная формочка в западном функционале: Управление персоналом\Запросы\Статистика\Распределение по сотрудникам Если проанализировать как там все устроено, то можно сделать похожий функционал на россиских данных, принципы одинаковые. [attachment=351:attachment] |
|
22.12.2005, 12:40 | #5 |
Участник
|
А в соответствии с этим методом мне будут показаны еще и сотрудники, которые были уволены 31 числа. Выходит дело все равно выборку самой писать, поскольку меня интересуют только работающие сотр 31 числа
|
|
22.12.2005, 13:39 | #6 |
Участник
|
Извините за занудство, но уволенные 31 числа сотрудники являются работающими 31 числа, т.к. день увольнения является рабочим днем.
|
|
22.12.2005, 14:07 | #7 |
Участник
|
У нас криво приказы оформлялись (евгений). Это неважно.
Вопрос более интерестный для меня сейчас: а как посчитать головы внутренних совместителей, если приказов о приеме мы не оформляли, а отражали это только в табелях, вводя руками в табель раб времени сотрудника. Т.е. я могу определить совместителей, если по табелю прошло 2 строки по одному человеку по одному и тому же тайму. |
|
22.12.2005, 14:14 | #8 |
Участник
|
Если Вы будете считать совместителями всех, у кого в обрабатываемом месяце "по табелю прошло 2 строки по одному человеку по одному и тому же тайму", Вы рискуете зачислить в совместители людей, переводившихся из подразделение в подразделение.
|
|
22.12.2005, 14:35 | #9 |
Участник
|
Мда, блин. Вы правы. Не будет у меня в отчете внутр совместителей. Во всяком случае родить их не получится. А кстати, на них в аксапте должен оформляться приказ о приеме на работу. В 1с оформляется и дается новый номер. А в Аксапте этим пользуются?
|
|
22.12.2005, 14:43 | #10 |
Участник
|
Вообще в Аксапте для внутреннего совместителя заводится новая карточка. В ней в поле "Основной номер сотрудника" указывается код по основной карточке. Получается, наверное, похоже на 1С.
В Вашем случае, если все так запущено, рекомендую завести булевную ставку с типом "Сотрудник" и названием типа "Внутренний совместитель". Потом для этих бойцов можно будет аккуратненько проставить с помощью этой ставки период совместительства. |
|
22.12.2005, 14:46 | #11 |
Участник
|
Я ужу со ставкой предложила, но никто не хочет ставить.
У нас даже проблема с договрниками. Я уже на них забила.Там даже отказываются увольнять договрников, прием делают, а увольнение нема |
|