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

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

ksandr

  • Проверенный
  • ***
  • Сообщений: 138
  • ФИО: ksandr
Re: Задача 1.26
« Ответ #15 : Январь 12, 2015, 07:12:11 pm »
Согласен, уже не помню или условие не дочитал или забыл просто в запросе. Задачка была не сильно простая. Хотя в принципе на устранения замечания надо только поставить условие, что Не Пени и все, а по факту условие выполнено не полностью и "-" скока там балов:)

Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.26
« Ответ #16 : Февраль 14, 2015, 04:29:48 pm »
гляньте на решение пжл


Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Задача 1.26
« Ответ #17 : Июль 18, 2015, 12:23:02 am »
Условие само по себе содержит неточность, которая делает постановку задачи некорректной. Читаем:
раз в неделю формируется документ «Пени», в котором автоматически должны рассчитываться пени по формуле: «Кол-во дней просрочки» * «% пени» * «оставшаяся сумма долга по счету».

Получается, что каждую неделю надо взять ПенюЗаДень и умножить ее на некое КоличествоДнейПросрочки. Но что значит это КоличествоДнейПросрочки?
Ах да, чуть ниже это поясняется:
Просрочка отсчитывается от даты полной отгрузки плюс срок оплаты (из счета)

И что? Может каждую неделю умножать ПенюЗаДень на все КоличествоДнейПросрочки? Но ведь тогда каждый раз будут получаться бессмысленные огромные суммы.

А что с ПенейЗаДень? Как ее считать? Читаем:
«% пени» * «оставшаяся сумма долга по счету»

Что такое «оставшаяся сумма долга по счету», кто ни будь понимает? На какой момент получать этот остаток долга по счету? Может на конец недели? Или на начало?
Да без разницы! Любой вариант будет лишен смысла, ведь пеня будет считаться крайне не точно.
В понедельник был ДолгПоСчету, во вторник его частично оплатили, а в среду закрыли полностью. Неужели пеня должна начислиться на все дни и на всю сумму?

Хорошо хотя бы четко указано, откуда взять процент:
Процент пеней также указывается в каждом счете

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

Суть в том, что надо организовать начисление Пени за каждый день просрочки.
Пеня за каждый день должна считаться тоже очень просто:
ПеняЗаДень=ОстатокДолга*Процент
где ОстатокДолга – это ОстатокДолгаПоСчету на этот день (не важно начало или конец дня, как угодно),
а Процент – это тот самый Процент пеней, что указан пользователем в документе Счет

Кто-то воскликнет: «Но ведь документ Пеня делается не каждый день!», и будет совершенно прав.
Действительно, документ Пеня провдится один рез в неделю, а значит он должен:
-рассчитать пени для каждого счета за каждый день недели,
-по каждому Счету сложить пени за 7 дней, подведя итог по Счету
-для каждого Счета записать в регистр накопления Суммарную ПенюПоСчетуЗаНеделю

В своем решении я использую три регистра накопления.
-Сначала документ Счет делает приход в рег Заказы
-Затем РН списывает Заказы и приходует в рег ДолгиПоСчетам
-Когда очередная РН списывает последнюю Сумму с остатка в Заказах, то РН делает еще и запись в рег.свед. ДатыПолнойОтгрузки
-Далее проводим документ Пени, который смотрит остатки ДолговПоСчетам за каждый из дней своей недели, рассчитывает суммарную ПенюЗаНеделю по каждому счету и записывает ее в ДолгиПоПеням
-И на последок свою работу делает документ ПриходДенег.
-Сперва он заглядывает в остатки ДолговПоПеням данного контрагента и поочередно списывает их (они тоже хранятся в разрезе Счетов)
-После чего переходит к остаткам ДолговПоСчетам и методично списывает их в порядке возрастания даты Счета.

Отчеты получились простыми.
АнализСчетов получает данные из таблиц ДолгиПоСчетам.Остатки и ДолгиПоПеням.Остатки
Соответственно:
Задолженность по счету – это СуммаОстаток из ДолгиПоСчетам.Остатки
Задолженность по пеням – СуммаОстаток из ДолгиПоПеням.Остатки
Документ Счет берем в любой из таблиц, а ДатаПолнойОтгрузки – из рег.свед. ДатыПолнойОтгрузки

Анализ счета работает на таблицах Обороты всех трех регистров:
ЗаказыОбороты
ДолгиПоСчетамОбороты
ДолгиПоПенямОбороты

Периодичность Регистратор позволяет выводить в отчет поле Документ,
Отгружено – это ЗаказыОбороты.СуммаРасход
Оплачено - ДолгиПоСчетамОбороты.СуммаРасход
Пени - ДолгиПоПенямОбороты.СуммаПриход или -ДолгиПоПенямОбороты.СуммаРасход, в зависимости от того, является ли Регистратор документом Пени или ПриходДенег.

Пока все это печатал, нашел в своем решении и поправил пару недочетов, так что, если найдете косяки – милости прошу ))

Коллеги! Всем желаю, чтобы эта интересная задачка на экзамене не попадалась  :)

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Re: Задача 1.26
« Ответ #18 : Июль 18, 2015, 01:16:02 am »
Условие само по себе содержит неточность, которая делает постановку задачи некорректной. Читаем:
раз в неделю формируется документ «Пени», в котором автоматически должны рассчитываться пени по формуле: «Кол-во дней просрочки» * «% пени» * «оставшаяся сумма долга по счету».

Получается, что каждую неделю надо взять ПенюЗаДень и умножить ее на некое КоличествоДнейПросрочки. Но что значит это КоличествоДнейПросрочки?
Ах да, чуть ниже это поясняется:
Просрочка отсчитывается от даты полной отгрузки плюс срок оплаты (из счета)

И что? Может каждую неделю умножать ПенюЗаДень на все КоличествоДнейПросрочки? Но ведь тогда каждый раз будут получаться бессмысленные огромные суммы.

А что с ПенейЗаДень? Как ее считать? Читаем:
«% пени» * «оставшаяся сумма долга по счету»

Что такое «оставшаяся сумма долга по счету», кто ни будь понимает? На какой момент получать этот остаток долга по счету? Может на конец недели? Или на начало?
Да без разницы! Любой вариант будет лишен смысла, ведь пеня будет считаться крайне не точно.
В понедельник был ДолгПоСчету, во вторник его частично оплатили, а в среду закрыли полностью. Неужели пеня должна начислиться на все дни и на всю сумму?

Хорошо хотя бы четко указано, откуда взять процент:
Процент пеней также указывается в каждом счете

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

Суть в том, что надо организовать начисление Пени за каждый день просрочки.
Пеня за каждый день должна считаться тоже очень просто:
ПеняЗаДень=ОстатокДолга*Процент
где ОстатокДолга – это ОстатокДолгаПоСчету на этот день (не важно начало или конец дня, как угодно),
а Процент – это тот самый Процент пеней, что указан пользователем в документе Счет

Кто-то воскликнет: «Но ведь документ Пеня делается не каждый день!», и будет совершенно прав.
Действительно, документ Пеня провдится один рез в неделю, а значит он должен:
-рассчитать пени для каждого счета за каждый день недели,
-по каждому Счету сложить пени за 7 дней, подведя итог по Счету
-для каждого Счета записать в регистр накопления Суммарную ПенюПоСчетуЗаНеделю

В своем решении я использую три регистра накопления.
-Сначала документ Счет делает приход в рег Заказы
-Затем РН списывает Заказы и приходует в рег ДолгиПоСчетам
-Когда очередная РН списывает последнюю Сумму с остатка в Заказах, то РН делает еще и запись в рег.свед. ДатыПолнойОтгрузки
-Далее проводим документ Пени, который смотрит остатки ДолговПоСчетам за каждый из дней своей недели, рассчитывает суммарную ПенюЗаНеделю по каждому счету и записывает ее в ДолгиПоПеням
-И на последок свою работу делает документ ПриходДенег.
-Сперва он заглядывает в остатки ДолговПоПеням данного контрагента и поочередно списывает их (они тоже хранятся в разрезе Счетов)
-После чего переходит к остаткам ДолговПоСчетам и методично списывает их в порядке возрастания даты Счета.

Отчеты получились простыми.
АнализСчетов получает данные из таблиц ДолгиПоСчетам.Остатки и ДолгиПоПеням.Остатки
Соответственно:
Задолженность по счету – это СуммаОстаток из ДолгиПоСчетам.Остатки
Задолженность по пеням – СуммаОстаток из ДолгиПоПеням.Остатки
Документ Счет берем в любой из таблиц, а ДатаПолнойОтгрузки – из рег.свед. ДатыПолнойОтгрузки

Анализ счета работает на таблицах Обороты всех трех регистров:
ЗаказыОбороты
ДолгиПоСчетамОбороты
ДолгиПоПенямОбороты

Периодичность Регистратор позволяет выводить в отчет поле Документ,
Отгружено – это ЗаказыОбороты.СуммаРасход
Оплачено - ДолгиПоСчетамОбороты.СуммаРасход
Пени - ДолгиПоПенямОбороты.СуммаПриход или -ДолгиПоПенямОбороты.СуммаРасход, в зависимости от того, является ли Регистратор документом Пени или ПриходДенег.

Пока все это печатал, нашел в своем решении и поправил пару недочетов, так что, если найдете косяки – милости прошу ))

Коллеги! Всем желаю, чтобы эта интересная задачка на экзамене не попадалась  :)

Так задачу Вы не сдадите. В условии все вполне нормально и логично. Отгрузили товар частично - никто никому не должен. Отгрузили полность - в течении условленного срока должны прийти оплата, к примеру 1000. Срок оплаты истек, в пришло только 500 - значит в конце недели (конец недели - это 23:59:59, если что) начисляем пени ну сумму 500, через неделю еще раз, если деньги не пришли, если пришли частично - то уже на меньшую сумму, но на полный срок просрочки.
Задача проверяет то как Вы будете искать дату полной отгрузки, срок просрочки, и куда писать пеню будете.

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Задача 1.26
« Ответ #19 : Июль 19, 2015, 02:24:41 am »


Так задачу Вы не сдадите. В условии все вполне нормально и логично. Отгрузили товар частично - никто никому не должен. Отгрузили полность - в течении условленного срока должны прийти оплата, к примеру 1000. Срок оплаты истек, в пришло только 500 - значит в конце недели (конец недели - это 23:59:59, если что) начисляем пени ну сумму 500, через неделю еще раз, если деньги не пришли, если пришли частично - то уже на меньшую сумму, но на полный срок просрочки.
Задача проверяет то как Вы будете искать дату полной отгрузки, срок просрочки, и куда писать пеню будете.

Уважаемый GROOVY, благодарю Вас за ответ!

По условию задачи, Пеня, например, в конце первой недели начисляется за все 7 дней.
Затем она начисляется в конце следующей недели, но уже не за следующие 7 дней, а за 14 (с ДатыПолнойОтгрузки и до конца недели)
При этом пеня, начисленная в первый раз не удаляется, то есть пеня предыдущих недель задваивается каждую неделю.
В конце третьей недели пеня первой недели будет начислена уже три раза и так далее.

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

Думаю, для успешной сдачи надо отключить все попытки мозга исправить такие "интересные" формулировки и делать все ровно так, как написано в задачах ))

Более правильное решение прикрепляю, на этот раз расчет пеней сделал как положено.


Достопочтенный GROOVY, если можно, еще один вопрос.
В своем комментарии Вы пишете:
"Задача проверяет то как Вы будете искать дату полной отгрузки, срок просрочки, и куда писать пеню будете."
Скажите, означает ли это, что главное, чтобы правильно были сделаны эти механизмы?

Вряд ли у Вас есть время загружать мою БД и копаться в коде, поэтому скажу словами.
Приход в остаточный рег.накопления Заказы у меня делает документ Счет.
Когда РН при проведении списывает из Заказов последний остаток суммы по Счету, то делается запись в рег.сведений ДатыПолнойОтгрузки, где храниться Счет и Дата его полной отгрузки.
В дальнейшем ДатуПолнойОтгрузки для Счета я везде получаю из этого регистра сведений.

СрокОплаты (в днях) - это, по заданию, реквизит Счета.
При расчете пени я получаю ДатуНачалаПени=ДатаПолнойОтгрузки+СрокОплаты(в днях)
Если ДатаНачалаПени<=КонцаНедели, то начисляется Пеня.

