Цитата (bilateral)
Мое решение.
Цитата (TuMyP1985)
Да, наверное ошибка в задаче, то же не смог смоделировать последнюю строку отчета в программе.
Тоже не получилось без "1000". При этом второй отчет сам составился так же как в условии (после моделирования первого), и там тоже вылезла та самая 1000.
Прикрепления: bilateral_upr_9.dt(150Kb)
да там точно ошибка, еще я расширил следующее условие -
"в случае если в документе Приход денег указан проект, то происходит погашения задолженности по отгрузке по данному проекту, а в случае если сумма в документе превышает сумму отгрузки, то эта сумма начисляется как аванс", следующим условием
"а в случае если сумма в документе превышает сумму отгрузки, то погашаются задолженности по проектам в порядке их даты оплаты, в случае когда сумма оплаты больше всех долгов по отгрузке, оставшаяся сумма зачитываетсся как аванс" так как считаю нелогичным условие что сумма не списывается по остальным отгрузкам а зачитивается как аванс, в этом случае может возникнуть ситуация когда есть долг по отгрузке и в то же время висит аванс.
просмотрел решение
bilateral, в вашем решении несколько ошибок;
1. Вы намудрили с блокировками, все можно было сделать намного проще;
2. Условие
Код
Запрос.УстановитьПараметр("МоментВремени",
?(Режим = РежимПроведенияДокумента.Неоперативный,МоментВремени(),Неопределено);
здесь совершенно не к чему, почитайте в СП про момент вермени.
3. и еще похоже у вас неправильные алгоритмы, так как при проведении расходной в случе анличия аванса должны делаться 3 движения, т.е. 1-отргрузка по проекту, 2-уменьшения аванса на сумму отгрузки либо сумму аванса, 3-оплата по огрузке на сумму из п.2, а у вас делаются только два (см. цитату ниже).
есть +, вы настроили отчет через дополнительное поле порядок, взял себе на вооружение
Добавлено (21.06.2013, 22:35)
---------------------------------------------
Цитата (whisk001)
Похоже часть условий к задаче находится во втором отчете "Взаиморасчеты за период".
ИМХО, во первых, в расходной накладной должна обрабатываться возможность 3-х движений, а не двух:
Рассмотрим ситуацию с "красным цветком":
Остаток аванса 1000.
Делаем расходную накладную по проекту 2 на сумму 6000
1-е движение - "Отгрузка" 6000
2-е движение "Оплата" - 1000
3-е движение "Зачет аванса" - 1000
так оно и есть
кому интересно, выгрузку прилагаю