|
ЗУП 3.1. Командировка не учитывается при расчете аванса | ☑ | ||
---|---|---|---|---|
0
Антиквар
09.06.19
✎
10:07
|
Всем привет!
У нас аванс считается расчетом за первую половину месяца. И если в это время сотрудник находился в командировке, то дни командировки исключаются из расчета аванса. Бухгалтеров обязали выплачивать аванс с учетом дней командировки, т.е. чтобы при расчете аванса командировка была как явка на работу. Кучу нормативных актов под нос сунули, в общем пришли к выводу, что командировка - это не причина уменьшать аванс. Я так понимаю стандартными средствами это не настроить? Кто-нибудь решал такую проблему? |
|||
1
SleepyHead
гуру
09.06.19
✎
10:25
|
Регистрируй неявку на этот период по невыясненной причине, после расчёта аванса удаляй.
|
|||
2
Антиквар
09.06.19
✎
10:30
|
(1) А в чем смысл неявки? Неявка не уменьшает аванс? Но командировка то заведена уже в 1С к этому времени. Аванс 24-го числа
|
|||
3
Антиквар
09.06.19
✎
11:03
|
Попробую поставить у командировки скрытую галочку "Начисляется за первую половину месяца", может прокатит...
|
|||
4
Фрэнки
09.06.19
✎
11:48
|
Т.е тебе нужно, чтобы Аванс начислялся за все дни, даже если эти дни уже оплачиваются Командировкой?
А оплата Командировки включена в Заработную плату, так? И получается, если командировка есть, и она попала на первую половину месяца, то в Аванс ничего не попадает? |
|||
5
Фрэнки
09.06.19
✎
11:48
|
И в самом тяжелом случае возникает проблема, что Аванс платить нужно, а там сумма "ноль"
|
|||
6
Фрэнки
09.06.19
✎
11:50
|
Перед расчетом Аванса у таких работников можно индивидуально устанавливать способ расчета Аванса, который не будет учитывать неявки.
|
|||
7
Akela has missed
09.06.19
✎
12:07
|
(0) Как вариант можно настроить ВР "Доплата до оклада в командировке" https://buh.ru/articles/documents/52450/ и сказать что он начисляется при расчете первой половины месяца.
|
|||
8
Фрэнки
09.06.19
✎
12:22
|
(7) кстати, в статье не достает описаний для 3.1.9 - если делать так, как в статье, то доплата не работает
Ну и сам по себе смысл привязывать Аванс к доплате до Оклада... Сама доплата не будет соответствовать сумме Аванса и по способы выплаты эту доплату также нужно привязывать к выплате с зарплатой, как и саму командировку |
|||
9
Akela has missed
09.06.19
✎
12:25
|
(8) Смысл в том, что командировка вообще не начисляется, и поэтому сумма доплаты всегда будет равна сумме оклада, который мог бы быть за время командировки.
|
|||
10
Akela has missed
09.06.19
✎
12:31
|
А чего не хватает для 3.1.9? У меня все работает.
|
|||
11
Фрэнки
09.06.19
✎
12:43
|
(10) ну сегодня базы перед глазами нет, но я на неделе настраивал доплату до фактического заработка и по этой статье и той, что на ИТС расписано. Не получилось.
|
|||
12
SleepyHead
гуру
09.06.19
✎
16:35
|
(2) Да ни в чем, невнимательно прочитал вопрос. Ответ не читать, он неправильный.
|
|||
13
SleepyHead
гуру
09.06.19
✎
16:37
|
(11) Аванс + командировка = двойная оплата за одно и то же время, imho.
Аванс - оплата по окладу, а командировка за те же дни оплата по среднему. Тот случай, когда задача не имеет решения ввиду ее неправильной постановки. |
|||
14
Фрэнки
09.06.19
✎
16:59
|
(13) А как правильно?
Есть требование по выплатам заработной платы дважды в месяц. Есть командировка, с длительностью в несколько дней. Выплата командировочных установлена "С заработной платой" Стоит срок выдачи Аванса. С расчетом по отработанным дням. В расчет аванса пойдет сумма меньше или даже не пойдет ничего, т.к. "К" просто не включена в отработанные дни. А можно выдать Аванс и при выплате Зарплаты остаток взаиморасчетов. |
|||
15
Антиквар
09.06.19
✎
22:10
|
(14) Всё верно. Именно так и надо.
(7) Спасибо, почитаю статью. Я ещё попробую что написал в (3), по-моему на эту галочку всё завязано и ничего она не должна испортить, если поставить её для командировки. |
|||
16
Фрэнки
09.06.19
✎
23:16
|
все-таки самое простое - изменить способ расчета Аванса для каждого такого работника, которому посчастливилось оказаться в достаточно длительной командировке. Кстати, можно для таких случаев и в допсоглашение к тд вписать соответствующую оговорку, которая будет оправдывать завышенный размер аванса или немного заниженный.
|
|||
17
Антиквар
09.06.19
✎
23:26
|
(16) Думаю бухгалтера на это не согласятся. У нас очень много сотрудников и очень много командировок. А тут вручную отслеживать, менять аванс, затем не забыть вернуть. А некоторые сотрудники могут чуть ли не каждый месяц в командировки ездить...
|
|||
18
Фрэнки
09.06.19
✎
23:35
|
(17) его не нужно "забыть вернуть"
Уточни у своих бухгалтеров из каких соображений они устанавливали сотрудникам именно этот способ расчета аванса. Вангую, что такое состояние аванса их устроит точно также, как и то, которое они прописали ранее. Я от них обычно слышу, что есть месяц Январь и выплатить за период 1 - 15 января половину оклада у них какой-то кризис. Следующий кризис - 8 марта. Майские праздники и меньше всего их заботит Июнь и Ноябрь почему-то. |
|||
19
Dmitriy_
Kolesnikov 10.06.19
✎
04:09
|
Я решал эту задачу в 3.1.7, продолжает работать в 3.1.8.
Никакие галочки вам не помогут. Дорабатывал МенеджерРасчетаЗарплаты. И аванс выплачиваем из расчета, как будто сотрудник эти дни не в командировке. |
|||
20
SleepyHead
гуру
10.06.19
✎
05:35
|
(14) А разве правильно выдавать зарплату за 1 половину месяца, если человек ее не заработал?
|
|||
21
Провинциальный 1сник
10.06.19
✎
06:25
|
Вообще надо законодательно отменить выплату зарплаты "каждые полмесяца", это абсурд, когда расчетный период месяц. А про аванс ввести сточку "выплачивается в сроках и размерах по соглашению между работником и работодателем, но не выше размера среднемесячной зарплаты".
|
|||
22
Фрэнки
10.06.19
✎
09:01
|
(20) (вкл шутка) Не, я не против - зачем вообще что-то выплачивать работникам, тем более, что командировка - это наверное такой особый вид отпуска или даже не отпуска, а прогул это самый натуральный.
(откл шутка) Хотя... например, Отпускные не просто положено выплачивать отдельной ведомостью, а даже в строго оговоренный срок... несколько дней до его начала, а не в какое-то другое удобное работодателю время. Вообще, внутри оформления командировки есть переключатель, на способ ее оплаты (в Зарплату или отдельной ведомостью) Можно предположить, что по задумке разработчиков в этом как раз случае этот переключатель нужно применять. Но это все равно не до конца продумано, имхо. |
|||
23
El_Duke
гуру
10.06.19
✎
09:32
|
(0) Не осилил в чем проблема
В доке Командировка есть поле Выплата, установите его в значение С авансом или В межрасчетный период и можете выплачивать когда вам хочется. Нафига извращаться с малопонятными способами ? |
|||
24
Антиквар
10.06.19
✎
09:47
|
(19) "Никакие галочки вам не помогут"
Да, уже проверил. Сделал как хотел в (3) - не получилось. Как я понял, кроме флажка "Начисляется за первую половину месяца" у вида расчета не должен быть заполнен реквизит "Вид документа". Но у командировки этот реквизит автоматически стоит "Командировка" и очищать его нельзя. "Дорабатывал МенеджерРасчетаЗарплаты." - я пока не нашел где в коде исправления вносить. Не подскажете? Правда у нас 3.1.5 ещё. |
|||
25
Антиквар
10.06.19
✎
10:09
|
(23) Так то вроде логично и красиво. Главное в командировках до аванса ставить выплату "в аванс", а после аванса "в зарплату".
В итоге аванс не учитывает командировку, но сама командировка тоже выплачивается. Т.е. всё прозрачно и красиво. Я эту тему задвинул тоже, но что-то не рассматривают этот вариант, не знаю почему у нас уперлись, что выплачивать командировку надо с зарплатой, может какими-то локальными актами это определяется и не хотят менять... Может другие сложности... |
|||
26
Антиквар
10.06.19
✎
10:10
|
Есть ещё такая мысль - не проводить командировки до даты аванса :)
По-моему это самое простое, чтобы вообще ничего не менять. |
|||
27
Фрэнки
10.06.19
✎
10:19
|
(26) в смысле, для оформления командировок используется роль Кадровика. Этой роли им вполне хватает, чтоб распечатать нужные листы.
Затем расчетчики проводят их только когда уже близок срок расчетов Начисления ЗП за весь месяц. |
|||
28
El_Duke
гуру
10.06.19
✎
10:28
|
(25) Резьба по коре дуба - большое и сложное искусство
В вашем случае корой выступает верхний слой мозгового вещества постановщика задачи из (0) В конфе есть типовой готовый инструмент для решения задачи, но нет же, душа требует изврата ! Соболезную коллега, резец вам в руки. Воспользоваться им придется, ибо реализация хотелки из (0) приведет к постоянным перерасчетам начислений. |
|||
29
Dmitriy_
Kolesnikov 10.06.19
✎
10:44
|
Вот что нашел, если чего-то не хватает - сообщите. Делал год назад, сейчас просто скопировал, не вникая.
Общий модуль РасчетЗарплатыРасширенныйПереопределяемый // Процедура предназначена для добавления строк начислений зарплаты сотрудникам. // Выполняется при выявлении начислений, составляющих оплату труда (при начислении зарплаты за месяц). // // Параметры // - МенеджерВременныхТаблиц, содержащий ВТСотрудникиПериоды с полями Сотрудник, Организация, ДатаНачала, ДатаОкончания. // - ДополнительныеНачисления - таблица значений с полями // * Сотрудник // * Организация // * Начисление // * ДатаНачала // * ДатаОкончания // Процедура ЗаполнитьДополнительныеНачисленияЗарплаты(МенеджерВременныхТаблиц, ДополнительныеНачисления) Экспорт // Колесников 14.08.2018 - ЗИ от Задонских - в аванс должны попадать командировки и учебные отпуска // Исправлено 17.08.2018 Запрос = Новый Запрос("выбрать * из ВТНастройкиРасчета"); Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; выборка = Запрос.Выполнить().Выбрать(); Если выборка.НайтиСледующий("ПерваяПоловинаМесяца", "Параметр") и выборка.Значение тогда //выборка.НайтиСледующий("ДатаНачала", "Параметр"); //Запрос.УстановитьПараметр("ДатаНачалаПериода", Выборка.Значение); //выборка.НайтиСледующий("ДатаОкончания", "Параметр"); //Запрос.УстановитьПараметр("ДатаОкончанияПериода", Выборка.Значение); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | НачисленияУдержанияПоСотрудникам.Сотрудник КАК Сотрудник, | НачисленияУдержанияПоСотрудникам.Организация КАК Организация, | НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК Начисление, | ВЫБОР | КОГДА НачисленияУдержанияПоСотрудникам.ДатаНачала >= ВТСотрудникиПериоды.ДатаНачала | ТОГДА НачисленияУдержанияПоСотрудникам.ДатаНачала | ИНАЧЕ ВТСотрудникиПериоды.ДатаНачала | КОНЕЦ КАК ДатаНачала, | ВЫБОР | КОГДА НачисленияУдержанияПоСотрудникам.ДатаОкончания <= ВТСотрудникиПериоды.ДатаОкончания | ТОГДА НачисленияУдержанияПоСотрудникам.ДатаОкончания | ИНАЧЕ ВТСотрудникиПериоды.ДатаОкончания | КОНЕЦ КАК ДатаОкончания, | НачисленияУдержанияПоСотрудникам.ДокументОснование КАК ДокументОснование |ИЗ | РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСотрудникиПериоды КАК ВТСотрудникиПериоды | ПО НачисленияУдержанияПоСотрудникам.Организация = ВТСотрудникиПериоды.Организация | И НачисленияУдержанияПоСотрудникам.Сотрудник = ВТСотрудникиПериоды.Сотрудник | И НачисленияУдержанияПоСотрудникам.ДатаОкончания >= ВТСотрудникиПериоды.ДатаНачала | И НачисленияУдержанияПоСотрудникам.ДатаНачала <= ВТСотрудникиПериоды.ДатаОкончания |ГДЕ | (НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОплатаКомандировки) | ИЛИ НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ОплатаПоСреднемуЗаработку)) | И (НачисленияУдержанияПоСотрудникам.НачислениеУдержание.ВидДокументаНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыДокументовНачисления.Командировка) | ИЛИ НачисленияУдержанияПоСотрудникам.НачислениеУдержание.ВидДокументаНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыДокументовНачисления.ОплатаПоСреднемуЗаработку)) | И НачисленияУдержанияПоСотрудникам.Сторно = ЛОЖЬ | И НЕ НачисленияУдержанияПоСотрудникам.ДокументОснование ЕСТЬ NULL | И НачисленияУдержанияПоСотрудникам.НачислениеУдержание.НачисляетсяПриРасчетеПервойПоловиныМесяца | |УПОРЯДОЧИТЬ ПО | Сотрудник, | Начисление |АВТОУПОРЯДОЧИВАНИЕ"; тзНУ = Запрос.Выполнить().Выгрузить(); для каждого стрНУ из тзНУ цикл стрДН = Неопределено; струкОтбор = новый структура("Сотрудник, Организация, Начисление", стрНУ.Сотрудник, стрНУ.Организация, стрНУ.Начисление); масСтрДН = ДополнительныеНачисления.НайтиСтроки(струкОтбор); НачислениеПересекаетсяСИмеющимся = ложь; для каждого стрДН из масСтрДН цикл Если стрНУ.ДатаНачала <= стрДН.ДатаОкончания и стрНУ.ДатаОкончания >= стрДН.ДатаНачала тогда //хотя бы один день пересекается НачислениеПересекаетсяСИмеющимся = истина; Прервать; КонецЕсли; КонецЦикла; Если НЕ НачислениеПересекаетсяСИмеющимся тогда стрДН = ДополнительныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(стрДН, стрНУ); КонецЕсли; КонецЦикла; КонецЕсли; // Конец Колесников 14.08.2018 // // // КонецПроцедуры |
|||
30
Антиквар
10.06.19
✎
12:24
|
(27) Но если командировка сделана только кадровиком, то аванс ведь начисляется полностью? Аванс уменьшается, если командировка проведена расчетчиком, так?
|
|||
31
Антиквар
10.06.19
✎
12:24
|
(29) Нашел эту процедуру, она вообще пустая в ЗУПе. Интересно, спасибо, посмотрю.
|
|||
32
El_Duke
гуру
10.06.19
✎
13:27
|
(31) Следующим этапом в реализации сего чуда будет такой
Из кабинета расчетчика доносится страшный вопль "Ааааааааа, у Сидорова в расчетном листке за май сторно 10 дней апрельского оклада ! Помогите, аааааааааааыыыыы !!!" Вызывают ТС, тычут ему пальцом в расчетный, требуют немедля убрать. ТС разводит руки и говорит: "Так сделано по личному указанию Полиграф Полиграфыча, чтоб за дни командировки платился аванс" - Ну пусть платится, откуда сторно в расчетном за май ? - Дык ему ж заплатили оклад за те дни что он в командировке был, а потом за эти же дни - по среднему ... - Ничего не знаю, сторно уберите, ААААААААААААААА !!! Финал, немая сцена .... |
|||
33
Dmitriy_
Kolesnikov 10.06.19
✎
13:47
|
(32) вы что-то не так поняли. Посмотрите - мой код работает только при начислении аванса.
Если выборка.НайтиСледующий("ПерваяПоловинаМесяца", "Параметр") Так что в расчетный листок ничего никогда не попадет. (29) ясен перец, что пустая. Это же переопределяемый модуль. Он как раз и предназначен для доработки расчетов по месту внедрения. |
|||
34
Фрэнки
10.06.19
✎
13:59
|
(33) // для доработки расчетов по месту внедрения.
Такие как раз удобно в Расширение перехватывать с пометкой &Вместо |
|||
35
Фрэнки
10.06.19
✎
14:05
|
(32) да все должно быть норм не будет никаких сторно - это же специально предусмотренный вид Начисление за первую половину месяца.
Просто для Ведомости подбирает суммы и все. Другое дело, что может быть ситуация, когда сумма командировочных окажется меньше, чем начисленный Аванс, но и в этом случае критичного не создаст, а только подвиснет переплата на какой-то период расчетов. |
|||
36
Антиквар
11.06.19
✎
00:05
|
(29) Первая же строчка Вашего кода непонятна:
Запрос = Новый Запрос("выбрать * из ВТНастройкиРасчета"); У меня в этом общем модуле нет такой таблицы ВТНастройкиРасчета. Да и вообще полным поиском по конфигурации не нашло ни одной переменной с таким именем. Релиз ЗУП 3.1.5.421 |
|||
37
Dmitriy_
Kolesnikov 11.06.19
✎
02:20
|
А, это я так параметры передаю через МенеджерВременныхТаблиц.
Должен быть ещё кусок кода, который сохраняет параметры в эту ВТ. Доберусь до базы - поищу. |
|||
38
Антиквар
11.06.19
✎
10:34
|
(37) Ясно, спасибо
|
|||
39
Dmitriy_
Kolesnikov 15.06.19
✎
13:33
|
(38) Обработка МенеджерРасчетаЗарплаты, модуль объекта, процедура ЗаполнитьВыявленнымиНачислениями, см. моё дополнение:
Процедура ЗаполнитьВыявленнымиНачислениями(ТаблицаСотрудников, Начисления, Отборы = Неопределено) УдалитьВТ = Новый Массив; СоздатьВТСотрудникиПериоды(ТаблицаСотрудников); УдалитьВТ.Добавить("ВТСотрудникиПериоды"); ОписаниеВТСотрудникиПериоды = ОписаниеВТСПериодами(); ОписаниеВТСотрудникиПериоды.ИмяВТ = "ВТСотрудникиПериоды"; ОписаниеВТСотрудникиПериоды.ИмяПоляНачалоПериода = "ДатаНачала"; ОписаниеВТСотрудникиПериоды.ИмяПоляОкончаниеПериода = "ДатаОкончания"; ОписаниеВТСотрудникиПериоды.Измерения.Добавить("Сотрудник"); ОписаниеВТСотрудникиПериоды.Измерения.Добавить("Организация"); ИнициализироватьМенеджерУчетаВремени(ОписаниеВТСотрудникиПериоды); ЗаполнитьКадровыеСведенияВТСПериодами(ОписаниеВТСотрудникиПериоды); ВычеркнутьНеСоответствующиеКадровомуОтбору(ОписаниеВТСотрудникиПериоды, Отборы); ВычеркнутьРанееОплаченныеПериоды(ОписаниеВТСотрудникиПериоды); ДополнитьВТСотрудникиПериодыПрименениемНачислений(ОписаниеВТСотрудникиПериоды); ДополнитьВТСотрудникиПериоды(ОписаниеВТСотрудникиПериоды); ОписаниеВТНачисления = ОписаниеВТНачисления(); ОписаниеВТНачисления.ИмяВТ = "ВТСотрудникиПериоды"; ОписаниеВТНачисления.ИмяПоляНачалоПериода = "ДатаНачала"; ОписаниеВТНачисления.ИмяПоляОкончаниеПериода = "ДатаОкончания"; СоздатьВТПоказателиРасчетаНачисления(ОписаниеВТНачисления); УдалитьВТ.Добавить("ВТПоказателиРасчета"); ДобавитьПлановыеНачисления(ОписаниеВТСотрудникиПериоды, Начисления); ДобавитьНачисленияПоЗначениямОперативныхПоказателей(ОписаниеВТСотрудникиПериоды, Начисления); ДобавитьНачисленияПоЗначениямРазовыхПоказателей(ОписаниеВТСотрудникиПериоды, Начисления, Истина); ДобавитьНачисленияПоВидамВремени(ОписаниеВТСотрудникиПериоды, Начисления); ДобавитьНачисленияПоИзвестнымЗначениямОпределяющихПоказателей(ОписаниеВТСотрудникиПериоды, Начисления); //Колесников 14.08.2018 - передача параметров расчета в РасчетЗарплатыРасширенныйПереопределяемый через менеджер временных таблиц Запрос = новыйзапрос(); Запрос.текст = "ВЫБРАТЬ | ""ПерваяПоловинаМесяца"" КАК Параметр, | &ЗначениеПерваяПоловинаМесяца КАК Значение |ПОМЕСТИТЬ ВТНастройкиРасчета"; Запрос.УстановитьПараметр("ЗначениеПерваяПоловинаМесяца", НастройкиРасчета.ПерваяПоловинаМесяца); Запрос.Выполнить(); // Конец Колесников // // // РасчетЗарплатыРасширенныйПереопределяемый.ЗаполнитьДополнительныеНачисленияЗарплаты(МенеджерВременныхТаблиц, Начисления); УничтожитьВТ(УдалитьВТ); КонецПроцедуры |
|||
40
Антиквар
16.06.19
✎
13:02
|
(39) Спасибо большое, посмотрю.
|
|||
41
Антиквар
17.06.19
✎
00:47
|
(39) Теперь другая ошибка:
{ОбщийМодуль.ДлительныеОперации.Модуль(334)}: При расчете начисления «Командировка» за Июнь 2019 для сотрудника <ФИО> возникла ошибка: Поле объекта не обнаружено (СреднийЗаработокОбщий) Формула, используемая при расчете: СреднийЗаработокОбщий * ВремяВДняхЧасах * КоэффициентИндексацииСреднегоЗаработка Видимо разница в релизах сказывается |
|||
42
Антиквар
17.06.19
✎
00:54
|
(41) Извиняюсь, оказалось, что всё-таки нужно обработкой поставить галочку "Начисляется за первую половину месяца" у начисления "Командировка".
После этого ошибку не выдает, командировку включает в расчет первой половины. Поэкспериментирую ещё. Спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |