Автор Тема: Задача 3.22  (Прочитано 18676 раз)

0 Пользователей и 1 Гость просматривают эту тему.

sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.22
« : Октябрь 03, 2010, 12:20:53 pm »
Мой вариант решения задачи 3.22
Вложения:
1Cv8_sada_3_22.dt

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 3.22
« Ответ #1 : Октябрь 03, 2010, 07:35:18 pm »
sada, Ну написал бы хоть как ты понял задачу, а то разбирать решения даже не зная что и зачем не охота как то +)
 Как я делал: ОснНачисления - Надбавка, Доп - Оклад, Премия, Удержания - Взносы.
 Я норму дней храню в РС. При расчете Надбавки если ЗначениеФактПД - Норма > 0 получаю базу делю на Норму и умножаю на эту разницу.
 Все остальное в задаче несколько типовое: вводить свои виды и т.д. Ручную корректировку сделал как у Чистова на вебинаре=) Перерасчет осилил только ОН...=) однообразная задача какая то

Добавлено (03.10.2010, 19:27)
---------------------------------------------
sada, Че то я не понял у тебя как учитывается что за каждый переработанный час сотруднику платят надбавку?

Добавлено (03.10.2010, 19:33)
---------------------------------------------
Ух нифига у тебя мудрено все как для ручной корректировки, посмотри мое решение=) Я обработку проведения документа сделал экспортной, из модуля формы вызвыю ее в тразакции передаю в форму результат и отменяю транзакцию все дела - документ не провелся, результат посчитался=)

Добавлено (03.10.2010, 19:35)
---------------------------------------------
sada, И еще самое точное добавить реквизит типа булево - Корректировка, если он истина данные просто записываются в регистр без расчета.


Вложения:
3.22.dt


sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.22
« Ответ #2 : Октябрь 03, 2010, 09:42:54 pm »
SergTH000,
 Да, код хороший, такой вариант можно даже быстрее чем за час написать. 5+ wink

В задаче есть такое условие «После проведения расчетов, в том же расчетном периоде размер суммы может быть признан ошибочным и подлежит исправлению.» - я предполагаю, что это намек на то, что при изменения оклада , надо фиксировать перерасчет в текущем периоде.

Почему ты для расчета передаешь только ссылку, а не готовый набор записей, неужели создание нового набора записей и отбора по регистратору работает быстрее, чем передача готового набора?

И еще, такую схему можно применять для задач где приоритет можно разнести на разные планы видов расчета, а если в задаче с ручным вводом видов расчета , необходимо будет выполнить расчет в такой последовательности "основные -> дополнительные -> основные"
 в зависимости от способа расчета, прийдется глабально менять схему

Я не реализовывал механизм по расчету сверхурочных часов. Как отразить переработку в системе, если все работают по графику. Мне не понятен этот момент, вот недоработку можно отразить уменьшением количества дней работы в месяце, а переработку как? Накручивать не хочется, по этому я просто ввел количество часов переработки в документ, и от него рассчитывал переработку.

Посмотрел той вариант по переработке, думаю он правильный.

« Последнее редактирование: Октябрь 03, 2010, 10:29:18 pm от Андрей »

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 3.22
« Ответ #3 : Октябрь 03, 2010, 10:14:31 pm »
sada,
Quote
Почему ты для расчета передаешь только ссылку, а не готовый набор записей, неужели создание нового набора записей и отбора по регистратору работает быстрее, чем передача готового набора?

 Честно, не знаю=) мне кажется, что также. Просто я набил руку, у меня такой код на автомате идеь и не хочу ее сбивать. Только из-за скрости.
 
Quote
Я не реализовывал механизм по расчету сверхурочных часов. Как отразить переработку в системе, если все работают по графику. Мне не понятен этот момент, вот недоработку можно отразить уменьшением количества дней работы в месяце, а переработку как? Накручивать не хочется, по этому я просто ввел количество часов переработки в документ, и от него рассчитывал переработку.

 Я думаю что расчетчик сам корректирует график. Например Бельдыев отработал в среду не 8 как предполагалось а 12 расчетчик залез и исправил. На этом мое решение и основывается, фактический период действия как раз то что сотрудник реально отработал. Или может ему норму установят поменьше и получится что он переработает всегда сколько то часов
 
Quote
В задаче есть такое условие «После проведения расчетов, в том же расчетном периоде размер суммы может быть признан ошибочным и подлежит исправлению.» - я предполагаю, что это намек на то, что при изменения оклада , надо фиксировать перерасчет в текущем периоде.

 Да я тоже так подумал: при изменении константы - добавить в перерасчет записи (ну также как мы там из расходной передавали). Да забыл потом=) Я сейчас стараюсь во всех задачах неясности прояснить, завтра сдавать иду=) поэтому бросаю когда уж точно знаю как доделывать=)

Добавлено (03.10.2010, 22:14)
 ---------------------------------------------
 

Quote
Да, код хороший, такой вариант можно даже быстрее чем за час написать. 5+

 Спасибо=) Но идея с корректировкой не моя, взял у Чистова=)
