|
Помогите разобраться с результатами запроса.... | ☑ | ||
---|---|---|---|---|
0
Darhon
25.10.11
✎
08:50
|
Доброе время суток. Помогите в такой ситуации: В документе заказа покупателю есть кусок кода отвечающий за превышение кредита:
Если ЗапретитьПревышениеКредитаПриОперативномПроведении Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента); Запрос.Текст = "ВЫБРАТЬ | РасчетыПоДоговору.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток, |ИЗ | РегистрНакопления.РасчетыСКонтрагентами.Остатки(, ДоговорКонтрагента = &ДоговорКонтрагента) КАК РасчетыПоДоговору |ИТОГИ ПО | СуммаВзаиморасчетовОстаток"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда СуммаВзаиморасчетовОстаток = ?(Выборка.СуммаВзаиморасчетовОстаток= NULL, 0, Выборка.СуммаВзаиморасчетовОстаток); РасчетыПоДоговору.СуммаУпрОстаток = ?(Выборка.СуммаВзаиморасчетовОстаток= NULL, 0, Выборка.СуммаВзаиморасчетовОстаток); СуммаВзаиморасчетовПоДокументу = ОбщегоНазначения.ПересчитатьИзВалютыВВалюту(СуммаДокумента, ВалютаДокумента, ДоговорКонтрагента.ВалютаВзаиморасчетов, УправлениеВзаиморасчетами.КурсДокумента(Ссылка,мВалютаРегламентированногоУчета), КурсВзаиморасчетов, УправлениеВзаиморасчетами.КратностьДокумента(Ссылка, мВалютаРегламентированногоУчета), КратностьВзаиморасчетов); Валюта = ДоговорКонтрагента.ВалютаВзаиморасчетов; Если (СуммаВзаиморасчетовОстаток + СуммаВзаиморасчетовПоДокументу) < ДоговорКонтрагента.ДопустимаяСуммаЗадолженности Тогда Проблема в том, что он иногда возвращает то положительные, то отрицательные значения. Хотя эти контрагенты должны. Думаю дело в том, что он еще и смотрит открытые заказы на этот договор. Вопрос как переписать код или запрос, чтобы весь долг шел с минусом, ну ли просто не возникало пересечения тех клиентов которые нам должны и которым мы должны :) Заранее спасибо :) |
|||
1
Maxus43
25.10.11
✎
08:53
|
не смотрит никакие заказы, видно же...
смотрит долг по Договору, а не по контрагенту. А по договору и ты должен может быть |
|||
2
Maxus43
25.10.11
✎
08:55
|
и вобще код кривой... ша за
СуммаВзаиморасчетовОстаток = ?(Выборка.СуммаВзаиморасчетовОстаток= NULL, 0, Выборка.СуммаВзаиморасчетовОстаток); и нафиг Итоги в запросе... нафиг такие темы с утра поднимать |
|||
3
Darhon
25.10.11
✎
08:57
|
(1)(2) Программист написавшие код сей уехал и где он уже никто не знает. А с утра такие темы, потому что и меня озадачили... То проводит заказ должника, то нет...надо чтоб совсем всегда нет :)
|
|||
4
Darhon
25.10.11
✎
08:58
|
(1) Заказы учитывает проверял....вот только с результатлом траблы :)
|
|||
5
Maxus43
25.10.11
✎
09:01
|
(4) данный запрос возвращает остаток конкретно по договору... больше ничего. Остаток по договору тоже содержит в себе манипуляции с заказами, но не по конкретным а по всем у данного договора. Из типовых лучше скомуниздить контроль задолженности
+ Итоги из запроса убрать нафиг |
|||
6
Darhon
25.10.11
✎
09:06
|
(5) Итоги убрал. Скомуниздить возможности нету. Нету типовой. Результат по модулю верный. Мне не ясно по какому принципу он в одном контрагенте пишет -100 000, а в другом + 50 000, хотя оба должны денег.
|
|||
7
Darhon
25.10.11
✎
09:08
|
(5) То есть не ясно < или > ставить в проверке условия...
|
|||
8
Maxus43
25.10.11
✎
09:08
|
(6) долг по договору возвращает, а не по контрагенту. Погляди в регистр расчеты с контрагентами, поставь там отбор по конкретному договору - увидиш все движения по нему и почему должны именно вы
|
|||
9
Maxus43
25.10.11
✎
09:09
|
имеется ввиду что СуммаВзаиморасчетовОстаток возвращает типа неправильно? тогда (8)
|
|||
10
Darhon
25.10.11
✎
09:20
|
(9) Я наверное криво объясняю. Сами цифры-то верные, вот только мне не уловить, почему один долг идет со знаком минус, а другой вдруг со знаком плюс...из-за это заказы все же проводятся некоторые. даже с долгом контрагента. А вот как сделать чтобы программа понимала что это долг все равно...не знаю (
|
|||
11
Darhon
25.10.11
✎
09:21
|
(9) ну и да. я погимаю, что по договру, но у контрагента в основном один договор :)
|
|||
12
Maxus43
25.10.11
✎
09:27
|
погляди в регистр Расчеты с контрагентами с отбором по договору, видно будет почему у одного так, у другого по другому... я ж не вижу что там в регистре
|
|||
13
PVV65
25.10.11
✎
09:29
|
(0) Вместо регистра "РасчетыСКонтрагентами" возьми регистр "ВзаиморасчетыСКонтрагентами".
|
|||
14
Darhon
25.10.11
✎
09:33
|
(13) Что это может дать??
|
|||
15
Maxus43
25.10.11
✎
09:39
|
координально не измениться, они почти дублирующие... я бы заново переписал как надо
|
|||
16
PVV65
25.10.11
✎
09:42
|
(14) РН "РасчетыСКонтрагентами" - план (с учетом заказов), РН "ВзаиморасчетыСКонтрагентами" - факт (реальные долги).
|
|||
17
Maxus43
25.10.11
✎
09:42
|
но вобще да, для задач контроля остатков используется Взаиморасчеты именно
|
|||
18
Darhon
25.10.11
✎
09:54
|
(16)(17) нужно именно с учетом активных заказов. Поэтому не подойдет :((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |