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

v7: Подскажите по 1С-77 (Бухгалтерия 4.5 v.01)

v7: Подскажите по 1С-77 (Бухгалтерия 4.5 v.01)
Я
   DimAAA
 
29.03.21 - 12:02
Всем привет!
Подскажите знающие, пожалуйста:
При открытии существующего документа Счет на оплату (из типовой конфигурации, ничего не менялось) - после вывода на экран табличной части с товарами (услугами) - ошибочно формируется Итоговая строка (не формируется строка с примененной ставкой НДС). Причем, при вводе новой строки - функция РассчитатьНалоги вызывается, соответственно, логика формирования вывода итоговой ставки НДС (через переменную НДСпоДокументу) отрабатывает. А при выводе формировании существующей строки значение НДСпоДокументу не меняется - даже вызовов не нашел.
Как этот механизм работает?
И еще вопрос- в каком событии я могу отследить построчное формирование табличной части СУЩЕСТВУЮЩЕГО ДОКУМЕНТА перед его выводом на экран?
Заранее спасибо!
   Злопчинский
 
1 - 29.03.21 - 13:01
я очень сомневаюсь что косяк. конфа нстолько "старая". что такие явные косяки уже вылизаны. могу конеячно ошибаться
   Злопчинский
 
2 - 29.03.21 - 13:03
(0) ТЧ не формируется. она уже есть как класс/данность.
при отображении и прорисовке формы в предопределенных процедурах раситываются необходимые "производные" значения для показа на форме. на форме также может лежать реквизит "текст", в формуле которго может сотять вызов локальной/глобальной функции, (в которую может передаваться контекст формы).
   Злопчинский
 
3 - 29.03.21 - 13:06
"ошибочно формируется Итоговая строка (не формируется строка с примененной ставкой НДС)."
такого - не помню.
в общем случае в счете могут быть позиции с разными ставками НДС и насколько я помню на форме "примененные" ставки НДС как итоги по документу - не отображаются (могу конечно ошибаться, может что-то поменяли). А вот итоговая строка с итоговой суммой НДС суммарно по примененным ставкам НДС в документие - да. мы же понимаем - что
- строка с примненной ставкой НДС и
- сумма НДС по этим ставкам
- это немножко разные вещи, правда?
   HawkEye
 
4 - 29.03.21 - 13:07
(0) "из типовой конфигурации, ничего не менялось" - вранье )))
   Злопчинский
 
5 - 29.03.21 - 13:08
(4) вот и я о том же...
   Злопчинский
 
6 - 29.03.21 - 13:09
(0) вывода итоговой ставки НДС
- насколько я представляю - *итоговой ставки НДС* - нет. ставки НДС друг с другом не складываются, не вычитаются, не умножаются и не делятся.
   HawkEye
 
7 - 29.03.21 - 13:10
(0) ты внятно объясни проблему....
у тебя в документе табличная часть - пустая, потом ты этот документ открываешь и в нем оказывается новая строка?
   Злопчинский
 
8 - 29.03.21 - 13:19
(0) " А при выводе формировании существующей строки значение НДСпоДокументу не меняется - даже вызовов не нашел."
а с чего оно должно меняться? оно есть, посчитано. откуда оно меняеться может? все что обычно делается при открытии документа - собирается ИТОГ по документу (если он ранее не собран и не зафиксирован) посредством типа
Итог("СуммаНДС") - где "СуммаНДС" - реквизит ТЧ документа. Всё.
   Злопчинский
 
9 - 29.03.21 - 13:20
выражение Итог("СуммаНДС") - может стоять в формуле текста, выведенного на форму.
   DimAAA
 
10 - 29.03.21 - 15:16
Спасибо всем за внимание к моей проблеме!

1. Насчет доработки типовой - конечно, это мое предположение, основанное на уверении бухгалтеров. Но все может быть...

2. речь идет именно про отображение ставки НДС (т.е. значение %) - саму сумму НДС в рублях считает верно.
В форме уже сохраненного счета после табличного документа размещена строка Итого, например:
Всего: 1,200-00, в т.ч. НДС (по ставке 0 %): 200-00, без налогов: 1,000-00
Начал разбираться, почему "НДС (по ставке 0 %)

в Функции ИтоговаяСтрока():
        ...
        Если НДСпоДокументу=-1 Тогда
        стрСтавкаНДС="(по разным ставкам)";
    ИначеЕсли НДСпоДокументу=0 Тогда
        стрСтавкаНДС="";
    Иначе
        стрСтавкаНДС="(по ставке " + СокрЛ(формат(НДСпоДокументу,"Ч2")) + " %)";
    КонецЕсли;
        ...

Отладчиком при открытии существующего документа на строке "Если НДСпоДокументу=-1 Тогда":  НДСпоДокументу="", 
соответственно СокрЛ(формат(НДСпоДокументу,"Ч2")) формирует строку "0 %"

НДСпоДокументу присваивается в двух функциях:


Процедура Пересчет(ИмяРеквизита=""):
        ...
        Если КоличествоСтрок()=1 Тогда
        НДСпоДокументу=0;
    КонецЕсли;
        ...

и
Процедура РассчитатьНалоги():
        ...
        Если НДСпоДокументу>=0 Тогда//если ранее не устанавливался значение -1 что означает "по разным ставкам НДС"

        если НДСпоДокументу=0 Тогда
            НДСпоДокументу=СтавкаНДС;
        ИначеЕсли НДСпоДокументу<>СтавкаНДС Тогда
            НДСпоДокументу=-1;
        КонецЕсли;;
    КонецЕсли;
        ...
точки останова ни в первой функции, ни во второй при открытии УЖЕ СУЩЕСТВУЮЩЕГО документа не срабатывают.
Внимание, вопросы:
1. Где НДСпоДокументу выставляется?
2. Если это чья-то поделка, как в штатной реализации определяется величина налога?
   DimAAA
 
11 - 29.03.21 - 15:23
для ясности: величина ставки налога
   HawkEye
 
12 - 29.03.21 - 15:25
(10) полностью функцию ИтоговаяСтрока() - нам надо угадать, да?
   Злопчинский
 
13 - 29.03.21 - 15:25
(10) более чем уверен что это нетиповой код.
   HawkEye
 
14 - 29.03.21 - 15:26
(13) еще и написанный автором )))))
   Злопчинский
 
15 - 29.03.21 - 15:30
(14) под веществами?
   Злопчинский
 
16 - 29.03.21 - 15:30
(14) Всего: 1,200-00, в т.ч. НДС (по ставке 0 %): 200-00, без налогов: 1,000-00
   DimAAA
 
17 - 29.03.21 - 15:39
Автором чего???
зуб даю - не я писал.
//*****************************************************************************

// ИтоговаяСтрока()
// 

// Вызывается из формул элементов диалога:
//  Текст ИтоговаяСтрока.

//
// Описание:

//  Формирует строку, содержащую итоговые суммы колонок табличной части.
//

// используется значение НДСпоДокументу:
// если =-1, то добавляется строка "по разным ставкам"

//если =0, то не добавляется строка
//если >0 то добавляется "по ставке " + НДСпоДокументу + "%"


Функция ИтоговаяСтрока()
    
    перем стрСтавкаНДС;
    
    
    Если НДСпоДокументу=-1 Тогда
        стрСтавкаНДС="(по разным ставкам)";
    ИначеЕсли НДСпоДокументу=0 Тогда
        стрСтавкаНДС="";
    Иначе
        стрСтавкаНДС="(по ставке " + СокрЛ(формат(НДСпоДокументу,"Ч2")) + " %)";
    КонецЕсли;
    
    ИтСтр = "Всего: " + СокрЛ(Формат(Итог("Всего"),"Ч20.2-,")) + ", "+
            "в т.ч. НДС " + стрСтавкаНДС +": " + СокрЛ(Формат(Итог("НДС"),"Ч20.2-,"));
    Если Итог("НП") > 0 Тогда
        ИтСтр = ИтСтр + ", НП: " + СокрЛ(Формат(Итог("НП"),"Ч20.2-,"));
    КонецЕсли;
    
    ИтСтр = ИтСтр + ", без налогов: " + СокрЛ(Формат((Итог("Всего") - Итог("НДС") - Итог("НП")),"Ч20.2-,"));

    Возврат ИтСтр;
    
КонецФункции// ИтоговаяСтрока()
   DimAAA
 
18 - 29.03.21 - 15:40
(16)Что Вы имели ввиду?
   Злопчинский
 
19 - 29.03.21 - 15:41
(18) "что имею, то и введу..."
   Злопчинский
 
20 - 29.03.21 - 15:42
НДС по ставке 0% = 200 руб... м.б. я, конечно, чего-то и не въезжаю...
   DimAAA
 
21 - 29.03.21 - 15:43
(20) да я сам не въезжаю - смотрю на форму и думаю, как исправить.
   DimAAA
 
22 - 29.03.21 - 15:44
Как в типовой этот механизм реализован?
   Злопчинский
 
23 - 29.03.21 - 15:45
(22) возьми типовую и посмотри. Заратустра не запрещает.
   DimAAA
 
24 - 29.03.21 - 15:50
нет под рукой типовой - была бы, не спрашивал.
   Злопчинский
 
25 - 29.03.21 - 16:00
(24) а кому сейчас легко?
   HawkEye
 
26 - 29.03.21 - 16:03
(17) идем дальше... НДСпоДокументу - это реквизит документа?
   HK_Mers
 
27 - 29.03.21 - 16:04
(22)
Функция ИтоговаяСтрока()
    
    ИтСтр = "Всего: " + СокрЛ(Формат(Итог("Всего"),"Ч20.2-,")) + ", "+
            "в т.ч. НДС: " + СокрЛ(Формат(Итог("НДС"),"Ч20.2-,"));
    Если Итог("НП") > 0 Тогда
        ИтСтр = ИтСтр + ", НП: " + СокрЛ(Формат(Итог("НП"),"Ч20.2-,"));
    КонецЕсли;
    ИтСтр = ИтСтр + ", без налогов: " + СокрЛ(Формат((Итог("Всего") - Итог("НДС") - Итог("НП")),"Ч20.2-,"));

    Возврат ИтСтр;
    
КонецФункции// ИтоговаяСтрока()
   DimAAA
 
28 - 29.03.21 - 16:06
to HK_Mers (22): спасибо, значит это была чья-то незаконченная поделка

(17) переменная уровня формы
   DimAAA
 
29 - 29.03.21 - 16:07
промахиваюсь сегодня - понедельник, наверное

to HK_Mers (27): спасибо, значит это была чья-то незаконченная поделка

(26) переменная уровня формы
   HawkEye
 
30 - 29.03.21 - 16:07
(28) тогда вариантов то особо и нет, в ПриОткрытии() и ее производных должна определяться
 
 
   DimAAA
 
31 - 29.03.21 - 16:22
Всем спасибо, решил
   Злопчинский
 
32 - 29.03.21 - 17:01
(31) ты - настоящий решала!
   DimAAA
 
33 - 29.03.21 - 17:02
в 1С - не настоящий, как вы тут живете??? я в ахуе


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