Расчет дней компенсации за неиспользованный отпуск в приказе об увольнении (ЗиК)

Обработки - Обработка документов

54
Процедура для автоматического заполнения поля "дни компенсации" в документе "Приказ об увольнении" типовой конфигурации "Зарплата и Кадры. Редакция 2.3" (проверено в релизе 283) .

В новой версии:
- учитываются исправления, сторнирования и пересечения документов-отклонений;
- учитываются все периоды, исключаемые из стажа для подсчета отпуска по статье 121 ТК (прогулы, отпуска по уходу за ребенком, отпуска за свой счет).
Инструкция:
1. Вставить текст процедуры СчитатьДниКомпенсации() в модуль формы документа ПриказОбУвольнении.
2. Вставить вызов процедуры СчитатьДниКомпенсации() в:
- текст процедуры ВводНового() модуля формы;
- реквизит диалога Сотрудник;
- реквизит диалога ДатаУвольнения.
54

Скачать файлы

Наименование Файл Версия Размер
-
.1199459903 7,19Kb
25.09.09
474
.1199459903 7,19Kb 474 Скачать бесплатно

См. также

Комментарии
Сортировка: Древо
1. Boroda 90 01.02.08 18:43 Сейчас в теме
Обработка очень понравилась, но... к сожалению, неправильно расчитывает дни компенсации, если у сотрудников большая задолженность по отпускам ( не ходили в отпуск более года - 2,3). У меня на одном предприятии такая картина сложилась, и когда применил эту обработку, то количество дней не совпало с реальным, рассчитанным вручную (показала меньше дгней, чем надо).
2. Antia 816 01.02.08 20:26 Сейчас в теме
Хотелось бы конкретный пример, чтобы ошибку можно было найти и обезвредить: дата приема сотрудника, какие отклонения были.

А пока можно на демо-базе проверить.
Например, Антонов принят на работу 01.01.06. Делаем приказ об увольнении 01.02.08. Получаем 58.33, что правильно, т.к. он не был в отпуске 2 года и 1 месяц.
3. irisha 04.02.08 04:01 Сейчас в теме
Не могу скачать обработку!!!!
4. Antia 816 04.02.08 07:09 Сейчас в теме
5. irisha 11.02.08 04:09 Сейчас в теме
Может у меня не все настроено?! Жму на обработу - появляется слово Скачать. и все. Дальше никуда не идет...
6. Antia 816 11.02.08 18:12 Сейчас в теме
7. medik1976 22.03.08 16:56 Сейчас в теме
я что то не понял а где обработка ?????
medik1976@mail.ru
8. buh 07.05.08 01:11 Сейчас в теме
А рассчитывает все же не верно. Вот пример: Сотрудник увольняется 08.05.08. Начислить компенсацию нужно за период с 06.06.07 по 08.05.08, т.е. 28 дней. Ваша обработка считает почему-то 56, т.е. в два раза больше.
9. Antia 816 10.05.08 12:41 Сейчас в теме
Открыл демо-базу ЗиК. Сделал приказ о приеме на работу Лукина Ю.Н. с 06.06.07. Делаю приказ об увольнении с 08.05.08. Обработка выдает 28 дней, т.е. правильно.
10. buh 11.05.08 03:09 Сейчас в теме
Сейчас скачал свежую обработку. Опять считает неверно, т.е. 56 дней!!!
Послушайте, я же не придумываю это. Говорю что есть. Значит в некоторых ситуациях обработка отрабатывает некорректно.
И еще. Вы бы попробовали ситуацию другую. Т.е. приказ о приеме, не 06.06.07, а раньше, потом отпуск, а вот потом уже увольнение. Может здесь что-то некорректно отрабатывает?
11. buh 11.05.08 03:15 Сейчас в теме
Вот более подробно:
Сотрудник принят на работу 06.06.05.
Отпуск за период 06.06.05 - 05.06.06 отгулял с 01.08.06 по 28.08.06
Отпуск за период 06.06.06 - 05.06.07 отгулял с 24.12.07 по 26.01.08
08.05.08 - увольняется.
Вот здесь обработка и считает 56 дней вместо 28.
12. buh 11.05.08 03:35 Сейчас в теме
Посмотрел по коду и отладчику. Количество отработанных месяцев начинает считаться с даты приема, что неверно, т.к. человек гулял свои отпуска.
Поэтому когда Вы делаете приказ о приеме 06.06.07 у Вас все корректно отрабатывает. А вот шаг в сторону и .... ошибка. Желательно исправить. Полезная вещь
13. Antia 816 11.05.08 17:30 Сейчас в теме
Опять взял демо-базу. Принял Лукина на работу 06.06.05. Сделал НачислениеОтпуска с 01.08.06 по 28.08.06. Сделал НачислениеОтпуска с 24.12.07 по 26.01.08. Увольняю 08.05.08 - получаю 28 дней компенсации.

Да, подсчет начинается с даты приема. Но ранее использованные отпуска потом учитываются в строках:
// Вычитаем использованные ранее дни отпуска
ДнейКомпенсацииОтпуска = Месяцев*28/12 - ДнейОтпуска7 - ДнейОтпуска6*28/24;
14. buh 12.05.08 04:51 Сейчас в теме
Ну вот что в отладчике дает эта формула, для того случая, который я описал Выше:
ДнейКомпенсацииОтпуска = 36*28/12 - 28 - 0 = 56.
Давайте все же разберемся, в чем может быть дело...
15. buh 12.05.08 08:01 Сейчас в теме
А может быть дело в том, что на самый первый отпуск документа Начисление отпуска нет, т.к. база новая и есть только приказ на отпуск? Поэтому и не учитывается этот отпуск как отгулянный? Если так, то, на мой взгляд, целесообразно добавить выборку и по приказам на отпуск, а не только по начислению отпуска
16. Antia 816 12.05.08 08:20 Сейчас в теме
Да, ПриказПоОтпуску никак не учитывается. Потому что он в начислениях не участвует и в некоторых организациях им совсем не пользуются.
17. Antia 816 12.05.08 12:34 Сейчас в теме
Итак, проблема не в моем алгоритме.
Проблема в том, что в Вашей базе учет ведется не за весь период. И надо как-то сообщить ЗиК об отпусках до начала ведения учета в программе.
Вы для этого решили ввести приказы на отпуск. Другим такие приказы вводить будет лень и они, например, введут в справочнике сотрудников число дней отпуска до начала учета в программе. Или что-то еще. Сомнительно, что можно сделать универсальную обработку для всех этих случаев. Проще взять мою обработку за основу и настроить на нюансы конкретного предприятия.
Благодарю Вас за плодотворное обсуждение.
18. buh 12.05.08 16:10 Сейчас в теме
На самом деле проблема все же в алгоритме, т.к. даже у 1С в их документах универсальность все же некая прослеживается. По крайней мере 1С делает выборку по всем возможным документам, а не по какому-то одному конкретному. Да и если Вы добавите выборку по всем возможным документам отпуска, то ценность и универсальность Вашего алгоритма только повысится. Конечно, на всех не угодишь, но подавляющее большинство организаций все же когда нибудь начинают новую базу, оставляя приказы. Приказы заводить все равно нужно, т.к. иначе не будет правильно формироваться Т2. Ну да дело ваше, просто, повторюсь, добавив и эту выборку ваш алгоритм только выиграл бы...
19. GSokolov 14.05.08 09:16 Сейчас в теме
Идея отличная! Замечания на будущее:
1) Не учитывается, что при наличии инвалидности продолжительность отпуска 30 дней, а не 28.
2) Отбор записей по ЖР проблематичен из-за того, что ЖР зачастую не отражает весь период работы сотрудника и, бывает, его "чистят" для уменьшения размера базы. Перспективней использовать для поиска отпусков документы, по аналогии с алгоритмом формы Т-2 ЗиК, тогда для корректной работы за периоды, когда расчет в ЗиК не велся, достаточно ввести задним числом приказы на отпуск, отражающие условия сотрудников, принятых до начала работы в ЗиК.
3) после расчета не мешает перерисовать видимость измененных реквизитов в форме.
20. isn 13 16.05.08 13:43 Сейчас в теме
еще одна проблема- если отпуск начислялся документом ВводЛюбогоРасчета - вываливается с ошибкой на "поле агрегатного объекта не обнаружено" т.к. видрасчета в этом документе нет.
21. Antia 816 17.05.08 09:43 Сейчас в теме
2 isn
Документа ВводЛюбогоРасчета в типовой ЗиК нет. Если вы ЗиК переделываете, то и обработку исправляйте.
Serg-48; Abadonna; +2 Ответить
22. Antia 816 17.05.08 10:04 Сейчас в теме
2 Gsokolov
1) Спасибо за подсказку. Отпуск 30 дней не только у инвалидов, но и у пожилых людей. Отпуск 31 день у работников до 18 лет. Пока не совсем понимаю, как учесть наступление инвалидности в периоде подсчета стажа. Подумаю.
2) В первой версии обработки подсчет шел по документам. Во второй я от документов отказался из-за трудоемкости учета исправлений. Подумаю еще, поглядывая в сторону Т-2. Но быстро не получится - пока нет ни времени, ни клиента, которому это нужно...
3) Зачем?
23. Antia 816 18.08.08 19:54 Сейчас в теме
Учтены изменения по отпускам за свой счет, внесенные в ТК 22.07.08.
24. Solo1 12.11.09 09:28 Сейчас в теме
Установила обработку. При попытке создать приказ об увольнении вылетает ошибка - не найден модуль обработки Считать дни компенсации (606). Что не так сделала, если у всех работает?
26. Antia 816 26.11.09 17:16 Сейчас в теме
(24) Наверное, пункт 1 инструкции не выполнили - текст процедуры СчитатьДниКомпенсации() в модуль формы документа не вставили. Процедура должна быть где-нибудь в начале модуля, раньше, чем она вызывается.
25. Svetlana_E 24.11.09 20:10 Сейчас в теме
Плюс поставила, но! так и не учтено, что длина отпуска м.б. не 28 дней. :(
27. lushka712 27.01.10 14:17 Сейчас в теме
Не могу установить обработку выдает ошибку
СчитатьДниКомпенсации<<?>>();
{Документ.ПриказОбУвольнении.Форма.Модуль(618)}: Процедура не обнаружена (СчитатьДниКомпенсации)
Подскажите,как ее устранить
28. pencil 20.11.10 15:58 Сейчас в теме
Большое спасибо, очень пригодилось.
29. hate86 25.09.11 09:30 Сейчас в теме
Svetlana_E пишет:
так и не учтено, что длина отпуска м.б. не 28 дней.

В принципе, на сколько я понимаю, можно добавить на форму поле, в которое "ручками" вводится кол-во дней отпуска, если оно отличное от 28, передается в переменную N, и в формуле
Antia пишет:
ДнейКомпенсацииОтпуска = Месяцев*28/12 - ДнейОтпуска7 - ДнейОтпуска6*28/24;

"28" заменяется на эту переменную.
Если не права, подправьте;-) На досуге попробую провернуть сей финт)
30. safia-med 03.09.14 12:12 Сейчас в теме
31. Anzhey 16 17.07.18 12:21 Сейчас в теме
Оставьте свое сообщение