Имя: Пароль:
1C
1С v8
Расчитать НДС
0 Singenor
 
13.06.12
20:18
как в цикле мне расчитать НДС при следующем условии:
1.Если НДс сверху( т.е. флаг не стоит на сумма вкл НДС) тогда берутся данные из реквизита цена
2. Если НДС в том числе (т.е. флаг установлен Сумма вкл НДС), тогда данные считаются так:
цена = "цена" \ (1+ ставка НДС)

Ставка ндс - перечисление, как к нему можно прибавить единицу, и на сие полученное еще разделить? срочно ребята, помогайте)
1 aleks-id
 
13.06.12
20:20
глянуть как в типовых выкрутились не судьба?
2 Rie
 
13.06.12
20:21
(0) Получи по ставке НДС процент НДС (в типовых такая функция имеется - поищи в общем модуле УчетНДС или какая там у тебя конфигурация). И наступит счастье. Может быть.
3 Фокусник
 
13.06.12
20:22
(0) пиши функцию, которая на входе имеет перечисление, а на выходе число
4 Singenor
 
13.06.12
20:26
Если (УчитыватьНДС) И (СуммаВключаетНДС) Тогда
       СуммаБезНДС = 100 * Сумма / (100 + СтавкаНДС);
       СуммаНДС = Сумма - СуммаБезНДС;
   Иначе
       СуммаБезНДС = Сумма;
   КонецЕсли;

   Если УчитыватьНДС Тогда
       Если НЕ СуммаВключаетНДС Тогда
           СуммаНДС = СуммаБезНДС * СтавкаНДС / 100;
       КонецЕсли;
   Иначе
       СуммаНДС = 0;
   КонецЕсли;

   Возврат СуммаНДС;


вот как в типовой, но не получается у меня так же взять
5 Rie
 
13.06.12
20:30
(4) А ты посмотри повнимательнее - что такое СтавкаНДС (в том месте, откуда ты этот кусок кода выдрал).
6 aleks-id
 
13.06.12
20:30
(4) молодец. копипастить научился. теперь включай мозг и ищи как и где заполняется СтавкаНДС
7 zak555
 
13.06.12
20:51
Процедура РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект) Экспорт

   МетаданныеДокумента = ДокументОбъект.Метаданные();
   ИмяТабличнойЧасти = ОбщегоНазначения.ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти);
   
   Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("Сумма", МетаданныеДокумента, ИмяТабличнойЧасти) И
       ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("СтавкаНДС", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда
       
       СтрокаТабличнойЧасти.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаТабличнойЧасти.Сумма,
                                                          ?(ОбщегоНазначения.ЕстьРеквизитДокумента("УчитыватьНДС", МетаданныеДокумента),ДокументОбъект.УчитыватьНДС,Истина),
                                                          ?(ОбщегоНазначения.ЕстьРеквизитДокумента("СуммаВключаетНДС", МетаданныеДокумента),ДокументОбъект.СуммаВключаетНДС,Ложь),
                                                          УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
   КонецЕсли;

КонецПроцедуры
8 zak555
 
13.06.12
20:51
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)

   // Рассчитать реквизиты табличной части.
   ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);

КонецПроцедуры // ТоварыСтавкаНДСПриИзменении()
9 zak555
 
13.06.12
21:04
> как в цикле мне расчитать НДС при следующем условии


Для Каждого ТекДанные Из ТЧ
  ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(ТекДанные, ЭтотОбъект);
КонецЦикла;
10 Singenor
 
14.06.12
14:33
(5) это перечисление
11 zak555
 
14.06.12
18:22
(10) в (4) это уже число
12 Singenor
 
14.06.12
18:42
Исходя из того, что мне нужно получить, а именно:
1.Если НДс сверху( т.е. флаг не стоит на сумма вкл НДС) тогда берутся данные из реквизита цена
2. Если НДС в том числе (т.е. флаг установлен Сумма вкл НДС), тогда данные считаются так:
цена = "цена" \ (1+ ставка НДС)


написал вот такую штуковину:



ВЫБОР
   КОГДА НЕ РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
       ТОГДА РеализацияТоваровУслугТовары.Цена
   ИНАЧЕ ВЫБОР
           КОГДА РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС
               ТОГДА РеализацияТоваровУслугТовары.Цена / (1 + ВЫБОР
                       КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = ЗНАЧЕНИЕ(перечисление.СтавкиНДС.НДС20)
                           ТОГДА 20
                       КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = ЗНАЧЕНИЕ(перечисление.ставкиНДС.НДС20_120)
                           ТОГДА 20
                       КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = ЗНАЧЕНИЕ(перечисление.СтавкиНДС.НДС10)
                           ТОГДА 10
                       КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = ЗНАЧЕНИЕ(перечисление.СтавкиНДС.НДС10_110)
                           ТОГДА 10
                       КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = ЗНАЧЕНИЕ(перечисление.СтавкиНДС.НДС18)
                           ТОГДА 18
                       КОГДА РеализацияТоваровУслугТовары.СтавкаНДС = ЗНАЧЕНИЕ(перечисление.СтавкиНДС.НДС18_118)
                           ТОГДА 18
                   КОНЕЦ)
       КОНЕЦ
КОНЕЦ

Но сумма НДС считается неправильно, почему?((
13 Базис
 
naïve
14.06.12
18:43
(12) Ты получаешь то цену, то значение ставки НДС. А что хотел получить?
14 Singenor
 
14.06.12
18:46
я хочу получить Цену без НДС в в документе, в зависимости от того, стоит галочка сумма вл НДС или нет
15 Базис
 
naïve
14.06.12
18:52
Возьми на вход твоего кода Цена = 118 рублей и ставка_НДС18.
118 надо делить не на 1+18, а на 1+0,18.
16 zak555
 
14.06.12
21:06
(12) пля, ты чукча ?
см. в (8) (9)
17 0xFFFFFF
 
15.06.12
18:55
(12) Ппц шедевр. Учитесь находить уже изобретенные до вас велосипеды в том гараже, в котором работаете.