Получение числового значения ставки НДС

1. user2121407 13.02.25 23:11 Сейчас в теме
Здравствуйте, пытаюсь скопировать реквизиты табличной части БезНДС, но постоянно выдает ошибку: Преобразование значения к типу Число не может быть выполнено
Подскажите пожалуйста, как мне получить числовое значение ставки?
&НаСервере
Функция НС_СоздатьЗаказПоставщикуПослеНаСервере()
	
	Если Объект.Запасы.Количество() > 0 Тогда
		ЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент();
			ЗаполнитьЗначенияСвойств(ЗаказПоставщику, Объект);
		
		Для Каждого ТекСтрока Из Объект.Запасы  Цикл
			
			ТекСтрокаЗаказПоставщику = ЗаказПоставщику.Запасы.Добавить();
			
			ЗаполнитьЗначенияСвойств(ТекСтрокаЗаказПоставщику,ТекСтрока);
			
		КонецЦикла;
		
		Для каждого Стр из Объект.Запасы Цикл
			
			Стр.СуммаНДС = Стр.Сумма - (Стр.Сумма/(100+Стр.СтавкаНДС)*100);
			Стр.СуммаБезНДС = Стр.Сумма - Стр.СуммаНДС;
			
	КонецЦикла;
		
		
		
		Попытка    
			ЗаказПоставщику.УстановитьНовыйНомер();
			ЗаказПоставщику.Записать(РежимЗаписиДокумента.Запись);
			Возврат ЗаказПоставщику.Ссылка;
		Исключение       
			Возврат Документы.ЗаказПоставщику.ПустаяСсылка();
		КонецПопытки;
	Иначе
		
		Возврат Неопределено;
	КонецЕсли;
	
КонецФункции
Показать
По теме из базы знаний
Найденные решения
13. Al3x 1 14.02.25 08:34 Сейчас в теме
(1)
Стр.СуммаНДС = Стр.Сумма - (Стр.Сумма/(100+Стр.СтавкаНДС)*100);

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

Функция СтавкаНДСЧислом(СтавкаНДС) 
	
	Если СтавкаНДС = Перечисления.СтавкиНДС.НДС5 Тогда
		Возврат 5;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
		Возврат 10;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
		Возврат 18;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
		Возврат 20;
	Иначе
		Возврат 1; // Без НДС
	КонецЕсли;
	
КонецФункции
Показать
и свои значения добавить нужно, если помимо этих ставок другие есть. Учитывай, что тип значения реквизита СтавкаНДС в строке должен быть именно перечислением, а не справочником. Иначе всегда будет 1 возвращаться. Если тип значения справочник, то Стр.СтавкаНДС.Ставка.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. Al3x 1 14.02.25 08:34 Сейчас в теме
(1)
Стр.СуммаНДС = Стр.Сумма - (Стр.Сумма/(100+Стр.СтавкаНДС)*100);

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

Функция СтавкаНДСЧислом(СтавкаНДС) 
	
	Если СтавкаНДС = Перечисления.СтавкиНДС.НДС5 Тогда
		Возврат 5;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
		Возврат 10;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
		Возврат 18;
	ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
		Возврат 20;
	Иначе
		Возврат 1; // Без НДС
	КонецЕсли;
	
КонецФункции
Показать
и свои значения добавить нужно, если помимо этих ставок другие есть. Учитывай, что тип значения реквизита СтавкаНДС в строке должен быть именно перечислением, а не справочником. Иначе всегда будет 1 возвращаться. Если тип значения справочник, то Стр.СтавкаНДС.Ставка.
14. user2107184 14.02.25 09:19 Сейчас в теме
(13) Сложно для понимания. И примеров таких в типовых никак не найти самостоятельно. Задача какая-то непостижимая.
15. Al3x 1 14.02.25 09:47 Сейчас в теме
(14)
Прикрепленные файлы:
16. user2121407 15.02.25 00:57 Сейчас в теме
(13) Спасибо огромное, поменял и все зарабатоло
2. user2107184 13.02.25 23:17 Сейчас в теме
Что, за 2 дня так и не нашел ни в одном месте - откуда же берется число для расчета НДС? Ну в той же ПриходнойНакладной посмотри, что ли.
Никто тут за руку тебя водить не собирается.
Сдается, что ты и не собираешься разбираться в сути.

https://forum.infostart.ru/forum9/topic323187/
3. user2121407 13.02.25 23:21 Сейчас в теме
(2) Зачем вы сидите на этих сайтах, если вы никак не пытаетесь помочь, а только пишите вот это)) профессионалы
5. user2107184 13.02.25 23:23 Сейчас в теме
(3) Джунов нормальных, перспективных, пытливых ищем... Да никак найти не можем. Только необучаемые попрошайки без намеков на рассудительность и размышления.
orakool; Al3x; +2 Ответить
4. user2121407 13.02.25 23:23 Сейчас в теме
(2) Я наверное поэтому и новичок, и не могу иногда чего-то понять, поэтому и прошу тут помощи. Вы думаете, я не пытался разобраться?! Я просто запутался
6. user2107184 13.02.25 23:24 Сейчас в теме
(4)
думаете, я не пытался разобраться?!
Например - как? Посмотрел как рассчитывается ставка НДС в других документах, правда ведь? Посмотрел?
7. user2121407 13.02.25 23:43 Сейчас в теме
(6)
&НаКлиенте
Процедура СуммаПродажиПриИзменении(Элемент)
	Если СуммаПродажи > 0 Тогда
		Элементы.СтавкаНДС.ТолькоПросмотр = Ложь;
	Иначе
		Элементы.СтавкаНДС.ТолькоПросмотр = Истина;
	КонецЕсли;
	
КонецПроцедуры  

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

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

Я понял, что СтавкаНДС вот так рассчитывается, но как мне это применить в своем коде, мне постоянно выдает ошибку
8. user2107184 13.02.25 23:48 Сейчас в теме
(7)
Я понял, что СтавкаНДС вот так рассчитывается
Нет, ты не "понял". Ты просто "увидел код". Если бы хотел понять - то задумался бы, что сии буквы обозначают, что в каждой конкретной строчке происходит с данными, какие у них значения в каждой конкретной строчке.
Но - нет, тебя интересует только, как "этот код засунуть в мой код".
9. user2121407 13.02.25 23:57 Сейчас в теме
(8) так в этом и проблема, что я пытался прочитать этот код. Несколько вариантов использовал, но вылазит ошибка.
10. user2107184 14.02.25 07:36 Сейчас в теме
(9)
что я пытался прочитать этот код.
А надо не просто "читать", а разложить его пошагово и понять. Но ты всего лишь "пытался читать", значит либо не дошел до результата, либо даже не начинал. (Я пытался пылесосить, но было лень собрать пылесос)
Несколько вариантов использовал
Вариантов чего? Засовывания букв в свой код? А вот если бы выполнил первый пункт, то и со вторым бы не возникло вопросов. А раз пробовал несколько вариантов не понимая сути - это и есть угадайка.
Тебе к Калимуллину. Он тебя научит.
12. fratz 14.02.25 08:22 Сейчас в теме
(9) Не надо варианты перебирать! - пользуйся отладчиком! (Он тебе покажет всё с чем ты работаешь)
11. starjevschik 14.02.25 08:05 Сейчас в теме
Во всех стандартных конфигурациях 1с есть готовые функции для этого. Посмотри, как называется твоя конфигурация (помощь - о программе - там написано), потом в поиск напиши это название и "ставка ндс числом" и найдешь.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот