Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Перечисления НДС не получается перевести в числовой формат

Перечисления НДС не получается перевести в числовой формат
Я
   ksru
 
10.11.16 - 10:41
Как можно сделать чтоб НДС считалось если оно заданно в перечислениях?
Если можно то скиньте пример.
 
 
   torgm
 
1 - 10.11.16 - 10:44
(0) УТ 10 Функция в учетНДС

// Функция возвращает ставку НДС.

//
// Параметры:

//  СтавкаНДС - Ставка НДС.
//

// Возвращаемое значение:
//  Число.

//
Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт

    Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
        Возврат 20;
    ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
        Возврат 10;
    ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
        Возврат 18;
    КонецЕсли;

    Возврат 0;

КонецФункции// ПолучитьСтавкуНДС()
   ksru
 
2 - 10.11.16 - 10:56
а для тупых можно еще раз

// Функция возвращает ставку НДС.

Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт
Если СтавкаНДС = Перечисления.НДС.Процент18 Тогда
Возврат 0.18;
ИначеЕсли СтавкаНДС = Перечисления.НДС.Процент10 Тогда
Возврат 010;
ИначеЕсли СтавкаНДС = Перечисления.НДС.БезНДС Тогда
Возврат 0;
КонецЕсли;
Возврат 0;
КонецФункции

&НаКлиенте
Процедура ЗаказанныйТоварЦенаСНДСПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.ЗаказанныйТовар.ТекущиеДанные;
СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.НДС+СтрокаТабличнойЧасти.Цена;
КонецПроцедуры
   torgm
 
3 - 10.11.16 - 11:30
(2)  первый косяк
Если СтавкаНДС = Перечисления.НДС.Процент18 Тогда
Возврат 0.18;
ИначеЕсли СтавкаНДС = Перечисления.НДС.Процент10 Тогда
Возврат 010;

второй косяк 

Процедура ЗаказанныйТоварЦенаСНДСПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.ЗаказанныйТовар.ТекущиеДанные;
СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.НДС+СтрокаТабличнойЧасти.Цена;
   ksru
 
4 - 11.11.16 - 09:42
(3) если честно то я ничего не понял что вы написали про косяки
вы имеете в виду 
Возврат 010;
косяк или что?
   shadow_sw
 
5 - 11.11.16 - 09:46
(4) у тебя функция возвращает переменную ставкаНДС, а в условии ты возвращаешь число, которое никуда не присвоено
   h-sp
 
6 - 11.11.16 - 09:47
(4) чем 010 отличается от 10? и где у тебя здесь 018?
   DDwe
 
7 - 11.11.16 - 09:49
(6) 010 строка видимо, а 10 может и число.
   ksru
 
8 - 11.11.16 - 10:10
(5) и каким образом это положение исправить возможно?
   ksru
 
9 - 11.11.16 - 10:58
как-то так должно быть?
Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт
СтрокаТабличнойЧасти=Элементы.ЗаказанныйТовар.ТекущиеДанные;
Если СтрокаТабличнойЧасти.НДС = Перечисления.НДС.Процент18 Тогда
СтрокаТабличнойЧасти.НДС=18;
ИначеЕсли СтавкаНДС = Перечисления.НДС.Процент10 Тогда
СтрокаТабличнойЧасти.НДС= 10;
ИначеЕсли СтавкаНДС = Перечисления.НДС.БезНДС Тогда
СтрокаТабличнойЧасти.НДС= 0;
Иначе
СтрокаТабличнойЧасти.НДС= 0;
КонецЕсли;
КонецФункции
   h-sp
 
10 - 11.11.16 - 11:09
(9) так не бывает. не может одновременно быть СтрокаТабличнойЧасти.НДС и перечислением и числом. Если там перечисление, то должно быть перечисление, число вы туда уже не запишете.

Может СтрокаТабличнойЧасти.СтавкаНДС там у вас есть?
 
 Рекламное место пустует
   ksru
 
11 - 11.11.16 - 11:14
(10) нет у меня есть Перечисления.НДС. Процент18, Процент10, БезНДС и поле ссылка которое ведет на перечисления называется НДС и имеется поле ЦенаСНДС которое нужно рассчитать как-то

СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.НДС+СтрокаТабличнойЧасти.Цена;
   ksru
 
12 - 11.11.16 - 11:15
но поле НДС имеет не числовой формат
   shadow_sw
 
13 - 11.11.16 - 11:16
(10)(11) ух как все запущено...срочно читать про типы данных
   torgm
 
14 - 11.11.16 - 11:18
пипец конечно , ну ладн

СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*(100+ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС))/100
   shadow_sw
 
15 - 11.11.16 - 11:19
(14) сломал всю интригу
   torgm
 
16 - 11.11.16 - 11:20
(14) я практически сутки терпел :) 12 минут не хватило
   ksru
 
17 - 11.11.16 - 11:30
(16)

Функция ПолучитьСтавкуНДС(СтавкаНДС) Экспорт
Если СтавкаНДС = Перечисления.НДС.Процент18 Тогда
Возврат 18;
ИначеЕсли СтавкаНДС = Перечисления.НДС.Процент10 Тогда
Возврат 10;
ИначеЕсли СтавкаНДС = Перечисления.НДС.БезНДС Тогда
Возврат 0;
КонецЕсли;
Возврат 0;
КонецФункции

Процедура ЗаказанныйТоварЦенаСНДСПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.ЗаказанныйТовар.ТекущиеДанные;
СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*(100+ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС))/100
КонецПроцедуры

так будет?
   torgm
 
18 - 11.11.16 - 11:40
(17) да почему же "ЗаказанныйТоварЦенаСНДСПриИзменении"???
ты ж обыкновенную цену меняешь или нет?
   h-sp
 
19 - 11.11.16 - 11:47
СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*(100+ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.НДС))/100
   ksru
 
20 - 11.11.16 - 11:59
(18) нет с НДС
&НаКлиенте
Процедура ЗаказанныйТоварНДСПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.ЗаказанныйТовар.ТекущиеДанные;
СтрокаТабличнойЧасти.ЦенаСНДС=СтрокаТабличнойЧасти.Цена*(100+ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.НДС))/100
КонецПроцедуры
   torgm
 
21 - 11.11.16 - 12:00
(20) Меняешь Значения в какой колонке?
   shadow_sw
 
22 - 11.11.16 - 12:07
(21) не мучайся, пациент не хочет учиться, он хочет зеленую кнопку - напиши ему и всего делов :)
   torgm
 
23 - 11.11.16 - 12:10
(22) я вижу это,  меня "молодое поколение радует" чем больше таких, тем выше можно ставить ценник.


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