Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
rebel25 Большой шоколадный орден

Зарегистрирован: 06.10.2008 Сообщения: 580 Откуда: Москва
|
Добавлено: Вт Янв 17, 2012 11:04 Заголовок сообщения: Пустоты в назначениях |
|
|
У меня непонятным образом у нескольких работников образовались пустоты в назначениях (периоды времени на который не приходится не одного назначения). В результате за месяцы пустот вычлись страховые взносы.
Не подскажите, как средствами пользователя можно создать такие пустоты? |
|
Вернуться к началу |
|
 |
Mike Большой шоколадный орден

Зарегистрирован: 07.04.2011 Сообщения: 255
|
Добавлено: Вт Янв 17, 2012 11:27 Заголовок сообщения: |
|
|
Я так понимаю пустота там одна и идет от даты приема до даты назначения первого? |
|
Вернуться к началу |
|
 |
rebel25 Большой шоколадный орден

Зарегистрирован: 06.10.2008 Сообщения: 580 Откуда: Москва
|
Добавлено: Вт Янв 17, 2012 12:31 Заголовок сообщения: |
|
|
Нет, не от даты приема, а все случаи между назначениями.
Не пойму как так получилось. В протоколе изменений прописано, что пользователь изменил дату назначения на следующий год. Но в этом случае автоматически должна была измениться дата окончания предыдущего назначения. |
|
Вернуться к началу |
|
 |
DUCKKK Большой шоколадный орден

Зарегистрирован: 16.09.2009 Сообщения: 1691
|
Добавлено: Вт Янв 17, 2012 13:17 Заголовок сообщения: |
|
|
Может, "талантливого" пользователя спросить, как это удалось сделать? |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Вт Янв 17, 2012 18:50 Заголовок сообщения: |
|
|
Интересный косяк... У меня старая версия БОССа и в ней есть только дата начала назначения, поэтому такой ситуации в принципе быть не может. |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Ср Янв 18, 2012 15:00 Заголовок сообщения: |
|
|
rebel25 писал(а): | Нет, не от даты приема, а все случаи между назначениями.
Не пойму как так получилось. В протоколе изменений прописано, что пользователь изменил дату назначения на следующий год. Но в этом случае автоматически должна была измениться дата окончания предыдущего назначения. | А ведь действительно есть такой глюк! У меня получилось его воспроизвести.
Пример: у работника были назначения за 03.03.2008, 23.05.2010 и 11.10.2010. Я взяла и у среднего назначения поменяла дату на 24.05.2012г. В итоге в pr_current получились следующие периоды:
03.03.2008-23.05.2010 - т.е. дата окончания не поменялась на 10.10.2010
11.10.2010-23.05.2012 - нормально
24.05.2012-01.01.2099 - нормально
Вот и получилась пустота между 23.05.2010 и 11.10.2010. |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Ср Янв 18, 2012 15:16 Заголовок сообщения: |
|
|
Ситуация легко обрабатывается, если в начале триггера на Update добавить следующую проверку:
Код: | if @NEW:date_trans > @$Pr_1:Date_Depart then error [\3\7 Нельзя устанавливать дату назначения позднее даты следующего назначения!]; |
Кстати, наверняка сиуация аналогичная, когда назначение меняется на более раннюю дату... тоже надо поставить завпрет, предварительно выбрав дату начала предыдущего назначения.
Пойду закрою у себя эти баги, хотя за 5 лет не видела, чтобы кто-то из пользователей умудрился такое сотворить. Но чем чёрт не шутит! Защита от дурака ещё никогда не была лишней  |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Ср Янв 18, 2012 15:56 Заголовок сообщения: |
|
|
Вот такие вот 2 проверки. Вдруг кому пригодится:
Код: | select max(date_trans) into @dt_prev from pr_current where pId=@$Pr_1:pId and date_trans<@OLD:date_trans;
if @NEW:date_trans <= @dt_prev then error [\3\7 Нельзя устанавливать дату назначения \10\3ранее даты предыдущего назначения!];
if @NEW:date_trans > @OLD:Date_Depart then error [\3\7 Нельзя устанавливать дату назначения \10\3позднее даты следующего назначения!];
|
|
|
Вернуться к началу |
|
 |
