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

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

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.37
« : Август 27, 2010, 01:21:44 am »
Кто как определяет две эти проклятые даты: ДатаПолнойОтгрузки и ДатаПоследнегоНачисленияПени? Где то здесь же на форуме читал, что их надо из регистре накопления вытаскивать, но там без реальных таблиц регистров никак не получается. Можно конечно их в РС запихивать, но что то мне не нравится это: у него несколько регистраторов получается, записи надо будет удалять от туда (после того как клиент все оплатит, они нам по сути не нужны уже)

Zhora_Vlg

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Георгий
Задача 1.37
« Ответ #1 : Октябрь 07, 2010, 05:19:03 pm »
Получаю эти даты из виртуальной таблицы ОстаткиИОбороты с периодичностью Регистратор и условием что КоличествоОстаток после этого регистратора стало 0 или ПениПриход в данном регистраторе > 0

Добавлено (07.10.2010, 17:19)
---------------------------------------------
Я вот не указал сумму в счете, а указываю их в расходной.
 Так можно делать или нет?


Вложения:
Zhora_Vlg-1.37.dt


SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.37
« Ответ #2 : Октябрь 08, 2010, 01:12:10 am »
Zhora_Vlg,
Quote
Получаю эти даты из виртуальной таблицы ОстаткиИОбороты

 Параметр ДатаНачала = Неопределено? Скорее всего да, только это не нравится. Хотя интересно

Quote
Я вот не указал сумму в счете

 А в чем смысл счета то, тогда, если он без суммы=)Или ты про что?

User_OKA

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Валерий
Задача 1.37
« Ответ #3 : Октябрь 13, 2010, 12:56:29 pm »
Zhora_Vlg

В твоем решении получается например:

счет от 01.10.2010 на 5000
 расходная от 05.10.2010 отгрузили полностью

оплата 10.10.2010 на 5000

Пени не начисляются, хотя должны за 5 дней просрочки !!

Какой порядок проведения документа Приход денег ?!
 1. Начислить пени
 2. Распределить сумму оплаты на пени (Остаток + Начисленные пени п.1)
 3. Распределить оставшуюся сумму оплаты на оплату самих счетов

Набросал решение:


Вложения:
1_37.dt
« Последнее редактирование: Октябрь 13, 2010, 02:05:59 pm от Валерий »

hapcher

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марина
Задача 1.37
« Ответ #4 : Февраль 21, 2011, 11:02:54 pm »
Решила на 2х регистрах накопления остатки:
 1. ОстаткиПоСчетам: измерения - Контрагент, Счет; ресурсы - Сумма. Используется для отражения задолженности компании перед контрагентом по отгрузке.
 Движения в "+" - документ Счет.
 Движения в "-" - документ Расх. накл.
 2. Взаиморасчеты: измерения - Контрагент, Счет; ресурсы - Сумма, Пени. Используется для отражения задолженности контрагента перед компанией по отгрузке.
 Движения в "+" - документ Счет.
 Движения в "-" - документ Приход денег.

Запрос в документе "Приход денег" получился достаточно громоздким, но не сложным.


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

Lukashov_as

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Лукашов Андрей Сергеевич
Задача 1.37
« Ответ #5 : Май 23, 2011, 02:41:29 pm »
Тоже через 2 регистра
 но по своему:)
 не оптимизировал в приходе денег конечно надо было через МенеджерВТ передать но уже ломало
Вложения:
1_37_lukashov.dt
« Последнее редактирование: Май 23, 2011, 02:42:10 pm от Лукашов Андрей Сергеевич »

ArturLn

  • Модератор
  • Новичок
  • *****
  • Сообщений: 0
  • ФИО: Artur
Задача 1.37
« Ответ #6 : Июнь 30, 2011, 02:45:16 pm »
Отгруженные и Неоплаченные = Неоплаченные - Неотгруженные

OlegSm

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Олег Смольников
Задача 1.37
« Ответ #7 : Август 18, 2011, 09:47:51 am »
Решил на 3х регистрах остатков:
 1. Счета: измерение Счет, ресурс Сумма. Задолженность компании перед контрагентом по отгрузке(правда нет измерения Контрагент - условие задачи его не требует).
 Движения в "+" - документ Счет.
 Движения в "-" - документ Расх. накл.
 2. ЗадолженностьПокупателя: измерение Счет, ресурсы Сумма. Задолженность контрагента перед компанией по отгрузке без учета пени.
 Движения в "+" - документ Счет.
 Движения в "-" - документ Приход денег(ПД).
 3. Пени: измерение Счет, ресурсы Сумма. Задолженность контрагента перед компанией по пеням.
 Движения в "+" - начисляние пени в ПД.
 Движения в "-" - оплата пени в ПД.

 В запросе в документе "Приход денег" 9 подзапросов:
 
Code
Результат = Запрос.ВыполнитьПакет();
 // Результат[0..5] - вт
 // Результат[6] - начисление пени
 // Результат[7] - оплата задолженности по пеням
 // Результат[8] - оплате задолженности по отгрузке
 

 В отчете "Анализ счета за период" непонятно что такое колонка "Задолженность" - это остаток на конец регистра или сумма документа ?
 Я сделал четыре доп. колонки "Отгрузка", "Задолженность по отгрузке", "Оплата пеней" и "Задолженность по пеням" как остаток на конец и расход регистра.
Вложения:
1.37_OlegSm.dt
« Последнее редактирование: Август 18, 2011, 11:37:51 am от Олег Смольников »

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.37
« Ответ #8 : Август 24, 2011, 11:07:09 pm »
Все 3 задача раздела № 1 по расчету пени нужно решить обязательно .. очень хитрые задачи ..
Вложения:
DoctorRoza_1_37.dt