« Последнее редактирование: Октябрь 03, 2010, 10:18:57 pm от Сергей »

sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.22
« Ответ #4 : Октябрь 03, 2010, 10:25:01 pm »
Quote (SergTH000)
Я думаю что расчетчик сам корректирует график. Например Бельдыев отработал в среду не 8 как предполагалось а 12 расчетчик залез и исправил. На этом мое решение и основывается, фактический период действия как раз то что сотрудник реально отработал.

 Да, но вот только график устанавливается не на сотрудника, а на подразделение, в нем не добавиш часы переработки одного человека.
 Но наверное мысль правильная.

Удачи :))) , пиши завтра как и что.. smile


SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 3.22
« Ответ #5 : Октябрь 03, 2010, 10:30:42 pm »
sada, Спасибо, обязательно напишу=)

ut2k5

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Максим
Задача 3.22
« Ответ #6 : Октябрь 05, 2010, 11:52:07 am »
SergTH000, ага мне тоже интересно, удачи на экзамене, скоро и мы там будем smile

hapcher

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марина
Задача 3.22
« Ответ #7 : Октябрь 11, 2010, 04:05:28 pm »
SergTH000, в чем смысл флажка "Корректировка"? Я ввела два начисления за один РП и теперь в базе две записи с ВР "Оклад фиксированной суммой". Может быть, в данной задаче следует использовать вытеснение или как-то организовать сторнирование предыдущих записей?

sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.22
« Ответ #8 : Октябрь 12, 2010, 08:58:10 pm »
hapcher, думаю можно просто в документе условие наложить (провеку на заполненность реквизита "Размер") только по окладу, если размер установлен, то не расчитываем а берем из реквизита а если не установлен то расчитваем , т.е. после расчета если что то не понравилось по окладу, заходим в документ и введя нужную цифру переповодим его.

hapcher

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марина
Задача 3.22
« Ответ #9 : Октябрь 13, 2010, 09:57:43 pm »
А чем для данной задачи не подходит такой вариант: рассчитываем документ, проводим (без расчета), когда захотим откорректировать, опять заходим в этот документ и просто меняем сумму, затем проводим? Насколько я правильно поняла, нам вовсе не обязательно хранить информацию о том, что какая-то запись была откорректирована, нам просто необходимо менять сумму начисления без расчета.

sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.22
« Ответ #10 : Октябрь 14, 2010, 05:06:23 am »
hapcher, Я думаю, мы об одном и том же говорим smile , в этой задаче нет необходимости заполнять реквизиты документа по результатам расчета, по этому после изначального расчета реквизит "размер" будет пустым. А когда необходимо откорректировать записи расчета по этому документу по окладу, мы его открываем и вводим нужное значение, при проведении т.к. реквизит размер не пустой, то уже ничего не считаем по окладу, а берем значение из него.

Zhora_Vlg

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Георгий
Задача 3.22
« Ответ #11 : Октябрь 18, 2010, 05:57:25 am »
Выполнение перерасчета сделал простым перепроведением объектов перерасчета.
 Так можно, кто знает?
Вложения:
Zhora_Vlg-3.22.dt
« Последнее редактирование: Октябрь 18, 2010, 05:57:39 am от Георгий »

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 3.22
« Ответ #12 : Октябрь 18, 2010, 05:32:22 pm »
Zhora_Vlg, Нет, так нельзя=) Получаешь наборы записей кот нужно пересчитать и через общий модуль перерасчитываешь.

Добавлено (18.10.2010, 17:32)
 ---------------------------------------------
 hapcher,

Quote
в чем смысл флажка "Корректировка"? Я ввела два начисления за один РП и теперь в базе две записи с ВР "Оклад фиксированной суммой". Может быть, в данной задаче следует использовать вытеснение или как-то организовать сторнирование предыдущих записей?

 В задаче сказано, что пользователь может изменить результат расчета. А как мы узнаем нужно при проведении документа считать или он уже посмотрел расчет и изменил результат?
 Там где флаг корректировка стоит, результат записи не расчитывается.
« Последнее редактирование: Октябрь 18, 2010, 05:33:04 pm от Сергей »

Zhora_Vlg

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Георгий
Задача 3.22
« Ответ #13 : Октябрь 18, 2010, 05:53:19 pm »
Quote (SergTH000)
Нет, так нельзя=) Получаешь наборы записей кот нужно пересчитать и через общий модуль перерасчитываешь.

 Ты так думаешь, или где то об этом написано?

sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 3.22
« Ответ #14 : Октябрь 18, 2010, 06:55:42 pm »
Zhora_Vlg, Назначение механизма перерасчета определить конкретные записи которые необходимо пересчитать, зачем перерасчитывать весь документ , ради 1, 2... записей.
 чем более что этот документ может еще какие нибудь записи для переасчета зарегистрирует, уже по другим сотрудникам, и вновь прийдется перезаполнять обработку и чтото перепроводить, так цепочку долго раскручивать прийдется smile