Имя: Пароль:
1C
1С v8
Доплата до оклада в ЗУП 2.5.
,
0 buganych
 
26.08.13
13:55
Здравствуйте, уважаемые гуру 1С.
Подскажите, пожалуйста, алгоритм добавления дополнительного расчета Доплата до оклада в документ Начисления по больничному листу.
Суть такая: на предприятии производится доплата к пособию по временной нетрудоспособности в пределах разницы между максимальным размером пособия и базовым должностным окладом работника за период отсутствия по болезни, но не более чем за 15 рабочих дней в год. То есть если сотрудник проболел менее 15 дней в месяце(при условии что он не болел до этого) он должен получить зарплату в той же сумме, как если бы он не находился на больничном. Доплата только за рабочие дни.
В конфигураторе в модуле формы документа описал все проверки, сколько дней уже болел сотрудник, вычислил, сколько дней с доплатой осталось и сколько рабочих дней проболел в текущем больничном листе. Вычислил формулу.
Получилась такая:
ДоплатаВДень=ОкладВМесяц/НормаДнейВМесяце-ПособиеФССвДень*КоличествоДнейБолезниВсего/КоличествоРабочихДнейБолезни
И Доплата=ДоплатаВДень*КоличествоДнейКоторыеСДоплатой
И теперь окунулся с головой во все разнообразие модулей в ЗУПе. И потурялся. Помогите, пожалуйста навичку
1 almar
 
26.08.13
14:00
(0) Простой способ введения доплаты я показываю в этом видео http://videozup.ru/zup/payroll/doplata-bolnichnogo-do-oklada.html
Правда в нем нет ограничения в 15 дней. Для таких случаев я  обычно делаю заполнялку табличной части в документ "Разовые начисления"
2 RomaH
 
naïve
26.08.13
14:22
1 - не понятно зачем вы привязываетесь к доплате за день?
больничный считается по календарным
а вам надо доплатить до ... почему не до среднего?

например больничный с субботы до воскресенья включительно
30000/30 - 200*2/0 - деление на ноль
с пятницы до воскресенья надо получить 1000 руб в итоге
30000/30 - 200*3/1 1000 - 600 = 400

по сути это ваш собственный ВР предопреленный с описание алгоритма расчета в модуле общего модуля конфигурации

1 - определить период оплаты - максимум 15 дней в год и не более текущего больничного (собираем все больничные в периоде начисления (базовые?))
2 -

так ... поток мыслей
3 buganych
 
26.08.13
14:33
"не понятно зачем вы привязываетесь к доплате за день? "
Потому что доплата идет только за рабочие дни. То есть
если человек проболел неделю, пособие ему заплатят за 7 дней, а фирма доплатит за 5 дней.
almar, я смотрел это видео, очень хорошее, но мне нужно автоматизировать, чтобы зарплатник нажал на кнопку Рассчитать и ему в поле упало пособия столько то, доплата столько то, доплата фирмы столько то, без участия других документов.

Сама соль в каком месте множества процедур и функций модулей ЗУПа подставить свой вид расчета для доплат с рассчитанным оставшимся оплатным периодом(15 дней в год).
На данный момент я создал свой ВР, прописал формулу, как в видео, описал вычисление остатка оплачиваемых дней до оклада, и теперь мне нужно ее подцепить к документу "Начисление по БЛ".
4 almar
 
26.08.13
14:41
(3) Если можно вносить изменения в конфигурацию, то вставляй свой кусок в процедуру заполнения табличной части Начисления в больничном
5 RomaH
 
naïve
26.08.13
14:50
(3) логичней немного другой алгоритм (и программа так устроена)
сначала определяется период доплаты
с 02 по 05
и с 15 по 26 (например в месяце было два больничных)

потом определяется - а сколько должно быть в сумме (до какой суммы надо доплатить эти промежутки)
рабочие дни в период доплаты х норму - рассчитано по больничному
6 RomaH
 
naïve
26.08.13
14:52
(3) поисщи глобальным посиком наименования предопределенных ВР типа пособия до 1.5 лет
7 RomaH
 
naïve
26.08.13
14:53
(3) и лучше не к больничному листу, а к начислению ЗП

есть два больничных в текущем месяце
второй введут первым и придется заморачиваться с расчетом твоих 15 дней - что когда пересчитать

а в начислении ЗП вся первичка уже как бы есть и больше не предвидится
8 buganych
 
26.08.13
15:03
almar, расскажите, пожалуйста, поподробнее, я найти не могу место куда и что писать.
RomaH, к начислению зарплаты не получится, т.к. требуется доплату делать именно в док. Начисление по БЛ.

Запутался совсем в конец, попробовал копипастом с помощью галки доплата до среднего, чтобы по аналогии допилить доплату до оклада, но увы, потерялся
9 almar
 
26.08.13
15:20
(8) Заполнение табличной части Начисления происходит в процедуре СформироватьДвиженияПоНачислениям модуля документа НачислениеПоБольничномуЛисту. В нее и дописывай свой вид расчета. Когда будешь тестировать, не забудь проверить, чтобы правильно считало при исправлениях: например, когда изменили процент оплаты или ввели сведения от другого работодателя
10 mdocs
 
26.08.13
15:34
В таких случаях очень хочу механизм дорасчета документов без изменения типовой и очень жаль что такого нет(
11 УхТы
 
26.08.13
15:35
Мне кажется, что доплату нельзя делать в документе начисление БЛ, т.к. предприятие может доплачивать всё что угодно, но расчет БЛ осуществляется за 2 предыдущих года и никаких доплат там быть не может
12 УхТы
 
26.08.13
15:36
* по среднему за 2 года
13 УхТы
 
26.08.13
15:39
Может всё таки в регистрации разовых начислений приделать кнопку с внешней обработкой заполнения таб. частей и вашей логикой расчета по больникам за месяц например
14 almar
 
26.08.13
15:44
(11) Там же есть "встроенная" доплата (до среднего). Почему же до среднего можно, а до оклада нельзя?
15 УхТы
 
26.08.13
16:09
(14) Поняла, у нас жмоты никогда не доплачивали, даже не обращала внимание на доплату, но всё равно моё предложение по кнопке похоже на ваше в ролике, чтоб и автоматом и чтоб конфу не трогать
16 buganych
 
26.08.13
17:13
(9) Спасибо большое. Буду ковырять.
17 buganych
 
27.08.13
07:04
А не подскажете, как в ВыборкуПоШапке в ВидРасчетаДоплаты запихать мой ВР? Простым присвоением с условием, если не доплата до среднего? В переменную ВыборкаПоШапке передается результат запроса по документу.
18 Armando
 
27.08.13
07:54
Делал практически тож самое.
http://uploads.ru/i/q/3/I/q3IYA.png
У меня эта доплата сразу в больничном листе считалась. Так удобней, если больничный надо пересчитывать. Тогда доплата пересчитается вместе с больничным.
Принцип следующий:
Рассчитывается сколько сотрудник получил бы за период болезни. И доплачиваем разницу между рассчитанной суммой и суммой по больничному.
19 buganych
 
27.08.13
12:18
(18) Armando, а можно дтшник или текст? Я хотел просто схитрить и прописать в документе ВидРасчета:ДоплатаЗаСчетРаботодателя свой созданный вид расчета с формулой. Но вот незадача, не знаю как сделать. По идее должно было получится что-то вроде
ДоплатаЗаСчетРаботодателя=ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ДоплатаДоОклада; или
ПланВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Доплата До Оклада");
20 buganych
 
27.08.13
12:21
(18) Вы ведь движения по регистрам делали? Или просто после расчетов добавляли новую строку в ТЧ документа, где высчитывались значения?
21 Armando
 
27.08.13
13:50
(19) Я в той фирме уже больше года не работаю. Просто скриншот старый нашел, который кому-то когда-то отправлял.
CF дома поищу, но не гарантирую, что быстро, т.к. есть только sqlные бекапы. А для этого придется еще и MSSQL поднимать... Гемор короче.
Могу на пальцах попробовать объяснить как и что.

(20) При расчете бл автоматически добавляется строка в тч и прописываются значения показателей с результатом. При проведении эта строка двигает регистр доп. начислений.
22 buganych
 
28.08.13
07:14
(21) А как Вы передали в запрос ссылку на свой вид расчета? Я создал свой "ДоплатаДоОклада" и при попытке передать его в запрос, он его просто не видит, а в консоли он просто предлагает выбрать и все работает. Что нужно передать в параметр <ссылка> в запросе?
Для того, чтобы добавить новую строку со своим ВР нужно указать свою ссылку, но не передает.

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    ОсновныеНачисленияОрганизаций.Ссылка
|ИЗ
|    ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисленияОрганизаций
|ГДЕ
|    ОсновныеНачисленияОрганизаций.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",    <Ссылка>);    
РезультатЗапроса = Запрос.Выполниь();
23 buganych
 
28.08.13
11:39
Сделал проще, добавил свой предопределенный вид расчета и вкатил в него формулу, теперь можно обращаться напрямую.