Имя: Пароль:
1C
1С v8
Свернуть таблицу не складывая а вычитая значения
🠗 (Волшебник 16.06.2021 18:07)
,
0 JuixyJes
 
16.06.21
16:47
Добрый день, возник такой вопрос.
Возможно ли свернуть таблицу по одной колонке, но вместо суммирования значений колонок, сделать вычитание??
1 ДенисЧ
 
16.06.21
16:48
Запросом - хоть умножай (а в .19 - и сумму синусов можно )
2 polosov
 
16.06.21
16:49
(0) Что от чего вычитается?
3 polosov
 
16.06.21
16:53
(0) Если в поле есть строка с большим числом из которого хочется вычитать остальные, то остальные надо сделать отрицательными. В школе такое проходят.
4 1Сергей
 
16.06.21
16:54
(2) +1
Что-то непонятное
5 SleepyHead
 
гуру
16.06.21
17:17
(2) Все из всего, очевидно же )
6 Chameleon1980
 
16.06.21
17:20
ужснах
7 Serg_1960
 
16.06.21
17:27
Зачем делать круглые глаза? В суммируемой колонке могут быть отрицательные значения.
8 JuixyJes
 
16.06.21
17:31
У меня в ТЗ каждые 2 строки относятся к одному и тому же элементу. Колонку "объем" нужно получить итоговую разность этих двух строк, вот и все.
9 Serg_1960
 
16.06.21
17:33
(8) Вы же,надеюсь, понимаете, что 1-2 <> 2-1 ?
10 Жан Пердежон
 
16.06.21
17:34
для стажёра/интерна сойдет задачка
11 SleepyHead
 
гуру
16.06.21
17:34
(8) А почему бы не сделать одну строку для объекта и в ней две колонки?

Но если надо сделать 2 строки - сделайте еще одну колонку, в которой будет сумма для свертки, и суммируйте по этой колонке.
12 Mikeware
 
16.06.21
17:38
(8) если строки  две, то что из чего? подсказываю: даже в школе учат, то если при суммировании все члены - "слагаемые",  то при вычитании есть "уменьшаемое" и "вычитаемое"
а если строки - три?
13 JuixyJes
 
16.06.21
17:40
строки всегда две
не важно что из чего вычетать
14 polosov
 
16.06.21
17:41
(13) Если не важно что из чего вычитать, то можно складывать - результат будет в твоем диапазоне хаоса.
15 JuixyJes
 
16.06.21
17:43
(9) Число все равно нужно взять по модулю будет, потому разницы нет
16 Mikeware
 
16.06.21
17:43
(13) используйте объект "ТаблицаЗначенийДляДвухСтрок"
17 polosov
 
16.06.21
17:44
Срочно! Человеку нужна помощь! Выдайте ТС большую дозу математики.
18 SleepyHead
 
гуру
16.06.21
17:44
(16) Зачем так сложно, можно применить метод ТЗ.ВычестьЗначенияПоМодулюВсеРавноРазницыНет()
19 JuixyJes
 
16.06.21
17:45
Ну, вы конечно юмористы))
20 Mikeware
 
16.06.21
17:45
(17) поздно
21 Mikeware
 
16.06.21
17:45
(19) какой вопрос, такой и ответ.
ну или см.(1)
22 JuixyJes
 
16.06.21
17:46
Ну вот в (1) - дельный совет
23 polosov
 
16.06.21
17:47
(19) Ну, например, если у тебя таблица получается объединением двух таблиц, то в одной таблице можно просто умножить все на -1.
24 mistеr
 
16.06.21
17:48
(8) Для такого частного случая платформа готового метода не предоставляет. Поэтому нужно пораскинуть мозгами и написать код.
25 Serg_1960
 
16.06.21
17:51
В самом примитивном алгоритме задача решается за два прохода с одним свертыванием. В первом проходе значение каждой чётной строки умножаем на -1; свёртываем ТЗ; второй проход - записываем модуль значения.
26 Mikeware
 
16.06.21
17:53
(25) это если "пары" идут подряд...
27 polosov
 
16.06.21
18:07
(0)Ну спасибо тебе. Теперь не могу перестать думать как решить это запросом.
28 1Сергей
 
16.06.21
18:09
(27) ой, да легко. сначала выбираем максимумы, потом минимумы. Потом соединяем эти таблицы
29 1Сергей
 
16.06.21
18:11
Запросом ессно
30 polosov
 
16.06.21
18:12
(28) Ну да, похоже. И тебе спасибо, что прервал мой event loop.
31 Конструктор1С
 
16.06.21
19:23
(0) твоё решение задачи явно с душком. Вернись и пересмотри всю задачу, тогда и извращаться не придется. Сейчас ты стоишь такой, засунувши палец в ухо, придумываешь как этим пальцем почесать спину, не вынимая из уха
32 Said_We
 
16.06.21
21:42
(0) Как я понял из переписки.
В таблице есть одна колонка числовая и одна порядковая от 1 до количества строк. Необходимо взять модуль каждого числа. Далее получить разницу первого и второго, третьего и четвертого и т.д.
Сделать всё запросом.

Так в чем сложность?
33 Serg_1960
 
17.06.21
13:38
(26) Не обязательно. "У меня в ТЗ каждые 2 строки относятся к одному и тому же элементу." - достаточно во время прохода запоминать значения этого элемента. Если значение не найдено среди ранее запомненных - это первая строка; если найдено - это вторая строка.
34 Eiffil123
 
17.06.21
13:57
(0) проходишь циклом по таблице значений, умножаешь сумму вычитаемого на -1. Далее уже стандартным методом можно свернуть.

PS процентов 90% комментариев - какой-то оффтопик
Ошибка? Это не ошибка, это системная функция.