Форум Чистова. Подготовка к экзаменам 1С

Аттестация "1С:Специалист" => Аттестация "1С:Специалист по платформе 1С:Предприятие 8.3 и 8.2" => Тема начата: SergTH000 от Август 27, 2010, 01:21:44 am

Название: Задача 1.37
Отправлено: SergTH000 от Август 27, 2010, 01:21:44 am
Кто как определяет две эти проклятые даты: ДатаПолнойОтгрузки и ДатаПоследнегоНачисленияПени? Где то здесь же на форуме читал, что их надо из регистре накопления вытаскивать, но там без реальных таблиц регистров никак не получается. Можно конечно их в РС запихивать, но что то мне не нравится это: у него несколько регистраторов получается, записи надо будет удалять от туда (после того как клиент все оплатит, они нам по сути не нужны уже)
Название: Задача 1.37
Отправлено: Zhora_Vlg от Октябрь 07, 2010, 05:19:03 pm
Получаю эти даты из виртуальной таблицы ОстаткиИОбороты с периодичностью Регистратор и условием что КоличествоОстаток после этого регистратора стало 0 или ПениПриход в данном регистраторе > 0

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


Вложения:
Zhora_Vlg-1.37.dt
Название: Задача 1.37
Отправлено: SergTH000 от Октябрь 08, 2010, 01:12:10 am
Zhora_Vlg,
Quote
Получаю эти даты из виртуальной таблицы ОстаткиИОбороты

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

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

 А в чем смысл счета то, тогда, если он без суммы=)Или ты про что?
Название: Задача 1.37
Отправлено: User_OKA от Октябрь 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
Название: Задача 1.37
Отправлено: hapcher от Февраль 21, 2011, 11:02:54 pm
Решила на 2х регистрах накопления остатки:
 1. ОстаткиПоСчетам: измерения - Контрагент, Счет; ресурсы - Сумма. Используется для отражения задолженности компании перед контрагентом по отгрузке.
 Движения в "+" - документ Счет.
 Движения в "-" - документ Расх. накл.
 2. Взаиморасчеты: измерения - Контрагент, Счет; ресурсы - Сумма, Пени. Используется для отражения задолженности контрагента перед компанией по отгрузке.
 Движения в "+" - документ Счет.
 Движения в "-" - документ Приход денег.

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


Вложения:
_1_37.dt
Название: Задача 1.37
Отправлено: Lukashov_as от Май 23, 2011, 02:41:29 pm
Тоже через 2 регистра
 но по своему:)
 не оптимизировал в приходе денег конечно надо было через МенеджерВТ передать но уже ломало
Вложения:
1_37_lukashov.dt
Название: Задача 1.37
Отправлено: ArturLn от Июнь 30, 2011, 02:45:16 pm
Отгруженные и Неоплаченные = Неоплаченные - Неотгруженные
Название: Задача 1.37
Отправлено: OlegSm от Август 18, 2011, 09:47:51 am
Решил на 3х регистрах остатков:
 1. Счета: измерение Счет, ресурс Сумма. Задолженность компании перед контрагентом по отгрузке(правда нет измерения Контрагент - условие задачи его не требует).
 Движения в "+" - документ Счет.
 Движения в "-" - документ Расх. накл.
 2. ЗадолженностьПокупателя: измерение Счет, ресурсы Сумма. Задолженность контрагента перед компанией по отгрузке без учета пени.
 Движения в "+" - документ Счет.
 Движения в "-" - документ Приход денег(ПД).
 3. Пени: измерение Счет, ресурсы Сумма. Задолженность контрагента перед компанией по пеням.
 Движения в "+" - начисляние пени в ПД.
 Движения в "-" - оплата пени в ПД.

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

 В отчете "Анализ счета за период" непонятно что такое колонка "Задолженность" - это остаток на конец регистра или сумма документа ?
 Я сделал четыре доп. колонки "Отгрузка", "Задолженность по отгрузке", "Оплата пеней" и "Задолженность по пеням" как остаток на конец и расход регистра.
Вложения:
1.37_OlegSm.dt
Название: Задача 1.37
Отправлено: DoctorRoza от Август 24, 2011, 11:07:09 pm
Все 3 задача раздела № 1 по расчету пени нужно решить обязательно .. очень хитрые задачи ..
Вложения:
DoctorRoza_1_37.dt
Название: Задача 1.37
Отправлено: Denov от Август 25, 2011, 09:38:07 am
DoctorRoza, конечно "хитрые". У вас кстати на трех регистрах, а это не очень хорошо, и в отчете "Анализ" зачем использовать вирт. таблицу ОстаткиИОбороты, просто Оборотов по моему достаточно.

 Мое решения на двух регистрах, на мой взгляд оптимальное и простое (по крайне мере проще чем здесь выше выложено). Видел решение и на одном регистре, но оно мне показалось очень емким.
Вложения:
Denov_1.37.dt
Название: Задача 1.37
Отправлено: DoctorRoza от Август 25, 2011, 11:13:16 am
Denov, вот до меня никак не дойдет, что же лучше .. либо лишний ресурс/измерение добавить в регистры или добавлять отдельный регистр. Видится логичным, что работать легче с отдельным регистром, ведь он выступает как отдельный источник данных, отдельная таблица. В данной задаче, пени выступают как данные, которые нужно работать "в плотную". Они критичны .. поэтому и видеться целесообразным их вынести в отдельный регистр. Вы правы, что это менее оптимально, но вот насчет простоты .. это вызывает сомнение. Хотя, в итоге, все зависит от компетенции разработчика, найти вот эту "золотую середину".
 ////////////////
 А вот что мне бросилось в глаза .. в приходе .. не ошибка ..
 |ВЫБРАТЬ
     |   ВзаиморасчетыОстатки.Счет КАК Счет,
     |   ЕСТЬNULL(ВзаиморасчетыОстатки.СуммаОстаток, 0) КАК Долг,
     |   ЕСТЬNULL(ВзаиморасчетыОстатки.ПениОстаток, 0) КАК Пени
     |ПОМЕСТИТЬ ВТОтгрНеОпл
     |ИЗ
     |   РегистрНакопления.Взаиморасчеты.Остатки(
     |         &Момент,
     |         (НЕ Счет В
     |                  (ВЫБРАТЬ
     |                     Т.Счет
     |                  ИЗ
     |                     ВТНеотгруженныеСчета КАК Т))
     |            И Счет В
     |               (ВЫБРАТЬ
     |                  Т.Счет
     |               ИЗ
     |                  ВТСчетаДок КАК Т)) КАК ВзаиморасчетыОстатки
     |
 Счета Вы получаете из регистра, где параметром является ВТСчетаДок, ограничиваете их. И одновременно получаете эти же счета из ВТСчетаДок, масло масляное .. ))) ..
 Ну а в целом хорошее решение .. 4 подзапросика в последнем пакете правда позабавили .. )))
Название: Задача 1.37
Отправлено: Irmo от Ноябрь 18, 2011, 01:30:22 am
Еще одно решение. Довольно громоздкие запросы, конечно.
 Особенность в том, что новые пени начисляются ДО любых оплат по данному счету. Таким образом, пришедшие деньги расходуются на погашение в том числе свеженачисленных пеней. Если посмотреть на решение DoctorRoza, первая оплата создает задолженность по пени и гасит вовсе не ее, а основной долг. Что противоречит условиям задачи.
 После расчета и погашения пеней по всем счетам, в соответствии с условиями, начинают гаситься основные задолженности.
Вложения:
irmo-1.37.dt
Название: Задача 1.37
Отправлено: kow1976 от Декабрь 02, 2011, 12:27:29 pm
DoctorRoza,

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

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

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

 Такой вариант решения задачи.
 Спасибо за комментарии и замечания.
Вложения:
kow1976_1.37.dt
Название: Задача 1.37
Отправлено: andrew-ko от Февраль 25, 2012, 01:57:31 am
У задачи нужно выделить следующие моменты:

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

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

 3. Проведение "ПриходаДенег" самое насщенное место в задаче. Делаем движения по регистру взаиморасчетов с покупателями. В первую очередь, списываем существующие остатки по пеням. Затем начисляем и списываем остатки по текущим пеням. И в последнюю очеред раскидываем сумму по счетам (если осталось).
 Где хранить пени? Мне кажеться, равноценно, можно признак пеней хранить в измерении, или сумму пеней в ресурсе. Кому что ближе.
 Блокировать нужно оба регистра накопления, т.к. оба обуславливают ход проведения документа.
Название: Задача 1.37
Отправлено: andrew-ko от Март 01, 2012, 12:32:03 am
А вот и пример решения задачи
Вложения:
andrew-ko_1.37.dt
Название: Задача 1.37
Отправлено: Hawk от Март 15, 2012, 09:25:18 pm
Ни какого контроля в документе Расходная делать не нужно?! кто думает по другому?
Название: Задача 1.37
Отправлено: Student90 от Апрель 06, 2012, 09:55:58 pm
Здравствуйте!
 Опять напоролся на собственное непонимание условий в вирт.таблицах...Если не трудно, подскажите, как можно исправить решение.
Вложения:
5683327.dt
Название: Задача 1.37
Отправлено: old_guest от Апрель 11, 2012, 05:08:30 pm
Quote (andrew-ko)
1. При проведении счета возникают обязанности по оплате (у покупателя) и по отгрузке (у продавца). Это значит, что делаем записи прихода в два регистра: ОстаткиПоСчетам (обязанности по отгурзке) и Взаиморасчеты (обязанности по оплате).
 Итак: документ счет делает простые движения прихода по двум регистрам.


 Не совсем верно. Движения по увеличению долга (по регистру Взаиморасчёты) должна делать РН.
Название: Задача 1.37
Отправлено: andrew-ko от Апрель 12, 2012, 01:43:22 am
safer,
 
Quote (safer)
Движения по увеличению долга (по регистру Взаиморасчёты) должна делать РН.


 Это-то как раз и не правильно.
 Обязанности по отгрузке и оплате возникают при проведении счета.

 Долго над этим голову ломал.
 А точку в этом вопросе поставил методист 1С М. Радченко. На форуме для начинающих http://devtrainingforum.v8.1c.ru/forum/ по этой или подобной задаче возникал вопрос.

 В пользу такого решения, указывает и то, что если решать, как вы говорите, то красивых и лаконичных решений просто не может быть. Всё как-то из "подвыверта" выходит. Посмотреть только предложенные решения.
Название: Задача 1.37
Отправлено: old_guest от Апрель 12, 2012, 02:06:22 am
Quote (andrew-ko)
safer,
 Quote (safer)
 Движения по увеличению долга (по регистру Взаиморасчёты) должна делать РН.

 Это-то как раз и не правильно.
 Обязанности по отгрузке и оплате возникают при проведении счета.

 Долго над этим голову ломал.
 А точку в этом вопросе поставил методист 1С М. Радченко. На форуме для начинающих http://devtrainingforum.v8.1c.ru/forum/ по этой или подобной задаче возникал вопрос.

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


 andrew-ko, посмотрите отчет по Счету biggrin . Именно РН увеличивает долг.

Добавлено (12.04.2012, 02:06)
---------------------------------------------
решается без вопросов))) получаете в запросе все неотгруженные, потом все неоплаченные за исключением неотгруженных => это будут неоплаченные и отгруженные, а дальше дело техники wink

Название: Задача 1.37
Отправлено: justaria от Июнь 01, 2012, 01:22:28 pm
Мой вариант (вот, правда, не посмотрела как другие решали - поленилась) confused
 Спасибо тому, кто заглянет в моё решение. smile
Вложения:
justaria_1.37.dt
Название: Задача 1.37
Отправлено: wowanks от Август 30, 2012, 04:22:02 pm
Здавствуйте!
 А кому-нибудь на экзамене попадалась эта задача? Как решали?