DUCKKK Большой шоколадный орден

Зарегистрирован: 16.09.2009 Сообщения: 1691
|
Добавлено: Ср Янв 18, 2012 15:58 Заголовок сообщения: |
|
|
А можно просто волшебную кнопочку нажать "Сверить историю назначений".... Мало ли зачем "дырка" в них была оставлена? Может быть сознательно .... |
|
Вернуться к началу |
|
 |
Mike Большой шоколадный орден

Зарегистрирован: 07.04.2011 Сообщения: 255
|
Добавлено: Ср Янв 18, 2012 16:00 Заголовок сообщения: |
|
|
А кто-нить разработчикам написал?
Было бы хороши видеть эти проверки в базовом объекте. |
|
Вернуться к началу |
|
 |
Mike Большой шоколадный орден

Зарегистрирован: 07.04.2011 Сообщения: 255
|
Добавлено: Ср Янв 18, 2012 16:01 Заголовок сообщения: |
|
|
DUCKKK писал(а): | А можно просто волшебную кнопочку нажать "Сверить историю назначений".... Мало ли зачем "дырка" в них была оставлена? Может быть сознательно .... |
А есть идеи зачем сознательно оставлять такие дырки?
Я вот не представляю... |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Ср Янв 18, 2012 16:04 Заголовок сообщения: |
|
|
Mike писал(а): | А кто-нить разработчикам написал?
Было бы хороши видеть эти проверки в базовом объекте. | У меня нет тех.поддержки с 2007г., поэтому всё сама, всё сама  |
|
Вернуться к началу |
|
 |
DUCKKK Большой шоколадный орден

Зарегистрирован: 16.09.2009 Сообщения: 1691
|
Добавлено: Ср Янв 18, 2012 16:08 Заголовок сообщения: |
|
|
Mike писал(а): | А кто-нить разработчикам написал?
Было бы хороши видеть эти проверки в базовом объекте. |
БОЛЬШОЙ БРАТ ВИДИТ ВАС .... Не волнуйтесь ..... |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Ср Янв 18, 2012 16:08 Заголовок сообщения: |
|
|
DUCKKK писал(а): | А можно просто волшебную кнопочку нажать "Сверить историю назначений".... Мало ли зачем "дырка" в них была оставлена? Может быть сознательно .... | Дырка появляется исключительно из-за непроработанности алгоритма. В документации нигде не описано, что если вы хотите сделать дырку, то нужно создать 3 назначения, а потом изменить среднее из них
Кстати говоря, при другом тестировании у меня вообще получилось, что рабоник ропал из списка сотрудников. Из-за некорректных дат получились периоды 01.05.2010-31.12.2010, 01.08.2010-31.12.2010 и 01.03.2012-01.01.2099. В итоге получилась пустота в периоде 01.01.2011-29.02.2012. А поскольку по умолчанию список работников отображается на текущую дату (18.01.2012), то у меня этот работник вообще из списка пропал, т.к. в этот момент в его назначениях пустота. Всё ещё считаете, что это реально продуманная ситуация и пустоты были оставлены специально?  |
|
Вернуться к началу |
|
 |
DUCKKK Большой шоколадный орден

Зарегистрирован: 16.09.2009 Сообщения: 1691
|
Добавлено: Ср Янв 18, 2012 17:03 Заголовок сообщения: |
|
|
А если ввести запреты, то как тогда будет отрабатывать "внесение изменений в историю назначений работников" при вводе в действие каких-то изменений штатного расписания с выбором соответствующего параметра в диалоге ввода в действие ШР
Все ещё считаете, что разработчики программы идиоты? |
|
Вернуться к началу |
|
 |
|