Имя: Пароль:
1C
1C 7.7
v7: типовая "Строка оплаты"
0 Масянька
 
17.11.17
15:10
День добрый!
Столкнулась с интересной штуковиной...
Новый док-т.
Процедура ВводНового(Скопирован)

    УчитыватьНДС = 1;
    СуммаВклНДС     = 1;
Сообщить("! - " + УчитыватьНДС + " - " + СуммаВклНДС);
    глЗаполнитьШапку(Контекст, Скопирован,"Продажа");

Сообщить("1 - " + ТипЦен + " - " + ТипЦен.ЦенаВклНДС + " - " + глСтрокаОплаты(Контекст));
    ПересчетСуммыВзаиморасчетов();    
    
КонецПроцедуры // ВводНового()

На выходе имеем :
- УчитыватьНДС = 1
- тип цен с НДС ("галочка" ВклНДС стоит), а строке выдает "Розничные, руб. курс: 1 руб., < БЕЗ НДС >, < БЕЗ НП >"
И как обойти?
1 Ёпрст
 
17.11.17
15:12
и че ?
смотри, че за функция глСтрокаОплаты и откуда она берёт данные
2 Масянька
 
17.11.17
15:12
Пардон.
Функция глСтрокаОплаты(Конт) Экспорт
    Перем ЕстьТипЦен, ЕстьСкидка, ЕстьВалюта, ЕстьУчитыватьНП,ЕстьУчитыватьНДС;
    Перем Результат, ВидДок;
    
    Результат = "";
    
    // Анализируем реквизиты документа
    ВидДок = Конт.Вид();
    
    ЕстьТипЦен             = глЕстьРеквизитШапки("ТипЦен",ВидДок);
    ЕстьСкидка             = глЕстьРеквизитШапки("Скидка",ВидДок);
    ЕстьУчитыватьНП     = глЕстьРеквизитШапки("УчитыватьНП",ВидДок);
    ЕстьУчитыватьНДС    = глЕстьРеквизитШапки("УчитыватьНДС",ВидДок);
    ЕстьОблагаетсяЕНВД    = глЕстьРеквизитШапки("ОблагаетсяЕНВД",ВидДок);
    ЕстьВалюта             = глЕстьРеквизитШапки("Валюта",ВидДок);
      
    
    Если ЕстьТипЦен = 1 Тогда  
        Если ПустоеЗначение(Конт.ТипЦен) = 0 Тогда
            Результат = Результат + Конт.ТипЦен.Наименование;  
        Иначе
            //Результат = Результат + "< НЕ УКАЗАН ТИП ЦЕН >";
        КонецЕсли;
    КонецЕсли;    
    
    Если ЕстьСкидка = 1 Тогда
        Если ПустоеЗначение(Конт.Скидка) = 0 Тогда
            Результат = Результат + " (скидка: "+СокрП(Конт.Скидка.Наименование)+", "+Конт.Скидка.Процент+"% )";  
        КонецЕсли;
    КонецЕсли;    
    
    Результат = Результат + ?(ПустоеЗначение(Результат)=1,"",", ");
    
    // Про валюту пишем, только если она задана    
    Если ЕстьВалюта = 1 Тогда
        Если ПустоеЗначение(Конт.Валюта) = 0 Тогда
            Результат = Результат + Конт.Валюта.Наименование;  
            Результат = Результат + " курс: " +
            Строка(Конт.Курс) + " " + глРубли.Наименование;  
        Иначе
            Результат = Результат + "< НЕТ ВАЛЮТЫ >";
        КонецЕсли;
    КонецЕсли;    
            
    ОблагаетсяЕНВД = 0;    
    Если ЕстьОблагаетсяЕНВД = 1 Тогда
        Если Конт.ОблагаетсяЕНВД = 1 Тогда
            ОблагаетсяЕНВД = 1;    
        КонецЕсли;
    КонецЕсли;

    Если ОблагаетсяЕНВД = 1 Тогда
        Результат = Результат + "<ПРОДАЖА, ОБЛАГАЕМАЯ ЕНВД>";
        
    Иначе
        Если ЕстьУчитыватьНДС = 1 Тогда
            Если ПустоеЗначение(Конт.УчитыватьНДС) = 1 Тогда
                Результат = Результат + ", < БЕЗ НДС >";  
            Иначе
                Результат = Результат + ", НДС";  
                Если глЕстьРеквизитШапки("СуммаВклНДС", ВидДок) = 1 Тогда
                    Если Конт.СуммаВклНДС = 1 Тогда
                        Результат = Результат + " - в сумме";
                    Иначе                                    
                        Результат = Результат + " - сверху";
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
        
        Если ЕстьУчитыватьНП = 1 Тогда
            Если ПустоеЗначение(Конт.УчитыватьНП) = 1 Тогда
                Результат = Результат + ", < БЕЗ НП >";
            Иначе
                Результат = Результат + ", НП";  
                Если глЕстьРеквизитШапки("СуммаВклНП", ВидДок) = 1 Тогда
                    Если Конт.СуммаВклНП = 1 Тогда
                        Результат = Результат + " - в сумме";
                    Иначе                                    
                        Результат = Результат + " - сверху";
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Возврат(Результат);
    
КонецФункции //глСтрокаОплаты()
Типовая.
3 Масянька
 
17.11.17
15:13
(1) Она берет из контекста (док-та).
4 Ёпрст
 
17.11.17
15:15
(2) ок. Теперь смотри, чему равно
УчитыватьНДС
после твоей процы глЗаполнитьШапку
5 Ёпрст
 
17.11.17
15:15
и..делай выводы :)
6 Gimalaj
 
17.11.17
15:15
Может документ записать?
7 Gimalaj
 
17.11.17
15:16
+(6) А потом получать строку оплаты?
8 Масянька
 
17.11.17
15:21
(4)  Кусок из глЗаполнитьШапку:
        Если ПустоеЗначение(ТипЦен) = 0 Тогда
            
Сообщить("тут 1");            
            // Если цены выбранного типа расчетные, то флаги включения налогов надо брать из базовой цены
            Если ПустоеЗначение(ТипЦен.Рассчитывается) = 0 Тогда
                ТипЦен = ТипЦен.БазовыйТипЦен;
            КонецЕсли;
            
            Если глЕстьРеквизитШапки("СуммаВклНДС", ВидДок) = 1 Тогда
                
Сообщить("тут 2");            
                Конт.СуммаВклНДС = ТипЦен.ЦенаВклНДС;
Сообщить("тут 4 - " + Конт.СуммаВклНДС);            
                
            КонецЕсли;

тут 4 - 1
9 Масянька
 
17.11.17
15:23
(6) Это ввод нового. Могут и передумать :)
10 Gimalaj
 
17.11.17
15:27
(8) Так вставь то же самое в функцию глСтрокаОплаты() и посмотри, что там.
11 Масянька
 
17.11.17
15:27
(10) Да, тоже самое.
12 Ёпрст
 
17.11.17
15:28
(8) мне он не нужен.
Пиши, че кажет это :


УчитыватьНДС = 1;
Сообщить("! - " + УчитыватьНДС);
    глЗаполнитьШапку(Контекст, Скопирован,"Продажа");
Сообщить("! - " + УчитыватьНДС,"!!!");
13 Масянька
 
17.11.17
15:29
(12) До - 1.
После - 0.
14 Ёпрст
 
17.11.17
15:30
(13) и ?
:))))))))))))))))))

чего ты хочешь тогда ?
15 Масянька
 
17.11.17
15:30
(14) Какого банана?
16 Ёпрст
 
17.11.17
15:32
(15)
глПриИзмененииФирмы
17 Ёпрст
 
17.11.17
15:33
пилять, заставляешь меня пофигуратор открывать.
18 Ёпрст
 
17.11.17
15:33
че я тебе, все константы помнить должен ?
:)
19 Ёпрст
 
17.11.17
15:34
короче, в глЗаполнитьШапку вызывается глПриИзмененииФирмы
в ней УчитыватьНДС  присваивается.
20 Масянька
 
17.11.17
15:36
(19)     глЗаполнитьШапку(Контекст, Скопирован); - вызывается в ВводНового (специально посмотрела в нетронутых типовых док-ах).
Вопрос: в цене есть НДС, в док-те (в лоб) поставила, а эта хрень сбрасывает.
21 Ёпрст
 
17.11.17
15:38
(20) у тя как с чтением то ?
22 Ёпрст
 
17.11.17
15:39
закрой пофигуратор, ляг поспи и всё пройдёт, потом приходи и читай (19)
23 Масянька
 
17.11.17
15:42
(21) Отлично.
0 там. Ноль. Возвращает из глПриИзмененииФирмы.
24 Ёпрст
 
17.11.17
15:45
(23) как это коррелирует с (13) ?
25 Ёпрст
 
17.11.17
15:46
открой отладчик, наконец и смотри, где изменяется УчитыватьНДС.
26 Ёпрст
 
17.11.17
15:58
а блин, заморочила мне голову своей ..энергией.
:)

если нуль возвращает, то че ты хочешь ?
;)
27 Масянька
 
17.11.17
15:59
(26) Честно? Конфет :)
28 Ёпрст
 
17.11.17
16:06
29 Масянька
 
17.11.17
16:14
(28) (заикаясь) с-с-спа-с-с-сибо
:)))))))))))0