Пеню храню в ост.рег.накопления ДолгиПоПеням, отдельно от ДолговПоСчетам (недеюсь это не грех).

Как Вы считаете, такое решение имеет право на жизнь?
« Последнее редактирование: Июль 19, 2015, 02:42:13 am от Jones »

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Задача 1.26
« Ответ #20 : Июль 19, 2015, 02:37:44 am »
И вот еще что: как Вы считаете, приемлемо ли в этой задаче (да и в других, в принципе), не испльзовать Количество и не вести на регистрах учет Номенклатуры?
Дело в том, что я в своем решении Количество вообще убрал (т.к. в условии оно не фигурирует), но теперь не уверен, что это допустимо - вдруг Количественный учет надо вести обязательно?

Что касается Номенклатуры, то она у меня есть, но только в ТЧ документов Счет и РН.
В регистре Заказы у меня только Счет и Сумма, а вот в условии задачи Товар упоминается 7 раз, вот например:
"Считается, что товар по счету в конце концов будет отгружен полностью"
У меня же Товар в регистр Заказы не попадает и не списывается оттуда, там только Счет и его Сумма, которую я потом списываю документами РН.

Как Вы считаете не явялется ли это злостным упрощением?
« Последнее редактирование: Июль 19, 2015, 02:39:30 am от Jones »

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Re: Задача 1.26
« Ответ #21 : Июль 19, 2015, 11:43:28 am »
По условию задачи, Пеня, например, в конце первой недели начисляется за все 7 дней.
Затем она начисляется в конце следующей недели, но уже не за следующие 7 дней, а за 14 (с ДатыПолнойОтгрузки и до конца недели)
При этом пеня, начисленная в первый раз не удаляется, то есть пеня предыдущих недель задваивается каждую неделю.
В конце третьей недели пеня первой недели будет начислена уже три раза и так далее.

Да, так и следует из условия.

Цитировать
"Задача проверяет то как Вы будете искать дату полной отгрузки, срок просрочки, и куда писать пеню будете."
Скажите, означает ли это, что главное, чтобы правильно были сделаны эти механизмы?

А как без этого решить задачу?

Цитировать
И вот еще что: как Вы считаете, приемлемо ли в этой задаче (да и в других, в принципе), не испльзовать Количество и не вести на регистрах учет Номенклатуры?
Дело в том, что я в своем решении Количество вообще убрал (т.к. в условии оно не фигурирует), но теперь не уверен, что это допустимо - вдруг Количественный учет надо вести обязательно?

В этой задаче, как мне кажется нет учета товаров вообще.

rusmosav

  • Проверенный
  • ***
  • Сообщений: 137
Re: Задача 1.26
« Ответ #22 : Октябрь 29, 2015, 11:04:45 am »
Прощу оценить.
« Последнее редактирование: Октябрь 29, 2015, 02:37:05 pm от rusmosav »

sokotov.gle

  • Новичок
  • *
  • Сообщений: 1
Re: Задача 1.26
« Ответ #23 : Август 17, 2016, 03:04:10 pm »
Уважаемые коллеги, кто-нибудь разобрался почему во втором отчете к этой задаче 2 документа "Приход денег №76" и у последнего в графе Пени -120?

alfalume

  • Проверенный
  • ***
  • Сообщений: 103
Re: Задача 1.26
« Ответ #24 : Август 23, 2016, 08:09:35 am »
мое решение
« Последнее редактирование: Август 23, 2016, 08:38:10 am от alfalume »

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.26
« Ответ #25 : Август 22, 2017, 01:21:22 pm »
Всем привет. Задача аналогична 1.25
« Последнее редактирование: Август 23, 2017, 11:46:06 am от jonik »

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.26
« Ответ #26 : Февраль 04, 2018, 03:13:26 pm »
Всем привет. Задача аналогична 1.25
Подкорректировал
« Последнее редактирование: Февраль 06, 2018, 01:34:05 pm от jonik »

igarh

  • Новичок
  • *
  • Сообщений: 8
Re: Задача 1.26
« Ответ #27 : Июнь 22, 2018, 06:27:06 am »
вот.