Название: Задача 1.37
Отправлено: Pavlyk от Сентябрь 04, 2012, 04:38:45 pm
Хотелось бы услышать комментарии потому что не видел таких решений, все какие то через чур сложные....а можно решить как мне кажется легче.
Вложения:
1.37pavlyk.dt
Название: Задача 1.37
Отправлено: alex7six от Ноябрь 03, 2012, 08:45:16 pm
Посмотрел решение тех кто типа профи.
 Поймите, что задолженность покупателя возникает не в момент выставления счета, а в момент отгрузки, т.е. при проведении расходной накладной.
 Оптимальная архитектура:
 РС ДанныеСчетов
 Измерение - счет
 Ресурсы
 %пени
 ДатаПолнойОтгрузки
 ДатаСчета
 РС НачислениеПенейПосчету - подчинено регистратору ПриходДенег
 Измерение Счет
 Ресурс ДатаПени

 РН Взаиморасчеты
 Измерение Счет
 Ресурсы
 Сумма
 Пеня

 РН ОтгрузкиПоСчетам - не уверен что он нужен в рамках этой задачи, т.к. не надо контроллировать отгрузки.
 Измерение Счет
 Ресурс сумма
Название: Задача 1.37
Отправлено: SAV_tlt от Ноябрь 23, 2012, 11:15:38 am
Решил на одном регистре накопления "Взаиморасчеты" - Измерения:"Счет" Ресурсы: "Сумма", "Пени"... правда, долго продумывал оптимизированный и компактный механизм в рамках данной задачи, но в итоге, как теперь кажется, довольно простое решение... щас 16 билет дорешаю в который входит эта задачка и выложу... буду признателен за критику =)
Название: Задача 1.37
Отправлено: judge от Ноябрь 24, 2012, 06:42:41 pm
На основании http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=574006#574006
 Мой вариант решения задачи.
 Спасибо за комментарии и замечания.
Вложения:
1.37_judge.dt
Название: Задача 1.37
Отправлено: TuMyP1985 от Июль 01, 2013, 01:05:13 am
Мой вариант решения
Вложения:
KTT_1_37.dt
Название: Задача 1.37
Отправлено: artfa от Июль 31, 2013, 10:49:34 pm
очередная геморная задача, отлаживать приходится в два этапа, сначала реализуешь обработку проведения в ПриходДенег чтобы начислились пени, затем начинается второй этап отладки с имеющимися пени.

 Первый отчет 1 в 1 как в з.1.26

 Добавлено (31.07.2013, 22:49)
 ---------------------------------------------
 подправил
Вложения:
1.37.dt
Название: Задача 1.37
Отправлено: umbus от Февраль 19, 2014, 10:54:53 am
To artfa
 Есть ашиПка мааленькая- В отчтете не выводятся суммы "не оплачено пеней" =)
Название: Re: Задача 1.37
Отправлено: halilovvt от Декабрь 04, 2014, 08:09:52 am
Реализовал так, кто что скажет? Вопрос по документу приход денег, в момент проведения документа начисляются пени по отгруженным не оплаченным счетам, далее эти начисленные пени должны сразу списываться этим же документом?
Название: Re: Задача 1.37
Отправлено: Odines от Март 12, 2015, 10:40:42 pm
Как то тяжело пошла задача
Название: Re: Задача 1.37
Отправлено: golod от Октябрь 16, 2015, 05:05:57 pm
Как то тяжело пошла задача
Я осилил проведение денег всего лишь за 3 временные таблицы.WIN! :))
Название: Re: Задача 1.37
Отправлено: rusmosav от Июнь 02, 2016, 08:32:56 am
Прощу оценить.
Название: Re: Задача 1.37
Отправлено: jonik от Сентябрь 15, 2017, 02:53:41 pm
Всем привет. Задача аналогична 1.25\1.26, за исключением запроса в ПриходеДенег, а точнее его последующей обработки.
Название: Re: Задача 1.37
Отправлено: jonik от Март 15, 2018, 02:17:06 pm
Всем привет. Задача аналогична 1.25\1.26, за исключением запроса в ПриходеДенег, а точнее его последующей обработки.
Подкорректировал
Название: Re: Задача 1.37
Отправлено: Briolin от Август 05, 2020, 09:18:38 am
Доброго времени суток! Какая же сложная задача. Можете подсказать верно ли я понимаю алгоритм документа "Движение денег"
1) Допустим "счёт 1 от 01.08.2020 на сумму 3500". Разгрузка полная была 05.08.2020
2) Оплата через приход денег от 07.08.2020 указываем  "счёт 1" , сумма к оплате 2500
3) Пени начисляются на 5 дней просрочки? А если в приходе денег сразу указать сумму 3500, то нужно использовать новую методику проведения и пени не начисляются?