Denov

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Денис Рыженков
Задача 1.37
« Ответ #9 : Август 25, 2011, 09:38:07 am »
DoctorRoza, конечно "хитрые". У вас кстати на трех регистрах, а это не очень хорошо, и в отчете "Анализ" зачем использовать вирт. таблицу ОстаткиИОбороты, просто Оборотов по моему достаточно.

 Мое решения на двух регистрах, на мой взгляд оптимальное и простое (по крайне мере проще чем здесь выше выложено). Видел решение и на одном регистре, но оно мне показалось очень емким.
Вложения:
Denov_1.37.dt

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.37
« Ответ #10 : Август 25, 2011, 11:13:16 am »
Denov, вот до меня никак не дойдет, что же лучше .. либо лишний ресурс/измерение добавить в регистры или добавлять отдельный регистр. Видится логичным, что работать легче с отдельным регистром, ведь он выступает как отдельный источник данных, отдельная таблица. В данной задаче, пени выступают как данные, которые нужно работать "в плотную". Они критичны .. поэтому и видеться целесообразным их вынести в отдельный регистр. Вы правы, что это менее оптимально, но вот насчет простоты .. это вызывает сомнение. Хотя, в итоге, все зависит от компетенции разработчика, найти вот эту "золотую середину".
 ////////////////
 А вот что мне бросилось в глаза .. в приходе .. не ошибка ..
 |ВЫБРАТЬ
     |   ВзаиморасчетыОстатки.Счет КАК Счет,
     |   ЕСТЬNULL(ВзаиморасчетыОстатки.СуммаОстаток, 0) КАК Долг,
     |   ЕСТЬNULL(ВзаиморасчетыОстатки.ПениОстаток, 0) КАК Пени
     |ПОМЕСТИТЬ ВТОтгрНеОпл
     |ИЗ
     |   РегистрНакопления.Взаиморасчеты.Остатки(
     |         &Момент,
     |         (НЕ Счет В
     |                  (ВЫБРАТЬ
     |                     Т.Счет
     |                  ИЗ
     |                     ВТНеотгруженныеСчета КАК Т))
     |            И Счет В
     |               (ВЫБРАТЬ
     |                  Т.Счет
     |               ИЗ
     |                  ВТСчетаДок КАК Т)) КАК ВзаиморасчетыОстатки
     |
 Счета Вы получаете из регистра, где параметром является ВТСчетаДок, ограничиваете их. И одновременно получаете эти же счета из ВТСчетаДок, масло масляное .. ))) ..
 Ну а в целом хорошее решение .. 4 подзапросика в последнем пакете правда позабавили .. )))

Irmo

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Irmo-dono
Задача 1.37
« Ответ #11 : Ноябрь 18, 2011, 01:30:22 am »
Еще одно решение. Довольно громоздкие запросы, конечно.
 Особенность в том, что новые пени начисляются ДО любых оплат по данному счету. Таким образом, пришедшие деньги расходуются на погашение в том числе свеженачисленных пеней. Если посмотреть на решение DoctorRoza, первая оплата создает задолженность по пени и гасит вовсе не ее, а основной долг. Что противоречит условиям задачи.
 После расчета и погашения пеней по всем счетам, в соответствии с условиями, начинают гаситься основные задолженности.
Вложения:
irmo-1.37.dt
« Последнее редактирование: Ноябрь 18, 2011, 01:51:47 am от Irmo-dono »

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.37
« Ответ #12 : Декабрь 02, 2011, 12:27:29 pm »
DoctorRoza,

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

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

 И самое интересное это отчет «Анализ состояния счет» я думаю, что отчет должен показывать Неуплаченную пеню на дату отчета, а не на дату документа(остатки по пене). Т.е. сколько мы должны заплатить по счету и по пене, если новый документ ПриходДенег будет вводиться датой отчета.

 Такой вариант решения задачи.
 Спасибо за комментарии и замечания.
Вложения:
kow1976_1.37.dt

andrew-ko

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.37
« Ответ #13 : Февраль 25, 2012, 01:57:31 am »
У задачи нужно выделить следующие моменты:

 1. При проведении счета возникают обязанности по оплате (у покупателя) и по отгрузке (у продавца). Это значит, что делаем записи прихода в два регистра: ОстаткиПоСчетам (обязанности по отгурзке) и Взаиморасчеты (обязанности по оплате).
 Итак: документ счет делает простые движения прихода по двум регистрам.

 2. При проведении расходной накладной проверяем остаток по счету в регистре ОстаткиПоСчетам (хорошо бы это сделать, так называемой, "новой методикой проведения"). Таким образом: документ "РасходнаяНакладная" делает движения по одному регистру обязанностей по отгрузке с предварительной проверкой наличия этих обязанностей.

 3. Проведение "ПриходаДенег" самое насщенное место в задаче. Делаем движения по регистру взаиморасчетов с покупателями. В первую очередь, списываем существующие остатки по пеням. Затем начисляем и списываем остатки по текущим пеням. И в последнюю очеред раскидываем сумму по счетам (если осталось).
 Где хранить пени? Мне кажеться, равноценно, можно признак пеней хранить в измерении, или сумму пеней в ресурсе. Кому что ближе.
 Блокировать нужно оба регистра накопления, т.к. оба обуславливают ход проведения документа.
« Последнее редактирование: Февраль 25, 2012, 02:00:01 am от Андрей »

andrew-ko

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.37
« Ответ #14 : Март 01, 2012, 12:32:03 am »
А вот и пример решения задачи
Вложения:
andrew-ko_1.37.dt