Имя: Пароль:
1C
 
v8: ЗУП 2.5 - не правильно считает базу - в чем проблема в платформе или конфигурации?
,
0 RomaH
 
naïve
25.03.11
11:46
1С:Предприятие 8.2 (8.2.13.205)
Зарплата и Управление Персоналом, редакция 2.5 (2.5.31.4) (http://v8.1c.ru/hrm/)
Copyright (С) ЗАО "1C", 2007-2010. Все права защищены
(http://www.1c.ru)

вводная:
январь - сотруднику начислен оклад и % надбавки
февраль - ввели оплату праздничных и выходных за январь (месяц начисления февраль - опалат за 06/01)

в марте делают перерасчет за январь (в связи с тем что оплата праздничных входит в базу надбавки и в марте нашли ошибку январскую)

- исправить январский документ - расчет - в базу надбавки не попадает

... собственно вопрос - а почему и что делать?

в ВР надбавки - базовый период - период действия начисления
1 RomaH
 
naïve
25.03.11
13:47
т.е. с таким не сталкивались и база должна считаться правильно при таком сценарии?
2 Said_We
 
26.03.11
03:04
С точки зрения логики должно. Пробовать надо.
3 Said_We
 
26.03.11
03:24
1С:Предприятие 8.1 (8.1.15.14)
Расчитал верно. Не ЗиУП, но это не важно.
4 RomaH
 
naïve
30.03.11
11:23
вот такая вот картинка получается
понятно что с точки зрения логики вроде как должно
но ... не берет в базу и все тут
5 RomaH
 
naïve
30.03.11
11:23
6 RomaH
 
naïve
30.03.11
12:22
может кто увидит ошибку или подскажет куда копать?
7 RomaH
 
naïve
30.03.11
12:23
ладно если это единичный случай, но терзают смутные сомнения, что данный вариант расчета может не один раз быть реализован
8 RomaH
 
naïve
30.03.11
13:41
в общем так

Оплата выходных - выпадает на 06.01
по графику (регистр) и по табелю (документ) - это выходные дни


почему-то в базу не включает если оплата попадает на выходной

если на любой другой день (включая неявку/больничный) то все ок


что не так?
9 RomaH
 
naïve
30.03.11
13:48
не в (8) вывод не правильный

в базу включает только после 27.01 числа включительно

в этот день начался больничный - сначала (в январе - невыход) потом в феврале ввели больничный
10 RomaH
 
naïve
30.03.11
14:02
при этом еще одно наблюдение

при расчете в начальном документе (т.е. в начислении зарплаты в январе за январь) - оплату праздничных не видит вообще

видеть с 27/01 начинает только в исправлении (расчет в марте за январь)
11 RomaH
 
naïve
30.03.11
14:09
вот ...
оплата праздничных вытесняет оклад

с 27 оклад вытеснен неявкой
т.е. в январе записали оклад 01-31
и неявка 27-31

в феврале пишем оплату выходных 06 - в базу не входит

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


... я что-то не догоняю
почему вытесняющие оклада влияют на базу квалификации?
12 RomaH
 
naïve
30.03.11
14:15
при этом ... что-то не заметил что бы оплата праздничных "автоматически" вытесняла оклад ... т.е. вытеснение оно как бы виртуально ... и существование двух ВР один из которых вытесняет другой в одном периоде вполне нормальное явление
13 RomaH
 
naïve
30.03.11
14:29
проверил на ЗУП 32 и на 219 платформе
- монописуально

ничего не понимаю - почему ВР вытесняющий оклад не входит в базу премии?
14 RomaH
 
naïve
30.03.11
14:45
вот что не так?

принимаю на работу нового сотрудника 01/01
оклад 10000
премия 100%

оклад вытесняется оплатой выходных (правильно?)

премия не вытесняется, в базе оклад и оплата выходных

1. расчет за январь - 10000 + 10000
2. в феврале ввожу оплату выходных за 06.01
3. в марте делаю исправление документа начисления за январь
- получаю теже 20000 на выходе (оплату выходных не видит)

что нетак? - это первый вопрос

втрой вопрос - если ввожу оплату выходных 14.01 (рабочий день) - как вытеснить оклад? - ибо исправление январского документа дает теже 20000
15 RomaH
 
naïve
30.03.11
15:31
воспроизвел ситуацию на

Зарплата и Управление Персоналом, редакция 2.5 (2.5.9.2)
1С:Предприятие 8.1 (8.1.15.14)

ну все работает - вытесняется и в базу входит


у кого ЗУП 31/32 на 8.1 крутится - не проходите мимо, проверте сценарий - в чем проблема в платформе или конфигурации?
16 RomaH
 
naïve
30.03.11
15:32
все что выше (15) - на клиент-серверном SQL
17 RomaH
 
naïve
30.03.11
16:14
где все? на 33 обновляются что ли?
18 briz
 
30.03.11
16:46
31.4 сплошной глюк.я замаялся исправлять.
19 briz
 
30.03.11
16:47
у меня рк в базу не брал один вр..пока не удалил/добавил его заново
20 RomaH
 
naïve
31.03.11
08:43
мне бы сейчас определится - что это платформа или конфа глючит

но ЗУП 31/32 на 8.1. нет под рукой
21 RomaH
 
naïve
31.03.11
15:02
up
22 RomaH
 
naïve
04.04.11
10:51
ничего не понимаю, ЗУП на 8.2 никто не пользует?
проблемы с расчетной частью - побоку? то что вытеснения и база не работает - все пофигу?
23 RomaH
 
naïve
07.04.11
07:19
никто не смог воспроизвести? только у нас проблемы?
24 Denisыч
 
07.04.11
07:50
проверь все ВР, просто в оклад и тп виды расчетов заходи и записать понажимай - был глюк тоже не вытеснялось - на окладе сработала ошибка и потом все стало нормально)
25 dmpl
 
07.04.11
08:13
(0) У меня на чистой 2.5.33.4 под 8.1 в файловом варианте все нормально - взял и оплату выходных дней. Для проверки можно попробовать сделать расчет с комментариями.
26 RomaH
 
naïve
07.04.11
08:30
(25) ага, т.е. дело как минимум не в конфе
27 shamannk
 
07.04.11
08:32
А ЗУП переписанная? Спрашивали?
28 RomaH
 
naïve
07.04.11
08:38
(27) дописаная, но для теста ничто не мешает мне запустить типовую
что и описано в (13)
(24) - а как ты думаешь я воспроизводил ошибку?

ошибка - смотрю почему может быть - изменяю - воспроизвожу - ошибки нет - восстанавливаю (опять запись) - ошибка - ну что бы удостоверится (запись) - нет ошибки

и еще раз на другом релизе конфы, и еще раз на другом релизе платформы (8.1/8.2)
29 dmpl
 
07.04.11
09:35
(26) Да, дело в том, как работает механизм вытеснения.

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

Если оплату праздников добавить в вытесняющие виды расчета (зачем, интересно?), то для корректного учета в случае, когда период регистрации больше периода действия, надо при расчете вручную сторнировать соответствующие записи этих видов расчета и добавить запись в текущем периоде регистрации. В этом случае база тоже будет считаться верно.

Т.е., вытеснение "просто так" работает только при определенных условиях. При текущих настройках надо было в феврале перерассчитать оклад после начисления вытесняющего вида расчета (ведь оклад же уже, получается, неправильно рассчитан), тогда в марте вы сможете автоматом пересчитать премию. Либо сделать это же в марте, но тогда надо перерассчитывать и оклад, и все вытесняющие виды расчета для оклада.
30 RomaH
 
naïve
07.04.11
10:09
(29) все равно не понял чего я не понимаю

още раз пытал программу

оклад + премия в январе

оплата выходных в марте за 01.06 (ИМХО, вполне логично, если есть оплата выходных, то оплаты оклада в этот день быть не может)

теперь начинаем эксперименты:
оклад вытесняется оплатой выходных

делаю исправление январского начисления
- месяц начисления февраль - база для премии база без учета оплаты
- месяц начисления март - база для премии правильная
- месяц начисления апрель (и более) - база без учета оплаты

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


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

меня интересует - почему вытеснение оклада оплатой выходных влияет на базу премии?, при этом наблюдается зависимость от месяца начисления оплаты и месяца начисления премии

разве база не должна собираться независимо от месяца начисления?
31 RomaH
 
naïve
07.04.11
10:10
(29)
"Если оплату праздников добавить в вытесняющие виды расчета (зачем, интересно?), то для корректного учета в случае, когда период регистрации больше периода действия, надо при расчете вручную сторнировать соответствующие записи этих видов расчета и добавить запись в текущем периоде регистрации. В этом случае база тоже будет считаться верно. "

... есть механизм "Исправлений" в документах начисления зарплаты - там все как бы работает - все добавляется и сторнируется
32 RomaH
 
naïve
07.04.11
10:10
оплата выходных в марте за 01.06  - за 6 января
33 dmpl
 
07.04.11
10:45
(30)
> - месяц начисления февраль - база для премии база без учета оплаты

Естественно, ведь оплата праздников и выходных будет начислена только в марте. Пока еще смысла перерассчитывать нет.

> - месяц начисления апрель (и более) - база без учета оплаты

Это тоже естественно. Ведь вытесняющее начисление осталось в марте. А механизм вытеснения работает только в пределах одного периода регистрации. Поэтому надо в апреле сторнировать начисление оплаты праздников и выходных и начислить его снова.

>пока вытеснение оклада как такового (в случае если оплата
>праздничных выпадет на рабочий день) - оставим в стороне

Начисление вытесненяющего вида расчета делает неправильным существующий расчет оклада. Пока оклад не будет перерасчитан корректно - формально база по-любому неправильная. Так что именно вытеснение здесь играет ключевую роль. Если вытеснения нет - то оклад остается правильно начисленным даже после ввода оплаты праздничных и выходных дней.

Вообще, штатно вводится 2 вида расчета: оплата праздников и выходных и доплата за работу в праздники и выходные. Если праздник приходится на нерабочий день по графику, то вводятся оба вида расчета. Если праздник приходится на рабочий день - то вводится только доплата за работу в праздники и выходные. Поэтому штатные механизмы рассчитаны именно на такой вариант.

Как вариант, когда вытеснение не нужно: человек работал 2 смены в праздник - одну по графику, а вторую - для предотвращения аварии - сверхурочно. Но начислить надо как оплату праздничных дней.

> меня интересует - почему вытеснение оклада оплатой выходных влияет на базу премии?

Как вариант - он берет последнюю корректно рассчитанную базу. Т.е., январскую. А уж на уровне платформы это или в конфигурации такой запрос - это уже в коде копаться надо.
34 RomaH
 
naïve
07.04.11
11:55
(33) при чем тут вытеснение? меня интересует база
а вот база премии почему-то зависит от вытеснения оклада
35 RomaH
 
naïve
07.04.11
12:06
хм, значит что-то не понимаю до конца

сделал новое начисление - вытесняет оклад, входит в базу премии

ввод разового начисления - там автоматом появляется сторнирующая запись оклада

пока эта запись есть - все работает как надо, как только эту запись убрать - база премии не видит этого ВР

но все-равно, имхо, перемудрили - ну почему база премии зависит от вытесняющих оклада?

на 8.1 вроде все нормально работало - вытеснение других ВР не влияло на свзку ВР и его базы
36 dmpl
 
07.04.11
13:04
(34) База зависит от оклада, а оклад зависит от вытеснения. Вывод - база зависит от вытеснения. Все логично. Судя по всему, платформа выдает последнюю правильно рассчитанную базу. Т.е., за январь. Пока за март не будет корректно перерассчитаны все базовые начисления - они все не попадут в базу.

В 8.1 все работает аналогично.

Вот небольшой запросик:


ВЫБРАТЬ
   *
ИЗ
   РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.БазаОсновныеНачисленияРаботниковОрганизаций(&Измерения, &Измерения, &Разрезы, ) КАК ОсновныеНачисленияРаботниковОрганизацийБазаОсновныеНачисленияРаботниковОрганизаций
ГДЕ
   ОсновныеНачисленияРаботниковОрганизацийБазаОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = &ВидРасчета
   И ОсновныеНачисленияРаботниковОрганизацийБазаОсновныеНачисленияРаботниковОрганизаций.Регистратор = &Регистратор
   И Сторно = ЛОЖЬ


Здесь
Регистратор - документ перерасчета премии
ВидРасчета - вид расчета премии
Измерения - список значений со строками Организация, Сотрудник
Разрезы - список значений со строками ПериодРегистрации, ВидРасчета, Регистратор, ПериодДействия, НомерСтроки

Если его выполнить, то можно увидеть, что при неперерассчитанном окладе в базу целиком не попадают записи из марта. А при правильно рассчитанном окладе в базу попадают все записи - в т.ч. и за январь.
37 Said_We
 
11.04.11
00:24
Перерасчеты на базу не должны влиять совсем.
38 Said_We
 
11.04.11
00:24
Имеется ввиду таблица перерасчетов.
39 RomaH
 
naïve
11.04.11
07:08
(36) прикинь - у меня оклад рассчитан верно - должно быть 10 000, и есть 10 000
а вот премию считает не верно
при этом на 8.1. все считало как и должно - вытеснение не влияло на базу
40 dmpl
 
11.04.11
08:36
(39) Итоговая сумма здесь роли не играет. Влияет то, что появилось вытесняющее начисление. Платформа что, телепатка - узнать, влияет на твой алгоритм расчета изменения, в частности, фактического периода действия, из-за появления вытесняющего расчета или нет? К тому же, понятие базы включает все ресурсы регистра расчета - а не только Результат.

Я же привел запрос - достаточно выполнить его при неправильном расчете и при правильном - и сравнить результаты, чтобы понять, в чем причина "некорректного" расчета базы. База рассчитана корректно, но по состоянию на январь месяц. По состоянию на март она будет посчитана только после правильного расчета всех базовых начислений. И это, в принципе, правильно. Зачем давать некорректно посчитанную базу? Платформа выдает все корректные записи по базе (освобождая программиста от необходимости самому проверять, корректно посчитаны записи или нет), а дальше уже дело алгоритма решать, что с этим делать.

В 8.1 считает точно так же. Я специально проверил (платформа 8.1.15.14). Просто, видимо, не попадалось такой ситуации, когда начисление за 1 месяц на 3 растягивалось и расчет проводился без сторнирующих записей за предыдущие месяцы.
41 Said_We
 
11.04.11
12:07
Важно как метод Записать(П1, П2, П3, П4) проводили.
Тогда что-то появляется или не появляется.