Имя: Пароль:
1C
 
цена номенклатуры без НДС
0 avtor
 
21.09.09
10:01
Пытаюсь найти таким способом:
ЦенаБезНДС = ЦенаСНДС -(ЦенаСНДС*ВыборкаСтрокТовары.СтавкаНДС/100);

Ругается: Преобразование значения к типу Число не может быть выполнено.

как правильно сделать?
1 avtor
 
21.09.09
10:03
тоесть:
ЦенаБезНДС = ЦенаСНДС -(ЦенаСНДС/100*ВыборкаСтрокТовары.СтавкаНДС);
перепутал
2 megalodon
 
21.09.09
10:03
А что есть ТипЗнч(ВыборкаСтрокТовары.СтавкаНДС)?
3 hhhh
 
21.09.09
10:07
(1) не в тему: сама формула у вас неправильная.
4 avtor
 
21.09.09
10:08
ВыборкаСтрокТовары.СтавкаНДС
берется из перечисления СтавкаНДС, 18% - это строка.
Чтобы к числу привести надо отформатировать строку? отбросить значек% так чтоли?

(3)я тоже подозреваю что есть какая то функция для определения цены без НДС
5 interlamersha
 
21.09.09
10:08
(0) СтавкаНДС это реквизит типа Перечисление
6 interlamersha
 
21.09.09
10:08
(4) конфигурация какая УТ или БП?
7 avtor
 
21.09.09
10:09
(5) да да. как получить цену без НДС правильно?
8 avtor
 
21.09.09
10:09
УПП
9 hhhh
 
21.09.09
10:10
(8) в ТОРГ-12 можно глянуть. Там ведь цена без НДС.
10 interlamersha
 
21.09.09
10:12
Есть такая функция В Бухгалтерии, возможно в УПП она аналогичная. Нужно посмотреть, у меня УПП под рукой нет.
СтрокаТабличнойЧасти.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаТабличнойЧасти.Сумма,
                                                          ?(ОбщегоНазначения.ЕстьРеквизитДокумента("УчитыватьНДС", МетаданныеДокумента),ДокументОбъект.УчитыватьНДС,Истина),
                                                          ?(ОбщегоНазначения.ЕстьРеквизитДокумента("СуммаВключаетНДС", МетаданныеДокумента),ДокументОбъект.СуммаВключаетНДС,Ложь),
                                                          УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
11 mikecool
 
21.09.09
10:12
1) уточнить бы не помешало - может цена и так без НДС(см реквизит в типе цены)
2) СтавкаНДС - перечисление, смотрим процедуры ОМ Учет НДС
12 interlamersha
 
21.09.09
10:13
вот сама эта функция
Функция РассчитатьСуммуНДС(Сумма, УчитыватьНДС, СуммаВключаетНДС, СтавкаНДС) Экспорт

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

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

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

КонецФункции // РассчитатьСуммуНДС()
13 mikecool
 
21.09.09
10:14
(12) а ничего, что автор про цену спрашивает?
14 avtor
 
21.09.09
10:15
(9) для розничной текущей цены я там уже глянул. все работает нормально. выглядит вот так:
отпускБЕЗндс = ВыборкаСтрокТовары.Цена - (ВыборкаСтрокТовары.СуммаНДС/ВыборкаСтрокТовары.Количество)


Но я получаю закупочную цену вот таким образом
Цена1 = Ценообразование.ПолучитьЦенуНоменклатуры(ВыборкаСтрокТовары.Номенклатура, ,ТипЦен, ТекущаяДата(), , , , , );

и теперь из этого мне надо получить Цену без НДС
15 interlamersha
 
21.09.09
10:15
(13) какая разница, передаст в качестве параметра Сумма свое значение цены с НДС
16 avtor
 
21.09.09
10:21
не пойму, был ответ или нет?(((
на мой взгляд ничего не подходит.
17 avtor
 
21.09.09
10:23
Сформулирую иначе:
Надо отнять от цены номенклатуры ставку НДС.
Это можно сделать только форматируя строку НДС? или есть другой правильный способ?
18 interlamersha
 
21.09.09
10:28
Всеж уже написано.
СтавкаНДСЧисло=УчетНДС.ПолучитьСтавкуНДС(СтавкаНДС);
УчитыватьНДС=Истина;
ЦенаВключаетНДС=Истина;
НДСЦены=УчетНДС.РассчитатьСуммуНДС(ЦенаСНДС,УчитыватьНДС,ЦенаВключаетНДС,СтавкаНДСЧисло);
ЦенаБезНДС=ЦенаСНДС-НДСЦены;
19 interlamersha
 
21.09.09
10:29
просто проверь есть ли в УПП общий модуль УчетНДС и в нем Функция РассчитатьСуммуНДС.
20 mikecool
 
21.09.09
10:30
(15) "один ..., другой дразнится" сорри за каламбур
оперируют разные понятия, у цены признак включает она ндс или нет хранится в типе цен, а никак не в реквизите документа СуммаВключаетНДС
21 mikecool
 
21.09.09
10:34
+20 кусок запроса по расчету цены с НДС, думаю разберешься
Реализация - строка табл части реализации ТиУ

Реализация.Цена * ВЫБОР
КОГДА Реализация.Ссылка.ТипЦен = ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)
ИЛИ (НЕ Реализация.Ссылка.ТипЦен.ЦенаВключаетНДС)
ТОГДА 1
ИНАЧЕ ВЫБОР
КОГДА Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
ИЛИ Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
ТОГДА 1
КОГДА Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
ИЛИ Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
ТОГДА 18 / 118
КОГДА Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
ИЛИ Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
ТОГДА 10 / 110
КОГДА Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
ИЛИ Реализация.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
ТОГДА 20 / 120
КОНЕЦ
КОНЕЦ
22 interlamersha
 
21.09.09
10:36
тогда можно использовать такую функцию.
СтрокаТабличнойЧасти.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(СтрокаТабличнойЧасти.Цена,
                                                                                                Неопределено,
                                                                                                СтруктураЗначений.ТекущийСуммаВключаетНДС,
                                                                                                СтруктураЗначений.НовыйУчитыватьНДС,
                                                                                                СтруктураЗначений.НовыйСуммаВключаетНДС,
                                                                                                УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
23 interlamersha
 
21.09.09
10:39
Саму функцию соответсвенно найти в общем модуле Ценообразование.
24 interlamersha
 
21.09.09
10:42
(0) Устраивает вариант?
25 avtor
 
21.09.09
12:13
извините уезжал.
спасибо за советы но все же сделал вот так:

   Цена1 = Ценообразование.ПолучитьЦенуНоменклатуры(ВыборкаСтрокТовары.Номенклатура, ,ТипЦен, ТекущаяДата(), , , , , );
   ОбластьМакета.Параметры.закупСндс = Цена1;
   СтавкаНДС = Число(СтрЗаменить(ВыборкаСтрокТовары.СтавкаНДС,"%",""));
   Цена2 = 100 * Цена1 / (100 + СтавкаНДС);
   ОбластьМакета.Параметры.закупБЕЗндс = Цена2;

Все работает.
26 Либерал
 
21.09.09
12:24
(25) интересно, как будет "все работает" при СтавкаНДС = БезНДС ??
наверное щас скажешь "у нас такого не бывает"?
ну, дык тогда просто фигач
Цена2 = 100 * Цена1 / 118;
чего усложнять-то?))
27 avtor
 
21.09.09
12:29
(26) спасибо, не подумал)
без НДС нету но есть с разным НДС
Сейчас сделаю проверку на БезНДС и выложу на инфостарт печатную форму Протокол согласования цен.