Здравствуйте, пытаюсь скопировать реквизиты табличной части БезНДС, но постоянно выдает ошибку: Преобразование значения к типу Число не может быть выполнено
Подскажите пожалуйста, как мне получить числовое значение ставки?

```1c
    &НаСервере
    Функция НС_СоздатьЗаказПоставщикуПослеНаСервере()

    Если Объект.Запасы.Количество() > 0 Тогда
    ЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент();
    ЗаполнитьЗначенияСвойств(ЗаказПоставщику, Объект);

    Для Каждого ТекСтрока Из Объект.Запасы Цикл

    ТекСтрокаЗаказПоставщику = ЗаказПоставщику.Запасы.Добавить();

    ЗаполнитьЗначенияСвойств(ТекСтрокаЗаказПоставщику,ТекСтрока);

    КонецЦикла;

    Для каждого Стр из Объект.Запасы Цикл

    Стр.СуммаНДС = Стр.Сумма - (Стр.Сумма/(100+Стр.СтавкаНДС)*100);
    Стр.СуммаБезНДС = Стр.Сумма - Стр.СуммаНДС;

    КонецЦикла;

    Попытка
    ЗаказПоставщику.УстановитьНовыйНомер();
    ЗаказПоставщику.Записать(РежимЗаписиДокумента.Запись);
    Возврат ЗаказПоставщику.Ссылка;
    Исключение
    Возврат Документы.ЗаказПоставщику.ПустаяСсылка();
    КонецПопытки;
    Иначе

    Возврат Неопределено;
    КонецЕсли;

    КонецФункции
```
---
Стр.СуммаНДС = Стр.Сумма - (Стр.Сумма/(100+Стр.СтавкаНДС)*100);

```1c
    Стр.СуммаНДС = Стр.Сумма * (?(СтавкаНДСЧислом(Стр.СтавкаНДС) = 1, 0, СтавкаНДСЧислом(Стр.СтавкаНДС) / 100));

    Функция СтавкаНДСЧислом(СтавкаНДС)

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

    КонецФункции
```
 и свои значения добавить нужно, если помимо этих ставок другие есть. Учитывай, что тип значения реквизита СтавкаНДС в строке должен быть именно перечислением, а не справочником. Иначе всегда будет 1 возвращаться. Если тип значения справочник, то Стр.СтавкаНДС.Ставка.
---
Стр.СуммаНДС = Стр.Сумма - (Стр.Сумма/(100+Стр.СтавкаНДС)*100);

```1c
    Стр.СуммаНДС = Стр.Сумма * (?(СтавкаНДСЧислом(Стр.СтавкаНДС) = 1, 0, СтавкаНДСЧислом(Стр.СтавкаНДС) / 100));

    Функция СтавкаНДСЧислом(СтавкаНДС)

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

    КонецФункции
```
 и свои значения добавить нужно, если помимо этих ставок другие есть. Учитывай, что тип значения реквизита СтавкаНДС в строке должен быть именно перечислением, а не справочником. Иначе всегда будет 1 возвращаться. Если тип значения справочник, то Стр.СтавкаНДС.Ставка.
---
Сложно для понимания. И примеров таких в типовых никак не найти самостоятельно. Задача какая-то непостижимая.
---
Спасибо огромное, поменял и все зарабатоло
---
Что, за 2 дня так и не нашел ни в одном месте - откуда же берется число для расчета НДС? Ну в той же ПриходнойНакладной посмотри, что ли.
Никто тут за руку тебя водить не собирается.
Сдается, что ты и не собираешься разбираться в сути.

https://forum.infostart.ru/forum9/topic323187/
---
Зачем вы сидите на этих сайтах, если вы никак не пытаетесь помочь, а только пишите вот это)) профессионалы
---
Джунов нормальных, перспективных, пытливых ищем... Да никак найти не можем. Только необучаемые попрошайки без намеков на рассудительность и размышления.
---
Я наверное поэтому и новичок, и не могу иногда чего-то понять, поэтому и прошу тут помощи. Вы думаете, я не пытался разобраться?! Я просто запутался
---
думаете, я не пытался разобраться?! Например - как? Посмотрел как рассчитывается ставка НДС в других документах, правда ведь? Посмотрел?
---
```1c
    &НаКлиенте
    Процедура СуммаПродажиПриИзменении(Элемент)
    Если СуммаПродажи > 0 Тогда
    Элементы.СтавкаНДС.ТолькоПросмотр = Ложь;
    Иначе
    Элементы.СтавкаНДС.ТолькоПросмотр = Истина;
    КонецЕсли;

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

    &НаСервере
    Функция ПолучитьЧислоСтавки()
    Возврат СтавкаНДС.Ставка;
    КонецФункции

    &НаКлиенте
    Процедура СтавкаНДСПриИзменении(Элемент)
    Если ЗначениеЗаполнено(СтавкаНДС) Тогда
    СуммаНДС = СуммаПродажи - (СуммаПродажи/(100+ПолучитьЧислоСтавки())*100);
    СуммаБезНДС = СуммаПродажи - СуммаНДС;
    Иначе
    СуммаБезНДС = 0;
    СуммаНДС = 0;
    КонецЕсли;
    КонецПроцедуры
```

Я понял, что СтавкаНДС вот так рассчитывается, но как мне это применить в своем коде, мне постоянно выдает ошибку
---
Я понял, что СтавкаНДС вот так рассчитывается Нет, ты не "понял". Ты просто "увидел код". Если бы хотел понять - то задумался бы, что сии буквы обозначают, что в каждой конкретной строчке происходит с данными, какие у них значения в каждой конкретной строчке.
Но - нет, тебя интересует только, как "этот код засунуть в мой код".
---
так в этом и проблема, что я пытался прочитать этот код. Несколько вариантов использовал, но вылазит ошибка.
---
что я пытался прочитать этот код.А надо не просто "читать", а разложить его пошагово и понять. Но ты всего лишь "пытался читать", значит либо не дошел до результата, либо даже не начинал. (Я пытался пылесосить, но было лень собрать пылесос)
Несколько вариантов использовал Вариантов чего? Засовывания букв в свой код? А вот если бы выполнил первый пункт, то и со вторым бы не возникло вопросов. А раз пробовал несколько вариантов не понимая сути - это и есть угадайка.
Тебе к Калимуллину. Он тебя научит.
---
Не надо варианты перебирать! - пользуйся отладчиком! (Он тебе покажет всё с чем ты работаешь)
---
Во всех стандартных конфигурациях 1с есть готовые функции для этого. Посмотри, как называется твоя конфигурация (помощь - о программе - там написано), потом в поиск напиши это название и "ставка ндс числом" и найдешь.