Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос, сложить и вычесть суммы в строчках

Запрос, сложить и вычесть суммы в строчках
Я
   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

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

    ХозрасчетныйДвиженияССубконто.Период КАК Период
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
            &НП,
            &КП,
            СчетДт В (&СчетДт)
                И ПодразделениеДт В (&ПодразделениеДт),
            ,
            ) КАК ХозрасчетныйДвиженияССубконто

СГРУППИРОВАТЬ ПО
    ХозрасчетныйДвиженияССубконто.СчетКт,
    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
    ХозрасчетныйДвиженияССубконто.ПодразделениеДт,
//    ХозрасчетныйДвиженияССубконто.Регистратор,

    ХозрасчетныйДвиженияССубконто.Период
   Bigbro
 
3 - 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 строки? Если не всегда, что тогда нужно складывать и вычитать?
   bfss-732
 
6 - 24.06.21 - 10:11
(4) да там никак не сделать, если не вычесть
   bfss-732
 
7 - 24.06.21 - 10:12
(5) бухгалтер  сказала, что нужна ХозрасчетныйДвиженияССубконто.Сумма, которая рассчитывается по формуле
   bfss-732
 
8 - 24.06.21 - 10:14
а отчет должен быть в виде:
ВИД                   01.01.2021          01.02.2021       Итого
Подразделение Дт    Сумма                Сумма           Сумма
Прочие выплаты
   ДенисЧ
 
9 - 24.06.21 - 10:14
Начни с простого - ответь на (5).
Как определяется, что эта строчка именно Сумма3, а не сумма2?
   bfss-732
 
10 - 24.06.21 - 10:14
Уже делал подобный, но там я мог просто зять необходимы суммы по условию. А тут так нельзя
   bfss-732
 
11 - 24.06.21 - 10:16
(9) разные СубконтоДт2 и СубконтоКт1
   bfss-732
 
12 - 24.06.21 - 10:16
и СчетКт тоже другой
   bfss-732
 
13 - 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, СчетКт).
   bfss-732
 
16 - 24.06.21 - 10:18
(15) да
   bfss-732
 
17 - 24.06.21 - 10:19
(14) такой способ делал, он только прибавляет. Последний пост у меня, там весь запрос, но потом выяснилось, что бухгалтер дал не правильное ТЗ
   bfss-732
 
18 - 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, СчетКт) для сложения и вычитания? Или, хотя бы одну такую таблицу?
Поместите ее во временную таблицу и потом левым соединением с ней определите, нужно прибавлять или вычитать.
   bfss-732
 
22 - 24.06.21 - 10:25
(19) Ааааа, ты имеешь ввиду поставить "-" ?
   acht
 
23 - 24.06.21 - 10:27
(22) Браво
   bfss-732
 
24 - 24.06.21 - 10:27
(21) "потом левым соединением с ней определите, нужно прибавлять или вычитать." это как
   ДенисЧ
 
25 - 24.06.21 - 10:28
(22) В (14) написано "тогда -сумма иначе сумма"
если это не означает "поставить минус", то я не знаю, что это может означать...
   bfss-732
 
26 - 24.06.21 - 10:32
(14) (25) не катит, у меня после ТОГДА идет название строки.
   bfss-732
 
27 - 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с - это не твоё?
   bfss-732
 
29 - 24.06.21 - 10:34
Для примера, вычесть например последние два:

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


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.