|
СКД Выражение для пользовательского поля | ☑ | ||
---|---|---|---|---|
0
ШримпРолл
29.07.16
✎
11:12
|
Всем привет.
Создаю в СКД (Платформа 8.3) отчет. Есть следующие поля: Приход, Расход и Остаток. Приход и расход получаю из базы, а остаток должен вычисляться по формуле: приход - расход Создаю пользовательское поле и прописываю в нем Выражение детальных записей "Приход-Расход". Получается Приход|Расход|Остаток 500 | | --------------------- 300 | | --------------------- |400 | ---------------------- 500 | 200 | 300 То-есть остаток считается только когда суммы есть в обоих колонках. Как сделать, чтобы было : 500 | |500 --------------------- 300 | |800 --------------------- |400 |400 ---------------------- 500 | 200 |700 Помогите, пожалуйста? |
|||
1
Nuobu
29.07.16
✎
11:13
|
ЕстьNull(Приход, 0) - ЕстьNull(Расход, 0)
|
|||
2
ШримпРолл
29.07.16
✎
11:16
|
Ого. Спасибо за столь быстрый ответ!
И действительно работает! А реально сделать, чтобы он считал не только по текущей ст роке, а по всем предыдущим( типа баланс) ? Но не суммой (т.к. он посчитает вообще все) , а именно которые были до этой записи? |
|||
3
Горогуля
29.07.16
✎
11:17
|
нарастающая сумма? гугл знает
|
|||
4
ШримпРолл
29.07.16
✎
11:18
|
Да. Наверное так называется.
Спасибо, сейчас почитаю) |
|||
5
Горогуля
29.07.16
✎
11:18
|
или нарастающий итог. попробую в бардачке порыться
|
|||
6
Nuobu
29.07.16
✎
11:20
|
(4) То, что Горогуля советует, то нужно, но попробуй сначала посмотреть про ОстаткиИОбороты в СКД.
|
|||
7
Горогуля
29.07.16
✎
11:20
|
вроде оно
ВЫБРАТЬ КОЛИЧЕСТВО(ПродажиОбороты1.Номенклатура) КАК НомерСтроки, ПродажиОбороты.Номенклатура КАК Номенклатура, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ПОМЕСТИТЬ МатьИхОбороты ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты1 ПО ПродажиОбороты.Номенклатура <= ПродажиОбороты1.Номенклатура СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МатьИхОбороты.Номенклатура, МатьИхОбороты.КоличествоОборот, СУММА(МатьИхОбороты1.КоличествоОборот) КАК НарастающийОборот, МатьИхОбороты.НомерСтроки КАК НомерСтроки ИЗ МатьИхОбороты КАК МатьИхОбороты ЛЕВОЕ СОЕДИНЕНИЕ МатьИхОбороты КАК МатьИхОбороты1 ПО МатьИхОбороты.НомерСтроки >= МатьИхОбороты1.НомерСтроки СГРУППИРОВАТЬ ПО МатьИхОбороты.Номенклатура, МатьИхОбороты.КоличествоОборот, МатьИхОбороты.НомерСтроки УПОРЯДОЧИТЬ ПО НомерСтроки |
|||
8
ШримпРолл
29.07.16
✎
11:26
|
Неслабо))
Я думал, там парой строчек кода обойдется. Сейчас буду тестить. Отпишусь по результатам. Спасибо! |
|||
9
Nuobu
29.07.16
✎
11:28
|
||||
10
Горогуля
29.07.16
✎
11:28
|
(8) нарастающий итог в запросе - это прям классическая задача, которая без бутылки не решается ;) как и нумерация строк. может, какая-то магия СКД есть, но я с ней не знаком
|
|||
11
Nuobu
29.07.16
✎
11:29
|
(10) Есть такая магия. Вот она:
http://forum.infostart.ru/forum86/topic126553/ |
|||
12
Горогуля
29.07.16
✎
11:30
|
(11) пасиба
|
|||
13
ШримпРолл
29.07.16
✎
11:57
|
Большое спасибо, товарищи!
Почти победил. Сейчас все как надо считается и выводится, за исключением случаев, когда нарастающий итог = 0. В таком случае пустая строка. Где я опять косячу? Выражение детальных записей: ЕстьNull(ВычислитьВыражение("Сумма(ЕстьNull(Приход, 0) - ЕстьNull(Расход, 0))", , , "Первая", "Текущая"), 0) Выражение итоговых записей: ЕстьNull(Сумма(Приход) - Сумма(Расход), 0) |
|||
14
Nuobu
29.07.16
✎
12:15
|
(13) Условное оформление. Там ищи представление нуля.
|
|||
15
ШримпРолл
29.07.16
✎
12:20
|
Да. Дело было в этом.
Огромное спасибо! Nuobu и Горогуля, вы супер! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |