Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 22:47

как написать функцию которая получит данные и выводит числовое значени

Автор cozac.eric, 04 авг 2016, 10:19

0 Пользователей и 1 гость просматривают эту тему.

cozac.eric

Здравствуйте,началл изучать 1с и дошёл до функций и немножко подвис
Подскажите кто нибудь как написать функцию которая получит данные из "Перечесления.СтавкиНДС" и выведет числовое значение
либо дайте пример такой функции

vitasw

Шоб вам так дорогу объясняли, как вы спрашиваете

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

Если ЗначениеПеречисления=Перечисления.СтавкиНДС.НДС18 Тогда
Возврат 0.18;
ИначеЕсли ЗначениеПеречисления=Перечисления.СтавкиНДС.НДС10 Тогда
Возврат 0.1;
ИначеЕсли .....

КонецЕсли;


КонецФункции


Процедура РассчитатьСуммуНДС()

СуммаНДС=200*ПолучитьСтавкуНДС(Перечисления.СтавкиНДС.НДС18);

КонецПроцедуры

cozac.eric

Народ помогите ещё раз
Вот код:

&НаКлиенте
Процедура ТоварСтавкиНДСПриИзменении(Элемент)
   
    ТекущиеДанные = Элементы.Товар.ТекущиеДанные;
   
    ТекущиеДанные.СуммаНДС = ТекущиеДанные.Сумма * УчётНДС.ПолучитьСтавкуНДС("ЗначениеПеречисления")//На функцию

    ТекущиеДанные.Итого = ТекущиеДанные.Сумма + ТекущиеДанные.СуммаНДС;
   
КонецПроцедуры

//////////////////////////////////////////////////////////

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

   
    Если ЗначениеПеречисления = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20") Тогда
        Возврат 0.2;
       
    ИначеЕсли ЗначениеПеречисления = ПредопределенноеЗначение ("Перечисление.СтавкиНДС.НДС6") Тогда
        Возврат 0.06;
       
    ИначеЕсли ЗначениеПеречисления = ПредопределенноеЗначение ("Перечисление.СтавкиНДС.НДС8") Тогда
        Возврат 0.08;
       
    ИначеЕсли ЗначениеПеречисления = ПредопределенноеЗначение ("Перечисление.СтавкиНДС.БезНДС") Тогда
        Возврат 0;
       
    КонецЕсли;
   
   
КонецФункции

//////////////////////////////////////////////////
выдаёт следующую ошибку:
{Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(43)}: Преобразование значения к типу Число не может быть выполнено
    ТекущиеДанные.СуммаНДС = ТекущиеДанные.Сумма * УчётНДС.ПолучитьСтавкуНДС("ЗначениеПеречисления");

В чём я  ошибся?

Kironten

Цитата: cozac.eric от 04 авг 2016, 17:43
В чём я  ошибся?
Вы передаете строку в функцию, а надо передавать значение перечисления.
ТекущиеДанные.СуммаНДС = ТекущиеДанные.Сумма * УчётНДС.ПолучитьСтавкуНДС(ТекущиеДанные.СтавкиНДС)//На функцию

cozac.eric


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск