|
v8: Помогите со схемой компоновки | ☑ | ||
---|---|---|---|---|
0
dhao
06.09.12
✎
13:57
|
В схеме запрос на регистр. Регистр остатков. Запрос по периоду, с периодичностью в день. Выводятся начальный остаток, приход, расход и конечный остаток. Если в первый день есть только расход, тогда конечный остаток отрицательный, соответственно начальный на следующий день тоже.
НачОст Прих Расх КонОст -37,50 -37,50 -37,50 37,50 -75,00 -75,00 37,50 -112,50 -112,50 1 750,00 37,50 1 600,00 1 600,00 108,70 1 491,30 1 491,30 108,70 1 382,61 1 382,61 108,70 1 273,91 Подскажите как сделать чтобы после прихода начальный и конечный остатки считались без учета минусов? Третий день всю голову изломал... |
|||
1
Kashemir
06.09.12
✎
13:59
|
Ясно что ничего не ясно
|
|||
2
dhao
06.09.12
✎
14:01
|
Вот сам запрос
ВЫБРАТЬ РАЗРЕШЕННЫЕ ОперативныйПланОстаткиИОбороты.Период КАК Период, ОперативныйПланОстаткиИОбороты.Сценарий КАК Сценарий, ОперативныйПланОстаткиИОбороты.Номенклатура КАК Номенклатура, ОперативныйПланОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ОперативныйПланОстаткиИОбороты.Подразделение КАК Подразделение, ОперативныйПланОстаткиИОбороты.Проект КАК Проект, ОперативныйПланОстаткиИОбороты.ПлановыйОстатокНачальныйОстаток КАК НачальныйОстаток, ОперативныйПланОстаткиИОбороты.ПлановыйОстатокПриход КАК Приход, ОперативныйПланОстаткиИОбороты.ПлановыйОстатокРасход КАК Расход, ОперативныйПланОстаткиИОбороты.ПлановыйОстатокКонечныйОстаток КАК КонечныйОстаток ПОМЕСТИТЬ Планы {ВЫБРАТЬ Период, Сценарий.*, Номенклатура.*, ХарактеристикаНоменклатуры.*, Подразделение.*, Проект.*, НачальныйОстаток, Приход, Расход, КонечныйОстаток} ИЗ РегистрНакопления.ОперативныйПлан.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ОперативныйПланОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ Планы.Период КАК Период, Планы.Сценарий КАК Сценарий, Планы.Номенклатура КАК Номенклатура, Планы.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, Планы.Подразделение КАК Подразделение, Планы.Проект КАК Проект, Планы.НачальныйОстаток КАК НачальныйОстаток, Планы.Приход КАК Приход, Планы.Расход КАК Расход, Планы.КонечныйОстаток КАК КонечныйОстаток, СУММА(ПланыБ.Расход) КАК РасходБудущего, ЕСТЬNULL(ЕСТЬNULL(ВЫРАЗИТЬ(СтраховойЗапасНоменклатура.Значение КАК ЧИСЛО), ВЫРАЗИТЬ(СтраховойЗапасНГ.Значение КАК ЧИСЛО)), 30) КАК СтраховойЗапас {ВЫБРАТЬ Период, Сценарий.*, Номенклатура.*, ХарактеристикаНоменклатуры.*, Подразделение.*, Проект.*, НачальныйОстаток, Приход, Расход, КонечныйОстаток, РасходБудущего, СтраховойЗапас} ИЗ Планы КАК Планы ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СтраховойЗапасНоменклатура ПО Планы.Номенклатура = СтраховойЗапасНоменклатура.Объект И (СтраховойЗапасНоменклатура.Свойство = &СвойствоНоменклатура) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СтраховойЗапасНГ ПО (Планы.Номенклатура.НоменклатурнаяГруппа = СтраховойЗапасНоменклатура.Объект) И (СтраховойЗапасНоменклатура.Свойство = &СвойствоНГ) ЛЕВОЕ СОЕДИНЕНИЕ Планы КАК ПланыБ ПО (ПланыБ.Период МЕЖДУ ДОБАВИТЬКДАТЕ(Планы.Период, ДЕНЬ, 1) И ДОБАВИТЬКДАТЕ(Планы.Период, ДЕНЬ, ЕСТЬNULL(ЕСТЬNULL(ВЫРАЗИТЬ(СтраховойЗапасНоменклатура.Значение КАК ЧИСЛО), ВЫРАЗИТЬ(СтраховойЗапасНГ.Значение КАК ЧИСЛО)), 30))) И Планы.Номенклатура = ПланыБ.Номенклатура И Планы.ХарактеристикаНоменклатуры = ПланыБ.ХарактеристикаНоменклатуры И Планы.Подразделение = ПланыБ.Подразделение И Планы.Проект = ПланыБ.Проект И Планы.Сценарий = ПланыБ.Сценарий СГРУППИРОВАТЬ ПО Планы.Сценарий, Планы.Номенклатура, Планы.ХарактеристикаНоменклатуры, Планы.Подразделение, Планы.Проект, Планы.НачальныйОстаток, Планы.Приход, Планы.Расход, Планы.КонечныйОстаток, ЕСТЬNULL(ЕСТЬNULL(ВЫРАЗИТЬ(СтраховойЗапасНоменклатура.Значение КАК ЧИСЛО), ВЫРАЗИТЬ(СтраховойЗапасНГ.Значение КАК ЧИСЛО)), 30), Планы.Период |
|||
3
k1us181b
06.09.12
✎
14:03
|
(1)+1
|
|||
4
MadHead
06.09.12
✎
14:05
|
надо что бы отрицательные остатки не отображались но попадали в итоги?
|
|||
5
dhao
06.09.12
✎
14:08
|
Наоборот, надо чтоб пока они отрицательные, они тоже отображались, но как только есть приход, чтоб отрицательные остатки не учитывались.
|
|||
6
dhao
06.09.12
✎
14:29
|
Если бы результат запроса можно было обойти, найти этот минус на момент прихода, и дальше его просто прибавлять к остаткам вопросов бы не было, но как сделать такое в схеме, ума не приложу.
|
|||
7
vicof
06.09.12
✎
14:33
|
а просто на конечный остаток смотреть не судьба?
вообще зачем такой отчет? |
|||
8
dhao
06.09.12
✎
14:39
|
Смотреть на конечный остаток, судьба, тока неинформативно. А отчет используется при планировании закупок на будующий год. Смотрят на какую дату запланированы поставки, и есть ли планы продаж по товару до поставок. Если есть планы продаж, планируют доп.закупки. А сейчас видно что закупки планировать надо, но когда должен закончиться товар не понятно, потому что конечный остаток неправильный.
|
|||
9
acsent
06.09.12
✎
14:42
|
тебе нужны не остатки а приходы
|
|||
10
dhao
06.09.12
✎
14:56
|
а поподробнее?
|
|||
11
dhao
06.09.12
✎
15:49
|
НачОст Прих Расх КонОст
-37,50 -37,50 37,50 -75,00 -75,00 37,50 -112,50 -112,50 1 750,00 37,50 1 600,00<-- Если НачОст < 0 и есть приход тогда НачОст это дельта. 1 600,00 108,70 1 491,30 1 491,30 108,70 1 382,61 1 382,61 108,70 1 273,91 Как бы заставить схему компановки эту дельту запомнить и прибавлять её потом к остаткам. Может так будет проще? |
|||
12
Rovan
гуру
06.09.12
✎
15:55
|
(11) ИМХО в самое постановке задачи бред какой-то...
ну выведи дельту в отдельное поле в запросе |
|||
13
dhao
06.09.12
✎
16:13
|
А вот как? при выводе строки, если брать минимум(НачОст) тогда после -112.5 в следующей строке будет 1600
|
|||
14
Bober
06.09.12
✎
17:12
|
(0)
- убрать минусы в учете и не выдумывать костыли. Самый правильный вариант - либо вручную обходить результат запроса и делать корректировки - либо тоже самое делать в СКД через выражения http://infostart.ru/public/86764/ |
|||
15
dhao
06.09.12
✎
18:29
|
-Посмотрел на ВЫЧИСЛИТЬВЫРАЖЕНИЕ() облизнулся и пожалел что работаем на 8.1 :(
-Регистр и так неотрицательный, поэтому не совсем понимаю что значит убрать минусы. Просто с периодичностью в день, по некоторым позициям попадает первые пару дней только расход, поэтому и лезут минусы в Остатки. -Как можно в ручную обойти результат запроса в СКД? Результат выгружается в поле табличного документа, а вот как к нему обратиться? Пробовал в процедуре ОбновлениеОтображения(), данные не нашел как вытащить. Может есть какой-то способ? |
|||
16
Bober
07.09.12
✎
18:33
|
(15)
Регистр неотрицательный, но минусы есть. Программно выводишь СКД, после вывода обходишь табличный документ. Либо предварительно получаешь данные через запрос, потом подпихиваешь обработанную таблицу значений в СКД для красивого вывода. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |