Имя: Пароль:
1C
 
Как вычесть НДС из оборотов?
0 Shecurok
 
26.02.21
14:09
Всем добрый день.
В СКД делаю отчет, запрос идет по регистру бухгалтерии ХозрасчетныйОборотыДтКт. Сумма попадает из оборотов.
Но тут внезапно понадобилась сумма из документов БЕЗ НДС. А обороты считаются с НДС.
Т.к инфы берется очень много запрос переписывать вообще не хочется. Есть какие-то способы просто вычесть этот НДС? Но и проблема еще в том, что некоторые доки реализации идут с НДС в сумме и НДС сверху.
Конфа БП 2.0
1 ДенисЧ
 
26.02.21
14:13
Брать отдельный НДС из проводок и отнимать - не предлагать?
2 vicof
 
26.02.21
14:29
(1) Ты не понял, запрос переписывать не хочется)
3 ДенисЧ
 
26.02.21
14:30
(2) А. Тогда можно пойти простым путём - вычесть 20%.
И плевать, что неправильно будет ))
4 vicof
 
26.02.21
14:35
(3) Это нормально, небольшая погрешность. Зато сколько времени сэкономлено.
5 ZDenis
 
26.02.21
14:36
(3) Мне кажется он именно это и спрашивал, просто формулу не знал
6 Ногаминебить
 
26.02.21
14:37
Ну если из оборотов и там есть корсчет - то на 90 в НУ сумма должна быть как раз без НДС. СуммаНУКт есть?
7 ДенисЧ
 
26.02.21
14:39
(6) См (2)
8 piter3
 
26.02.21
14:53
В чем сложность брать сумму из РН по НДС,левое соединение как в (1).Но не видя запроса хз
9 Shecurok
 
26.02.21
15:23
(8) не пойму из какого РН по НДС делать запрос. НДС Начисленный?
10 piter3
 
26.02.21
15:24
(9) Ну возьми и глянь на движения твоих доков по ним.
11 shuhard
 
26.02.21
15:24
(0) НДС на 90.03 из выручки вычти
12 Shecurok
 
26.02.21
17:26
Почитал, не пойму как сделать обращение и связь. Сначала сделал обращение к РН НДСЗаписиКнигиПродаж, связь Sales.Регистратор-РН.Регистратор - безумно странные цифры вылезли и по сумме из табл sales и сумма без ндс:

ВЫБРАТЬ
    Sales.Номенклатура КАК Номенклатура,
    Sales.Контрагент КАК Покупатель,
    Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СУММА(Sales.Количество) КАК Количество,
    СУММА(Sales.Сумма) КАК Net_Sales_YTD,
    СРЕДНЕЕ(Sales.Цена) КАК Цена,
    Sales.Регистратор КАК Регистратор,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК GP1_RUB,
    ВЫБОР
        КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
            ТОГДА 0
        ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК GP1_Percent1,
    PrimeCost.ЦенаСебест КАК ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК COGS,
    НДСЗаписиКнигиПродаж.Регистратор КАК РегистраторРН,
    НДСЗаписиКнигиПродаж.СуммаБезНДС
ИЗ
    (ВЫБРАТЬ
        ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
        ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
        ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
        ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
        ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
        ВЫБОР
            КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
                ТОГДА 0
            ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
        КОНЕЦ КАК Цена,
        ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
            ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
            ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
            ВЫБОР
                КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
                    ТОГДА 0
                ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
            КОНЕЦ КАК ЦенаСебест
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                    &НачПер,
                    &КонПер,
                    Период,
                    СчетДт = &Сч9002
                        ИЛИ СчетДт = &Сч9102,
                    ,
                    СчетКт = &Сч43
                        ИЛИ СчетКт = &Сч4101
                        ИЛИ СчетКт = &Сч4104
                        ИЛИ СчетКт = &Сч10,
                    ,
                    Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
        ПО Sales.Номенклатура = PrimeCost.Номенклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.НДСЗаписиКнигиПродаж КАК НДСЗаписиКнигиПродаж
        ПО Sales.Регистратор = НДСЗаписиКнигиПродаж.Регистратор

СГРУППИРОВАТЬ ПО
    Sales.Номенклатура,
    Sales.Контрагент,
    Sales.ДоговорКонтрагента,
    Sales.Регистратор,
    PrimeCost.ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    ВЫБОР
        КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
            ТОГДА 0
        ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)),
    НДСЗаписиКнигиПродаж.Регистратор,
    НДСЗаписиКнигиПродаж.СуммаБезНДС
13 Shecurok
 
26.02.21
17:26
а без связи бесконечный вывод отчета
14 Shecurok
 
26.02.21
17:27
Дальше попробовал так:

ВЫБРАТЬ
    Sales.Номенклатура КАК Номенклатура,
    Sales.Контрагент КАК Покупатель,
    Sales.ДоговорКонтрагента КАК ДоговорКонтрагента,
    Sales.Количество КАК Количество,
    Sales.Сумма КАК Net_Sales_YTD,
    Sales.Цена КАК Цена,
    Sales.Регистратор КАК Регистратор,
    ВЫРАЗИТЬ(Sales.Сумма - Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК GP1_RUB,
    ВЫБОР
        КОГДА Sales.Количество * PrimeCost.ЦенаСебест = 0
            ТОГДА 0
        ИНАЧЕ ВЫРАЗИТЬ(Sales.Сумма * 100 / (Sales.Количество * PrimeCost.ЦенаСебест) - 100 КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК GP1_Percent1,
    PrimeCost.ЦенаСебест КАК ЦенаСебест,
    ВЫРАЗИТЬ(Sales.Количество * PrimeCost.ЦенаСебест КАК ЧИСЛО(15, 2)) КАК COGS,
    ВложенныйЗапрос.СуммаОборот КАК Тест
ИЗ
    (ВЫБРАТЬ
        ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
        ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК Контрагент,
        ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК ДоговорКонтрагента,
        ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
        ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
        ВЫБОР
            КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
                ТОГДА 0
            ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0) / ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК ЧИСЛО(15, 2))
        КОНЕЦ КАК Цена,
        ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, Регистратор, , , СчетКт = &Сч9001, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК Sales
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество,
            ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма,
            ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Номенклатура,
            ВЫБОР
                КОГДА ХозрасчетныйОборотыДтКт.КоличествоОборотКт = 0
                    ТОГДА 0
                ИНАЧЕ ХозрасчетныйОборотыДтКт.СуммаОборот / ХозрасчетныйОборотыДтКт.КоличествоОборотКт
            КОНЕЦ КАК ЦенаСебест
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                    &НачПер,
                    &КонПер,
                    Период,
                    СчетДт = &Сч9002
                        ИЛИ СчетДт = &Сч9102,
                    ,
                    СчетКт = &Сч43
                        ИЛИ СчетКт = &Сч4101
                        ИЛИ СчетКт = &Сч4104
                        ИЛИ СчетКт = &Сч10,
                    ,
                    Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК PrimeCost
        ПО Sales.Номенклатура = PrimeCost.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ХозрасчетныйОборотыДтКт.СчетДт КАК СчетДт,
            ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот,
            ХозрасчетныйОборотыДтКт.СубконтоДт3 КАК Номенклатура
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПер, &КонПер, , , , СчетКт = &Сч6802, , Организация = &Организация) КАК ХозрасчетныйОборотыДтКт) КАК ВложенныйЗапрос
        ПО Sales.Номенклатура = ВложенныйЗапрос.Номенклатура

В поле тест ничего не выводит.
15 RomanYS
 
26.02.21
17:46
(12) Перечитай (6) и забудь про регистры и соединения
16 Ногаминебить
 
26.02.21
17:50
(14) Попробуй в исходном запросе заменить ХозрасчетныйОборотыДтКт.СуммаОборот КАК Сумма на ХозрасчетныйОборотыДтКт.СуммаНУОборотКт КАК Сумма.
17 Ненавижу 1С
 
гуру
26.02.21
17:51
Может задачу полностью озвучить?
18 Shecurok
 
26.02.21
19:06
(16) Да, это помогло. Сам еще это утром нашел, правда меня тут на стороне запутали :/
19 john22
 
30.03.21
15:26
Тут главное внимательно почитать и вникнуть в суть :) Запутать конечно могут...