Имя: Пароль:
1C
1С v8
Запрос, сложить и вычесть суммы в строчках
0 bfss-732
 
24.06.21
10:01
Всем привет!

Есть результат запроса в виде таблицы:

        Столб1         Столб2     Столб3
Строка1 Номенклатура1   СчетДТ     Сумма1
Строка2 Номенклатура2   СчетДТ     Сумма2
Строка3 Номенклатура3   СчетДТ     Сумма3
Строку4 NULL            NULL       Сумма4


Нужно получить Строку4, где Сумма4=Сумма1=Сумма2-Сумма3

Как?
1 bfss-732
 
24.06.21
10:02
Сумма4=Сумма1+Сумма2-Сумма3
2 bfss-732
 
24.06.21
10:03
ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
    ХозрасчетныйДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
    ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
    ХозрасчетныйДвиженияССубконто.ПодразделениеДт КАК ПодразделениеДт,
    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма,
//    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
    ХозрасчетныйДвиженияССубконто.Период КАК Период
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
            &НП,
            &КП,
            СчетДт В (&СчетДт)
                И ПодразделениеДт В (&ПодразделениеДт),
            ,
            ) КАК ХозрасчетныйДвиженияССубконто

СГРУППИРОВАТЬ ПО
    ХозрасчетныйДвиженияССубконто.СчетКт,
    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
    ХозрасчетныйДвиженияССубконто.ПодразделениеДт,
//    ХозрасчетныйДвиженияССубконто.Регистратор,
    ХозрасчетныйДвиженияССубконто.Период
3 Bigbro
 
24.06.21
10:04
Сумма3 = - Сумма3
Сумма4 = Итог(Сумма)
4 ДенисЧ
 
24.06.21
10:06
Надеюсь, ты понимаешь 2 вещи
1. что порядок строк зависит от сортировки
2. что разность, в отличие от суммы, некоммутативна
?
5 Михаил Козлов
 
24.06.21
10:06
А чем 3-я строка (которую нужно вычесть) отличается от 1 и 2? В результате запроса всегда 3 строки? Если не всегда, что тогда нужно складывать и вычитать?
6 bfss-732
 
24.06.21
10:11
(4) да там никак не сделать, если не вычесть
7 bfss-732
 
24.06.21
10:12
(5) бухгалтер  сказала, что нужна ХозрасчетныйДвиженияССубконто.Сумма, которая рассчитывается по формуле
8 bfss-732
 
24.06.21
10:14
а отчет должен быть в виде:
ВИД                   01.01.2021          01.02.2021       Итого
Подразделение Дт    Сумма                Сумма           Сумма
Прочие выплаты
9 ДенисЧ
 
24.06.21
10:14
Начни с простого - ответь на (5).
Как определяется, что эта строчка именно Сумма3, а не сумма2?
10 bfss-732
 
24.06.21
10:14
Уже делал подобный, но там я мог просто зять необходимы суммы по условию. А тут так нельзя
11 bfss-732
 
24.06.21
10:16
(9) разные СубконтоДт2 и СубконтоКт1
12 bfss-732
 
24.06.21
10:16
и СчетКт тоже другой
13 bfss-732
 
24.06.21
10:17
(9)  разные СубконтоДт2, СубконтоКт1  и СчетКт
14 ДенисЧ
 
24.06.21
10:17
(11) ну тогда делай не Сумма(ХозрасчетныйДвиженияССубконто.Сумма)
а
ВЫБОР КОГДА Субконтодт1 = &скдт1 и Субконтодт2 = &скадт2 тогда -сумма иначе сумма конец КАК сумма
и просто суммируй.
15 Михаил Козлов
 
24.06.21
10:18
(11) Значит Вам нужен признак прибавлять или вычитать в зависимости от набора (СубконтоДт2, СубконтоКт1, СчетКт).
16 bfss-732
 
24.06.21
10:18
(15) да
17 bfss-732
 
24.06.21
10:19
(14) такой способ делал, он только прибавляет. Последний пост у меня, там весь запрос, но потом выяснилось, что бухгалтер дал не правильное ТЗ
18 bfss-732
 
24.06.21
10:20
(15) в идеале если это будет с ВЫБОР КОГДА, почитал в интернете, но такое не получится
19 ДенисЧ
 
24.06.21
10:24
(17) "такой способ делал, он только прибавляет"
Если ты отдаёшь минус-сумма, она не может прибавляться
Значит, что-то не то делаешь
20 ДенисЧ
 
24.06.21
10:24
А ещё нам придётся сейчас телепать правильное тз от бухгалтера...
21 Михаил Козлов
 
24.06.21
10:25
(18) Почему? Вы можете сформировать, скажем, 2 таблицы с наборами (СубконтоДт2, СубконтоКт1, СчетКт) для сложения и вычитания? Или, хотя бы одну такую таблицу?
Поместите ее во временную таблицу и потом левым соединением с ней определите, нужно прибавлять или вычитать.
22 bfss-732
 
24.06.21
10:25
(19) Ааааа, ты имеешь ввиду поставить "-" ?
23 acht
 
24.06.21
10:27
(22) Браво
24 bfss-732
 
24.06.21
10:27
(21) "потом левым соединением с ней определите, нужно прибавлять или вычитать." это как
25 ДенисЧ
 
24.06.21
10:28
(22) В (14) написано "тогда -сумма иначе сумма"
если это не означает "поставить минус", то я не знаю, что это может означать...
26 bfss-732
 
24.06.21
10:32
(14) (25) не катит, у меня после ТОГДА идет название строки.
27 bfss-732
 
24.06.21
10:32
ВЫБОР
        КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2ОсновнаяЗаработнаяПлата)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт70)
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт96012)
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2РезервыОтпускаВознаграждения)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт96011)
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт96013)
                    И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В (&СубконтоКт1Квар)
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт96013)
                    И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В (&СубконтоКт1Год)
            ТОГДА "ОКЛАД"
        КОНЕЦ
28 ДенисЧ
 
24.06.21
10:33
(тут смайлик, бьщийся головой о стенку)
Может, 1с - это не твоё?
29 bfss-732
 
24.06.21
10:34
Для примера, вычесть например последние два:

ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт96013)
                    И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В (&СубконтоКт1Квар)
ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт2 В (&СубконтоДт2СтраховыеВзносыНачисляемыеНаРезервыКромеНСиПЗ)
                    И ХозрасчетныйДвиженияССубконто.СчетКт В (&СчетКт96013)
                    И ХозрасчетныйДвиженияССубконто.СубконтоКт1 В (&СубконтоКт1Год)
30 bfss-732
 
24.06.21
10:34
(28) Может ты ни разу вопросы не писал на форумы? Все сам да сам, книжки кругом)))
31 bfss-732
 
24.06.21
10:36
(28) ну вот 27 и 28 пост, давай покажи класс
32 bfss-732
 
24.06.21
10:36
27 и 29
33 Ёпрст
 
24.06.21
10:39
Тогда //"оклад"

-Сумма(хреньчтосчитаешь)
Иначе
Сумма(хреньчтосчитаешь)
Конец как суммахреньдлябуха
34 Ёпрст
 
24.06.21
10:40
Ну, если с арифметикой плохо, то так:
Тогда (-1)*Сумма(хрень) иначе Сумма(хрень) конец как суммаХрень
35 Ёпрст
 
24.06.21
10:41
Это, если со знаком минус проблемы
AdBlock убивает бесплатный контент. 1Сергей