gifts2017

Исправление расчета остатков отпусков в рабочих днях в ЗУП 2.5.54.1

Опубликовал Алексей Старый (Alex Star) в раздел Программирование - Практика программирования

Если на вашем предприятии ведется учет отпусков не только в календарных днях, но и в рабочих, то Вам сюда

В одном из релизов ЗУП 8.2 господа программисты фирмы 1С поменяли модуль расчета остатков отпусков, возможно это не плохо и грамотно, но как обычно наделали кучу ошибок. В итоге при расчете остатков программа попусту перестала замечать дополнительные отпуска в рабочих днях, это можно проверить выведя например справку по отпуску.

Для временного решения пришлось покопаться в общем модуле ОстаткиОтпусков и внести кое какие изменения, а проще говоря закомментировать.

Ищем Функция ОстаткиОтпусков(ТаблицаДанных) в общем модуле ОстаткиОтпусков, в этой функции есть запрос

со строки 871 комментируем так :

    |ПОМЕСТИТЬ ВТВидыЕжегодныхОтпусков
    |ИЗ
    |    ВТТаблицаСотрудников КАК ТаблицаСотрудников
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыЕжегодныхОтпусков КАК ВидыЕжегодныхОтпусков
    |        ПО (НЕ ВидыЕжегодныхОтпусков.ПометкаУдаления)
    //|            И (ВЫБОР
    //|                КОГДА ТаблицаСотрудников.ВидОсновногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка)
    //|                        И ТаблицаСотрудников.ВидДополнительногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка)
    //|                    ТОГДА ВЫБОР
    //|                            КОГДА ТаблицаСотрудников.ВидЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка)
    //|                                ТОГДА ТаблицаСотрудников.СпособРасчетаОтпусков = ВидыЕжегодныхОтпусков.СпособРасчетаОстаткаОтпуска
    //|                            ИНАЧЕ ТаблицаСотрудников.ВидЕжегодногоОтпуска = ВидыЕжегодныхОтпусков.Ссылка
    //|                        КОНЕЦ
    //|                ИНАЧЕ ТаблицаСотрудников.ВидОсновногоОтпуска = ВидыЕжегодныхОтпусков.Ссылка
    //|                            И НЕ ТаблицаСотрудников.ИсключитьОсновнойОтпуск
    //|                        ИЛИ ТаблицаСотрудников.ВидДополнительногоОтпуска = ВидыЕжегодныхОтпусков.Ссылка
    //|            КОНЕЦ)
    |        ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК НачисленияОсновногоОтпуска
    |        ПО (ВЫБОР
    |                КОГДА ТаблицаСотрудников.ПорядокРасчетаОсновногоОтпуска = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетаОтпуска.ПоШестидневке)
    |                    ТОГДА НачисленияОсновногоОтпуска.Ссылка = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка)
    |                ИНАЧЕ НачисленияОсновногоОтпуска.Ссылка = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни)
    |            КОНЕЦ)

 

а также со строки 953 комментируем так :

 

    |            ПО ОстаткиОтпусков.Ссылка.Сотрудник = ОстаткиОтпусковСрез.Сотрудник
    |                И ОстаткиОтпусков.ВидЕжегодногоОтпуска = ОстаткиОтпусковСрез.ВидЕжегодногоОтпуска
    |                И ОстаткиОтпусков.Ссылка = ОстаткиОтпусковСрез.Ссылка
    |        ПО ТаблицаСотрудников.Сотрудник = ОстаткиОтпусков.Ссылка.Сотрудник
    //|            И (ВЫБОР
    //|                КОГДА ТаблицаСотрудников.ВидОсновногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка)
    //|                        И ТаблицаСотрудников.ВидДополнительногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка)
    //|                    ТОГДА ВЫБОР
    //|                            КОГДА ТаблицаСотрудников.ВидЕжегодногоОтпуска = ЗНАЧЕНИЕ(Справочник.ВидыЕжегодныхОтпусков.ПустаяСсылка)
    //|                                ТОГДА ТаблицаСотрудников.СпособРасчетаОтпусков = ОстаткиОтпусков.ВидЕжегодногоОтпуска.СпособРасчетаОстаткаОтпуска
    //|                            ИНАЧЕ ТаблицаСотрудников.ВидЕжегодногоОтпуска = ОстаткиОтпусков.ВидЕжегодногоОтпуска.Ссылка
    //|                        КОНЕЦ
    //|                ИНАЧЕ ТаблицаСотрудников.ВидОсновногоОтпуска = ОстаткиОтпусков.ВидЕжегодногоОтпуска
    //|                            И НЕ ТаблицаСотрудников.ИсключитьОсновнойОтпуск
    //|                        ИЛИ ТаблицаСотрудников.ВидДополнительногоОтпуска = ОстаткиОтпусков.ВидЕжегодногоОтпуска
    //|            КОНЕЦ)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Сотрудник,

 

После этих действий сохраняем конфигурацию и проверяем остатки отпусков в рабочих днях.

Надеюсь в будущих релизах 1С исправит эту ошибку, а пока жду ваших предложений по решению данного вопроса, может кто лучше сделает?

Важно: В Справочнике Виды ежегодных отпусков должен быть только 1 вид отпуска с флажком Предоставлять отпуск всем сотрудникам

См. также

Подписаться Добавить вознаграждение

Комментарии

1. NPMar (NPMar) 08.08.12 09:02
2. Cristal725 12.09.12 11:12
Спасибо большое,что обратили внимание на эту ситуацию. Очень мало информации в интеренте по этому поводу.
3. Cristal725 12.09.12 11:21
И еще чем грозит то, что решение временное. Ну кроме того, что при обновлениях конфу придется постоянно подправлять.
4. Алексей Старый (Alex Star) 12.09.12 21:02
(2) Cristal725, Обратишь тут, когда на всём заводе остатки отпусков поменялись, а уж расчет резерва отпусков что показывал... Самое интересное 1Сники сами на это не отреагировали, прошло обновление, а всё так-же глючно осталось, пришлось опять комментить...
5. Cristal725 13.09.12 08:50
А у нас беда: в Справочнике Виды ежегодных отпусков 2 вида отпуска с флажком Предоставлять отпуск всем сотрудникам. Как допилить?
6. Алексей Старый (Alex Star) 13.09.12 18:07
(5) Cristal725, Я просто убрал один флажок, этот вид добавился с каким то обновлением, и у нас нет на предприятии этого вида отпуска. А что касается допила, то по этому это решение и является временным, потому что разбираться времени нет, как только 1С исправит косяки так сразу эту галочку можно и поставить, только это в корне не правильно, т.к. у нас только основной отпуск всем дается. Жаль что больше никто не предложил решения, а так хотелось посмотреть :(
7. Гульнара Р (Эсти) 16.03.15 07:59
спасибо. полезная статья
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа