|
ЗиУП Замудренный расчет надбавки за выслугу | ☑ | ||
---|---|---|---|---|
0
Uragan_a
04.11.13
✎
15:42
|
Надбавка расчитывается по формуле:
Результат = Оклад / 12 месяцев * процент по шкале выслуги Процент можно попробовать получить через условия. Но самый подвох в том, что если человек отработал неделю, то ему надо начислить не по рабочим дням 5 дней, а по календарным 7 дней. Вообщем ничего понять не могу. Фигня какая - то. Даже не представляю, как это организовать. |
|||
1
mdocs
04.11.13
✎
15:49
|
ну стаж по рабочим никогда в жизни и не считался. Формула бредовая очевидно. реально надо что-то типа среднемесячной базы исходя из года начислений БазаЗаГод/12*ОценитьПоШкале
|
|||
2
Uragan_a
05.11.13
✎
00:56
|
(1) и все же как правильно посчитать календарные дни?
((БазаЗаГод/12*ОценитьПоШкале) )/КалендарныхДнейВмесяце*ВремяВКалендарныхДнях ? |
|||
3
Uragan_a
05.11.13
✎
01:02
|
как получить сколько отработал сотрудник в календарных днях?
|
|||
4
Uragan_a
05.11.13
✎
02:43
|
Вот, что у меня получилось:
Результат = (((Тарифная ставка месячная/12)* 2.1* ?(Стаж работы<12, 0, ?(Стаж работы<36, 0.6, ?(Стаж работы<60, 0.8, ?(Стаж работы<84, 1, ?(Стаж работы<120, 1.2, ?(Стаж работы<156, 1.5, ?(Стаж работы<180, 1.8, ?(Стаж работы<216, 2, 2.2)))))))) )/Календарных дней в месяце)*(Отработано времени в днях*1.4) Чтобы получить количество отработанных календарных дней умножаю на 1.4. (Отработано времени в днях*1.4) |
|||
5
Гобсек
05.11.13
✎
03:46
|
Уверен, что регламентированный "от стажа процентом" не годится?
|
|||
6
Uragan_a
05.11.13
✎
04:36
|
(5) уверен!
Они в 7 ки 7 лет так считали, расчет полностью написанный программистом был. |
|||
7
Uragan_a
05.11.13
✎
04:37
|
(Отработано времени в днях*1.4) - не всегда правильно отрабатывает, кто лучше сделал расчет количества отработанный календарных дней.
в 7ке было так: ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата"); ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Объект, ДатаНачала, ДатаОкончания); Пока ЖрнЗарплата.ПолучитьЗапись() > 0 Цикл Если глВходитВБазу(ЖрнЗарплата.ВидРасч, ВидРасчета.НадбавкаЗаВыслугуЛет) > 0 Тогда ОтработаноДней = ОтработаноДней + ((ЖрнЗарплата.ДатаОкончания - ЖрнЗарплата.ДатаНачала) + 1); КонецЕсли; КонецЦикла; |
|||
8
Гобсек
05.11.13
✎
05:28
|
Считать чью-то самописную реализацию алгоритма истиной в последней инстанции вряд ли разумно.
Моя самописная программа для расчета зарплаты эксплуатировалась свыше 10 лет. Выслуга лет в случаях, когда процент выслуги менялся внутри расчетного периода, рассчитывалась по некой формуле, которую я сам же и придумал. Если память не изменяет, то я просто брал в качестве коэффициентов количество календарных дней со старыми процентами и количество календарных дней с новыми процентами. Дробил базу для расчета в соответствии с этими коэффициентами. На первую часть накручивал процент выслуги до увеличения. На вторую часть накручивал процент выслуги после увеличения. Складывал. Выдавал предупреждение бухгалтеру, чтобы он проверил сумму выслуги лет с калькулятором в руках. На практике бухгалтера с этим не заморачивались. После перехода на ЗУП просто использовал стандартный алгоритм из ЗУПа. Никто претензий не предъявлял. |
|||
9
Uragan_a
05.11.13
✎
06:16
|
(8) я не спорю и тоже подумал, что вероятно они сами придумали, но спорить нет возможности.
Сейчас проблема в получении календарных отработанных дней) |
|||
10
Uragan_a
05.11.13
✎
07:08
|
(9) капец, как подобное реализовать в 8ке?
|
|||
11
Uragan_a
05.11.13
✎
07:26
|
(8) бух заострила вниманием, что ей нужно начисление надбавки именно по календарным дням, если начислять регламентированным начислением, то на эту сумму не выходим
Как надо считать (15865/12 * 2,1 * 0,8)/31*21 = 1504,6161 Как считает регламентированный вид расчета (15865/12 * 2,1 * 0,8)/23*15 = 1448,5434 или по другому 10346,7391 / 12 * 2.1 * 0,8 = 1448,5434 3.1. Вознаграждение за выслугу лет начисляется исходя из 1/12 части тарифной ставки (должностного оклада) работника. Потому делим на 12 и 2.1 это районный и северная надбавка. |
|||
12
Uragan_a
05.11.13
✎
07:27
|
0,8 процент от стажа
|
|||
13
Uragan_a
05.11.13
✎
08:03
|
может какие-то документы регламентируют начисление данной надбавки? буха не переубедить сейчас
|
|||
14
Uragan_a
05.11.13
✎
08:06
|
а уже порядок их начисления следует установить внутренними документами организации, к примеру, в Положении о премировании, коллективном договоре, правилах внутреннего трудового распорядка и других локальных актах, регулирующих порядок и условия выплат.
|
|||
15
Uragan_a
05.11.13
✎
09:25
|
что за показатель при создании формулы: "время в календарных днях"? у меня возвращает он то же что и "календарных дней в месяце", но видимо я неправильно его настроил. Может этот показатель должен отражать количество отработанного времени в календарных днях?
|
|||
16
Uragan_a
05.11.13
✎
12:57
|
Ребят просто подскажите, есть мысли как получить количество отработанных календарных дней?
|
|||
17
mdocs
05.11.13
✎
15:59
|
примерный аналог семерочного алгоритма. только по основным начислениям
[code] ВЫБРАТЬ ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета ПОМЕСТИТЬ втРасчетыБазы ИЗ ПланВидовРасчета.ОсновныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ОсновныеНачисленияОрганизацийБазовыеВидыРасчета ГДЕ ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка = &БазовыйРасчет ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарные ПОМЕСТИТЬ втДни ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &НачалоБазовогоПериода И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &КонецБазовогоПериода И ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (ВЫБРАТЬ втРасчетыБазы.ВидРасчета ИЗ втРасчетыБазы) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(втДни.ДниКалендарные) КАК ДниКалендарные ИЗ втДни КАК втДни [/code] |
|||
18
mdocs
05.11.13
✎
16:02
|
еще сторно забыл учесть, примерно так
ВЫБРАТЬ ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета ПОМЕСТИТЬ втРасчетыБазы ИЗ ПланВидовРасчета.ОсновныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ОсновныеНачисленияОрганизацийБазовыеВидыРасчета ГДЕ ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка = &БазовыйРасчет ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, (РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, ДЕНЬ) + 1) * ВЫБОР КОГДА ОсновныеНачисленияРаботниковОрганизаций.Сторно = ИСТИНА ТОГДА -1 ИНАЧЕ 1 КОНЕЦ КАК ДниКалендарные ПОМЕСТИТЬ втДни ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &НачалоБазовогоПериода И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &КонецБазовогоПериода И ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (ВЫБРАТЬ втРасчетыБазы.ВидРасчета ИЗ втРасчетыБазы) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(втДни.ДниКалендарные) КАК ДниКалендарные ИЗ втДни КАК втДни |
|||
19
Uragan_a
06.11.13
✎
01:03
|
(17) спасибо, но в отличии от 7ки в 8ке Оклад не смотря на отклонения все равно в РР имеет период с 1 по 31. И поэтому всегда будет 31 календарный день.
|
|||
20
hhhh
06.11.13
✎
01:28
|
(19) а если в месяце 30 дней?
|
|||
21
Uragan_a
06.11.13
✎
01:29
|
(20) загвостка не в этом. мне надо, если он отработал 5 дней рабочих, программа должна поставить 7 календарных.
Если он отработал один рабочий день, то это может быть два календарных или даже три, а может быть один. |
|||
22
hhhh
06.11.13
✎
01:40
|
ну скопируй из семерки, зачем париться?
|
|||
23
Uragan_a
06.11.13
✎
02:06
|
(22) этот код к 7ке не применим
|
|||
24
Uragan_a
06.11.13
✎
02:35
|
http://s1.ipicture.ru/uploads/20131106/3WjI7p6U.png
Судя по таблице 17.2 на рисунке оклад должен делиться на два периода, но по факту не делится: http://s1.ipicture.ru/uploads/20131106/rz83RTS2.png |
|||
25
Uragan_a
06.11.13
✎
12:07
|
Сейчас думаю расчитывать календари путем удаления из общих календарных дней дни отклонений, как вариант? ну что-то кажется будет громоздко или не?)
|
|||
26
Flika
06.11.13
✎
13:24
|
ого у вас РК с СН какие...
(25) маневр - фигня, главное - результат :))) |
|||
27
mdocs
06.11.13
✎
17:47
|
(25) возьми тогда из виртуальной таблицы ФПД по окладу.
|
|||
28
Uragan_a
07.11.13
✎
01:17
|
(27) был бы благодарен примеру программирования вида расчета в конфигураторе?)))
|
|||
29
Uragan_a
07.11.13
✎
02:55
|
(27) я так понимаю регламентированные расчитываются не по обычной формуле, а где-то отдельно прописаны в конфигурации, но что - ио не могу выловить их расчет.
|
|||
30
lopus
07.11.13
✎
07:17
|
Слушай, но если у вас так замудренно считается, напиши обработку ТЧ, подключи к документу и считайте на здоровье.
|
|||
31
Uragan_a
10.11.13
✎
12:17
|
(27) получается из этой таблицы мы можем (с помощью запроса из(17) получить данные только после проведения документа начисление зарплаты?
я думал если создать свой показатель и автоматом расчитывать его до начсления? но так не получится, пока док не проведен я не могу тем запросом получить календарные дни (. Может еще, что-то можно придумать? Или как вариант делать начисление, потом расчет показателя (календарных дней), а потом конечного начсления? Из модуля расчета вроде нормально работает (потому, что оклад к вермени начисения Выслуги уже попадает в Регистр расчета), но я сломал половину ЗиУПа, чтобы сделать собственный способ расчета. Заранее спасибо! |
|||
32
Мимохожий Однако
10.11.13
✎
12:25
|
(29)Отладчиком пробовал?
(31)Ломать - не строить. ИМХО, достаточно типовых настроек без изменения конфигурации. |
|||
33
Uragan_a
10.11.13
✎
12:56
|
(32)
- 1 нашел. - 2 помоги, я заплачу, уже ничего в голову не идет. |
|||
34
Uragan_a
10.11.13
✎
12:57
|
(30) не могу понять почему при расчети этот запрос получает данные без проведения документа наичления?
а если просто запросником то, пока не проведу док возваращет нулл. |
|||
35
Uragan_a
10.11.13
✎
12:57
|
*расчете
|
|||
36
mdocs
10.11.13
✎
13:25
|
ВЫБРАТЬ
ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияКонец, ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ВидРасчета, ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.Сотрудник, РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ) + 1 КАК КалендарныеДни ПОМЕСТИТЬ втРаздельно ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия( ПериодДействия МЕЖДУ &НачалоПериода И &КонецПериода И ВидРасчета.ВидВремени В (&ВНорме)) КАК ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДействия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втРаздельно.ВидРасчета, втРаздельно.Сотрудник, СУММА(втРаздельно.КалендарныеДни) КАК КалендарныеДни ИЗ втРаздельно КАК втРаздельно СГРУППИРОВАТЬ ПО втРаздельно.ВидРасчета, втРаздельно.Сотрудник Норма из ФПД, в чем проблема-то. |
|||
37
Uragan_a
10.11.13
✎
13:38
|
(36) без проведения документа начисления, запрос возвращает пусто
спасибо работает как надо, но в начале необходимо провести док. |
|||
38
Uragan_a
10.11.13
✎
13:38
|
(36) или я опять не понимаю
|
|||
39
Uragan_a
10.11.13
✎
13:47
|
так как данные записываются только после проведения документа в регистр
|
|||
40
mdocs
10.11.13
✎
13:53
|
1. Расчетчитики заполняют Начисление зп как обычно и проводят его.
2. Создают новый документ регистрации разовых начислений и твоей обработкой табличной части заполняют и рассчитывают надбавку за стаж 3. Заходят в документ 1 или создают новое начисление ЗП и считают НДФЛ. При использовании ЗУП без подобных регламентов никуда не деться. Все делается без изменения типовой. |
|||
41
mdocs
10.11.13
✎
13:55
|
в п.2 пишешь:
"если не найден документ из п.1 - да пошли вы все на.... сначала введите документ п.1 и проведите его." |
|||
42
Uragan_a
10.11.13
✎
13:59
|
(41), понял, спасибо!
|
|||
43
kumena
10.11.13
✎
14:01
|
(40, 41) мягко говоря, на месте расчетчика я бы не принял такую работу.
|
|||
44
Uragan_a
10.11.13
✎
14:02
|
(43) скажи как сделать, чтобы ты принял
|
|||
45
kumena
10.11.13
✎
14:02
|
+43 у чистова на форуме почитайте как надо расчеты настраивать, и запросы научитесь писать.
|
|||
46
kumena
10.11.13
✎
14:03
|
напоминает - расказ про открыть сумочку достать кошелку ...
|
|||
47
Uragan_a
10.11.13
✎
14:03
|
(45) дай ссылочку где почитать
|
|||
48
kumena
10.11.13
✎
14:05
|
||||
49
mdocs
10.11.13
✎
14:09
|
(45) нука нука и запрос свой в студию и настройку расчета. чего молчал то столько дней?
|
|||
50
Uragan_a
10.11.13
✎
14:18
|
(45) запрос кажется довольно классным, я не скоро такой смогу написать)))
|
|||
51
kumena
10.11.13
✎
14:43
|
(49) забесплатно - неинтересно.
запросы писать умею, можешь тут посмотреть http://www.kumena.ru/ (50) тренируйтесь, это по сути самое важное. |
|||
52
mdocs
10.11.13
✎
15:00
|
аааа. Очередной заяц, который любил давать советы))). На сайта пара унылых чуть модифицированных типовых форм.
|
|||
53
Uragan_a
10.11.13
✎
15:05
|
(36) спасибо огромное, впринципе почти все получилось, я сейчас чуть запрос изменю, но это будет не красиво, поможете оптимизировать, если что и по красивее сделать)
|
|||
54
hhhh
10.11.13
✎
16:29
|
(51) телефончик-то мобильный. Какая-то левая у вас фирма. Небось и расчетного счета нет.
|
|||
55
Uragan_a
11.11.13
✎
04:36
|
[code]
ВЫБРАТЬ ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета ПОМЕСТИТЬ втРасчетыБазы ИЗ ПланВидовРасчета.ОсновныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ОсновныеНачисленияОрганизацийБазовыеВидыРасчета ГДЕ ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка = &БазовыйРасчет ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОсновныеНачисленияФП.ВидРасчета, ОсновныеНачисленияФП.ПериодДействияНачало, ОсновныеНачисленияФП.ПериодДействияКонец, РАЗНОСТЬДАТ(ОсновныеНачисленияФП.ПериодДействияНачало, ОсновныеНачисленияФП.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарные ПОМЕСТИТЬ втДни ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияФП ГДЕ ОсновныеНачисленияФП.ПериодДействияНачало >= &НачалоБазовогоПериода И ОсновныеНачисленияФП.ПериодДействияКонец <= &КонецБазовогоПериода И ОсновныеНачисленияФП.Сотрудник = &Сотрудник И ОсновныеНачисленияФП.ВидРасчета В (ВЫБРАТЬ втРасчетыБазы.ВидРасчета ИЗ втРасчетыБазы) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарныеОбщие, ОсновныеНачисленияРаботниковОрганизаций.Показатель1 КАК ТарифнаяСтавка ПОМЕСТИТЬ втДниОбщие ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &НачалоБазовогоПериода И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &КонецБазовогоПериода И ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (ВЫБРАТЬ втРасчетыБазы.ВидРасчета ИЗ втРасчетыБазы) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(втДни.ДниКалендарные) КАК ДниКалендарные ПОМЕСТИТЬ втОтработанноКалендарей ИЗ втДни КАК втДни ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втОтработанноКалендарей.ДниКалендарные КАК ДниКалендарные, втДниОбщие.ДниКалендарныеОбщие КАК ДниКалендарныеОбщие, втДниОбщие.ТарифнаяСтавка КАК ТарифнаяСтавка ИЗ втОтработанноКалендарей КАК втОтработанноКалендарей, втДниОбщие КАК втДниОбщие [/code] |
|||
56
Uragan_a
11.11.13
✎
04:36
|
(52) можно оптимизировать?)
|
|||
57
Uragan_a
11.11.13
✎
04:44
|
во общем добавил в модульРасчетаПредопределяемый:
ИначеЕсли СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ВыслугаПоДоговору Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета |ПОМЕСТИТЬ втРасчетыБазы |ИЗ | ПланВидовРасчета.ОсновныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ОсновныеНачисленияОрганизацийБазовыеВидыРасчета |ГДЕ | ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка = &БазовыйРасчет |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОсновныеНачисленияФП.ВидРасчета, | ОсновныеНачисленияФП.ПериодДействияНачало, | ОсновныеНачисленияФП.ПериодДействияКонец, | РАЗНОСТЬДАТ(ОсновныеНачисленияФП.ПериодДействияНачало, ОсновныеНачисленияФП.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарные |ПОМЕСТИТЬ втДни |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияФП |ГДЕ | ОсновныеНачисленияФП.ПериодДействияНачало >= &НачалоБазовогоПериода | И ОсновныеНачисленияФП.ПериодДействияКонец <= &КонецБазовогоПериода | И ОсновныеНачисленияФП.Сотрудник = &Сотрудник | И ОсновныеНачисленияФП.ВидРасчета В | (ВЫБРАТЬ | втРасчетыБазы.ВидРасчета | ИЗ | втРасчетыБазы) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, | ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, | ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, | РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарныеОбщие, | ОсновныеНачисленияРаботниковОрганизаций.Показатель1 КАК ТарифнаяСтавка |ПОМЕСТИТЬ втДниОбщие |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций |ГДЕ | ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &НачалоБазовогоПериода | И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &КонецБазовогоПериода | И ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник | И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В | (ВЫБРАТЬ | втРасчетыБазы.ВидРасчета | ИЗ | втРасчетыБазы) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(втДни.ДниКалендарные) КАК ДниКалендарные |ПОМЕСТИТЬ втОтработанноКалендарей |ИЗ | втДни КАК втДни |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | втОтработанноКалендарей.ДниКалендарные КАК ДниКалендарные, | втДниОбщие.ДниКалендарныеОбщие КАК ДниКалендарныеОбщие, | втДниОбщие.ТарифнаяСтавка КАК ТарифнаяСтавка |ИЗ | втОтработанноКалендарей КАК втОтработанноКалендарей, | втДниОбщие КАК втДниОбщие"; Запрос.УстановитьПараметр("НачалоБазовогоПериода", ИсходныеДанные.ПериодДействияНачало); Запрос.УстановитьПараметр("КонецБазовогоПериода", ИсходныеДанные.ПериодДействияКонец); Запрос.УстановитьПараметр("Сотрудник", ИсходныеДанные.Сотрудник); Запрос.УстановитьПараметр("БазовыйРасчет", ИсходныеДанные.ВидРасчета); РЗ = Запрос.Выполнить().Выбрать(); Пока РЗ.Следующий() Цикл ДнейКалендарныхОтработанно = РЗ.ДниКалендарные; ДнейКалендарныхВсего = РЗ.ДниКалендарныеОбщие; ТарифнаяСтавка = РЗ.ТарифнаяСтавка; КонецЦикла; Результат = (ТарифнаяСтавка / 12 * 0.8 * 2.1) / ДнейКалендарныхВсего * ДнейКалендарныхОтработанно; // Результат = СтрокаДвижений[ПоказательРазмер] * ОтработаноВремениОсновное; //ОтработаноВремениОсновное = ОплачиваемоеВремя(ИсходныеДанные, СтрокаДвижений, КомментироватьРасчет, КомментарийВидаРасчета, , ГрафикиБезРабочегоВремени); //Результат = СтрокаДвижений[ПоказательРазмер] * ОтработаноВремениОсновное; //Если КомментироватьРасчет Тогда // ОбщегоНазначенияЗК.КомментарийРасчета("Тарифная ставка: " + СтрокаДвижений[ПоказательРазмер], КомментарийВидаРасчета); // ОбщегоНазначенияЗК.КомментарийРасчета("Отработанное время: " + ОтработаноВремениОсновное, КомментарийВидаРасчета); //КонецЕсли; // //СтрокаДвижений.ОплаченоДнейЧасов = ОтработаноВремениОсновное * ?(СтрокаДвижений.Сторно,-1,1); Вроде заработало даже без проведения документа и расчитывается при расчете зарплаты. Пришлось добавить свой способ расчета. |
|||
58
lopus
11.11.13
✎
07:21
|
Чего то обработку сторно записей я ни где не увидел.
|
|||
59
Uragan_a
12.11.13
✎
06:37
|
ИначеЕсли СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.Выслуга Тогда
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.ВидРасчета |ПОМЕСТИТЬ втРасчетыБазы |ИЗ | ПланВидовРасчета.ОсновныеНачисленияОрганизаций.БазовыеВидыРасчета КАК ОсновныеНачисленияОрганизацийБазовыеВидыРасчета |ГДЕ | ОсновныеНачисленияОрганизацийБазовыеВидыРасчета.Ссылка = &БазовыйРасчет |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОсновныеНачисленияФП.ВидРасчета, | ОсновныеНачисленияФП.ПериодДействияНачало, | ОсновныеНачисленияФП.ПериодДействияКонец, | РАЗНОСТЬДАТ(ОсновныеНачисленияФП.ПериодДействияНачало, ОсновныеНачисленияФП.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарные |ПОМЕСТИТЬ втДни |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияФП |ГДЕ | ОсновныеНачисленияФП.ПериодДействияНачало >= &НачалоБазовогоПериода | И ОсновныеНачисленияФП.ПериодДействияКонец <= &КонецБазовогоПериода | И ОсновныеНачисленияФП.Сотрудник = &Сотрудник | И ОсновныеНачисленияФП.ВидРасчета В | (ВЫБРАТЬ | втРасчетыБазы.ВидРасчета | ИЗ | втРасчетыБазы) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, | ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, | ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, | РАЗНОСТЬДАТ(ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец, ДЕНЬ) + 1 КАК ДниКалендарныеОбщие, | ОсновныеНачисленияРаботниковОрганизаций.Показатель1 КАК ТарифнаяСтавка |ПОМЕСТИТЬ втДниОбщие |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций |ГДЕ | ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало >= &НачалоБазовогоПериода | И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец <= &КонецБазовогоПериода | И ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник | И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В | (ВЫБРАТЬ | втРасчетыБазы.ВидРасчета | ИЗ | втРасчетыБазы) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(втДни.ДниКалендарные) КАК ДниКалендарные |ПОМЕСТИТЬ втОтработанноКалендарей |ИЗ | втДни КАК втДни |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ФизическиеЛицаСтажи.ДатаОтсчета, | РАЗНОСТЬДАТ(ФизическиеЛицаСтажи.ДатаОтсчета, &КонецБазовогоПериода, МЕСЯЦ) КАК СтажМесяцев |ПОМЕСТИТЬ втСтаж |ИЗ | Справочник.ФизическиеЛица.Стажи КАК ФизическиеЛицаСтажи |ГДЕ | ФизическиеЛицаСтажи.Ссылка = &ФизЛицо | И ФизическиеЛицаСтажи.ВидСтажа = &ВидСтажа |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | втОтработанноКалендарей.ДниКалендарные КАК ДниКалендарные, | втДниОбщие.ДниКалендарныеОбщие КАК ДниКалендарныеОбщие, | втДниОбщие.ТарифнаяСтавка КАК ТарифнаяСтавка, | втСтаж.СтажМесяцев КАК СтажМесяцев |ИЗ | втОтработанноКалендарей КАК втОтработанноКалендарей, | втДниОбщие КАК втДниОбщие, втСтаж КАК втСтаж"; Запрос.УстановитьПараметр("НачалоБазовогоПериода", ИсходныеДанные.ПериодДействияНачало); Запрос.УстановитьПараметр("КонецБазовогоПериода", ИсходныеДанные.ПериодДействияКонец); Запрос.УстановитьПараметр("Сотрудник", ИсходныеДанные.Сотрудник); Запрос.УстановитьПараметр("БазовыйРасчет", ИсходныеДанные.ВидРасчета); Запрос.УстановитьПараметр("ФизЛицо", ИсходныеДанные.Сотрудник.ФизЛицо); Запрос.УстановитьПараметр("ВидСтажа", Справочники.ВидыСтажа.СтажНаНадбавкуЗаВыслугуЛет); РЗ = Запрос.Выполнить().Выбрать(); Пока РЗ.Следующий() Цикл ДнейКалендарныхОтработанно = РЗ.ДниКалендарные; ДнейКалендарныхВсего = РЗ.ДниКалендарныеОбщие; ТарифнаяСтавка = РЗ.ТарифнаяСтавка; Стаж = РЗ.СтажМесяцев; КонецЦикла; Результат = (ТарифнаяСтавка / 12 * 2.1 * ?(Стаж<12, 0, ?(Стаж<36, 0.6, ?(Стаж<60, 0.8, ?(Стаж<84, 1, ?(Стаж<120, 1.2, ?(Стаж<156, 1.5, ?(Стаж<180, 1.8, ?(Стаж<216, 2, 2.2))))))))) / ДнейКалендарныхВсего * ДнейКалендарныхОтработанно; |
|||
60
Uragan_a
12.11.13
✎
06:37
|
это сильно тяжелый запрос? или все ж можно использовать или искать другие методы?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |