Имя: Пароль:
1C
1С v8
Итоги рассчитывать по значению поля
0 ksuk
 
14.06.16
10:48
Есть простой запрос:
ВЫБРАТЬ
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента КАК СчетФактураСуммаДокумента,
    СУММА(дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента,
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура
ИТОГИ
    СУММА(СчетФактураСуммаДокумента),
    СУММА(СуммаБезНДСОборот)
ПО
    ОБЩИЕ

Как сделать, чтобы Общий итог поля СчетФактураСуммаДокумента суммировался один раз для одного значения СчетФактура?

Т.е. вместо (Сумма1 + Сумма1) по таблице
СФ 1 Сумма1
СФ 1 Сумма1

получить просто Сумма1???
1 HardBall
 
14.06.16
10:56
НЕ используй итоги.
2 ksuk
 
14.06.16
11:12
(1) Но мне нужно посчитать сумму всех СФ. То есть получить Общие итоги по Различным счетам-фактурам
3 ksuk
 
14.06.16
11:13
Притом, что в СКД нужный мне результат я получаю , если использую 2 Набора данных. В одном мой запрос с Номером строки, в другом сводная таблица - СФ СуммаСФ. При их соединении общие итоги по Сумма СФ считаются именно по различным значениям СФ.
4 HardBall
 
14.06.16
11:19
Зачем номер строки?
5 HardBall
 
14.06.16
11:21
Тебе надо получить из Регистра оборотов максимально сгруппированные строки.
6 ksuk
 
14.06.16
12:32
Номер строки - условное поле. Вместо него может быть любая другая группировка. Суть в том, что в результате запроса должна получиться таблица, в которой несколько строк с одним и тем же СФ. А в итогах должна быть сумма именно по разным СФ, чтобы строки по одному не задваивали его сумму.
7 ksuk
 
14.06.16
12:33
Например, вместо Номера строки может быть Ставка НДС, Вид ценности, Товар
8 HardBall
 
14.06.16
12:44
Сделай 2-мя запросами.
1.Сначала получи
дсНДСЗаписиКнигиПокупокОбороты.СчетФактура и  СУММА(дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот.
2.Потом из этой таблицы выбери все что тебе надо   и получи итоги.
9 ksuk
 
14.06.16
12:47
И как получится, что по полю Сумма документа будет считаться итог, как мне надо?
10 ksuk
 
14.06.16
12:49
ВЫБРАТЬ РАЗЛИЧНЫЕ
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента КАК СуммаДокумента
ПОМЕСТИТЬ СФ_Сумма
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура КАК СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот,
    СУММА(СФ_Сумма.СуммаДокумента) КАК СуммаДокумента
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ СФ_Сумма КАК СФ_Сумма
        ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура = СФ_Сумма.СчетФактура

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот
ИТОГИ
    СУММА(СуммаБезНДСОборот),
    СУММА(СуммаДокумента)
ПО
    ОБЩИЕ,
    НомерСтроки,
    СчетФактура
11 ksuk
 
14.06.16
12:50
В первом пакете получаю таблицу, итог по которой дал бы нужный мне результат. Потом соединяю ее с полной таблицей. Но в итогах все равно не то - просто сумма по всем строкам, независимо от значения СФ.
12 HardBall
 
14.06.16
13:08
У тебя все наоборот.
1.В первом запросе получай СФ и СуммаБезНДСОборот. Эта таблица группируется по СФ.
2.Во втором СФ, СФ.СуммаДокумента, СуммаБезНДСОборот и выводи итоги
13 ksuk
 
14.06.16
13:14
(12)  
ВЫБРАТЬ РАЗЛИЧНЫЕ
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки,
    СУММА(дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот
ПОМЕСТИТЬ СФ_Сумма
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СФ_Сумма.СчетФактура,
    СФ_Сумма.НомерСтроки,
    СФ_Сумма.СуммаБезНДСОборот КАК СуммаБезНДСОборот,
    СФ_Сумма.СчетФактура.СуммаДокумента КАК СчетФактураСуммаДокумента
ИЗ
    СФ_Сумма КАК СФ_Сумма
ИТОГИ
    СУММА(СуммаБезНДСОборот),
    СУММА(СчетФактураСуммаДокумента)
ПО
    ОБЩИЕ

Это , как я понимаю, наоборот.
14 ksuk
 
14.06.16
13:15
В итогах все равно сумма по всем строкам((.
15 ksuk
 
14.06.16
13:17
"СчетФактура = &СФ" - условие, просто для выборки, на самом деле его нет.
16 HardBall
 
14.06.16
13:19
Номер строки убери.
ВЕЗДЕ
17 ksuk
 
14.06.16
13:20
Да нужен он мне!
18 catena
 
14.06.16
13:21
ВЫБРАТЬ РАЗЛИЧНЫЕ
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    Среднее(дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента)/Количество(дсНДСЗаписиКнигиПокупокОбороты.СчетФактура) КАК СуммаДокумента
ПОМЕСТИТЬ СФ_Сумма
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура КАК СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот,
    СУММА(СФ_Сумма.СуммаДокумента) КАК СуммаДокумента
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ СФ_Сумма КАК СФ_Сумма
        ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура = СФ_Сумма.СчетФактура

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот
ИТОГИ
    СУММА(СуммаБезНДСОборот),
    СУММА(СуммаДокумента)
ПО
    ОБЩИЕ,
    НомерСтроки,
    СчетФактура
19 catena
 
14.06.16
13:22
Различные в первом запросе убрать
20 ksuk
 
14.06.16
13:24
Спасибо, хорошее решение. Если б не округление.
21 catena
 
14.06.16
13:24
Даже так:

Выбрать
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    Среднее(дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента)/Сумма(дсНДСЗаписиКнигиПокупокОбороты.Кол) КАК СуммаДокумента
из(ВЫБРАТЬ
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента КАК СуммаДокумента,
    1 как Кол
ПОМЕСТИТЬ СФ_Сумма
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты
    ) КАК дсНДСЗаписиКнигиПокупокОбороты

СГРУППИРОВАТЬ ПО
   дсНДСЗаписиКнигиПокупокОбороты.СчетФактура
;

////////////////////////////////////////////////////////////////////////////////


ВЫБРАТЬ
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура КАК СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот,
    СУММА(СФ_Сумма.СуммаДокумента) КАК СуммаДокумента
ИЗ
    РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ СФ_Сумма КАК СФ_Сумма
        ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура = СФ_Сумма.СчетФактура

СГРУППИРОВАТЬ ПО
    дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки,
    дсНДСЗаписиКнигиПокупокОбороты.СчетФактура,
    дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот
ИТОГИ
    СУММА(СуммаБезНДСОборот),
    СУММА(СуммаДокумента)
ПО
    ОБЩИЕ,
    НомерСтроки,
    СчетФактура
22 ksuk
 
14.06.16
13:41
Спасибо,catena, так и сделаю!
23 HardBall
 
14.06.16
13:42
С итогами по общие не получится.
Итоги по СФ  СУММА(СуммаДокумента)
24 ksuk
 
14.06.16
14:28
Почему не получится? Получается по строкам мы получаем не Сумму документа, а сумму/количество строк и в итогах как раз нужное значение. А в строку придется вытащить Сумму документа другим полем. Пока нет других идей - возьму эту.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.