База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить поле «ЦенаБезНДС» с получением ставки НДС из номенклатуры?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
6 июля 2026 в 11:36 #38052
еще сделай поле цена без НДС, где ставка НДС берется из номенклатуры как Цены.Номенклатура.СтавкаНДС.Ставка КАК СтавкаНДС, (это перечисление)
-
6 июля 2026 в 11:36 #38053
Чтобы добавить в запрос поле «ЦенаБезНДС», где ставка НДС берется из номенклатуры (через перечисление Цены.Номенклатура.СтавкаНДС.Ставка), нужно:
1. В запросе получить ставку НДС из номенклатуры.
2. Преобразовать перечисление ставки НДС в числовое значение процента.
3. Рассчитать цену без НДС по формуле:|ЦенаБезНДС = Цена / (1 + СтавкаНДС / 100)
Пример запроса с учетом пересчёта валюты и расчёта цены без НДС:
|ВЫБРАТЬ
| Цены.Номенклатура КАК Номенклатура,
| Цены.Цена КАК Цена,
| Цены.Валюта КАК ВалютаЦены,
| КурсыВалют.Курс КАК КурсВалюты,
| КурсыВалют.Кратность КАК КратностьВалюты,
| 1 КАК КратностьРубли,
| Цены.Цена * КурсыВалют.Курс * 1 / КурсыВалют.Кратность КАК ЦенаВРублях,
| Цены.Номенклатура.СтавкаНДС КАК СтавкаНДСПеречисление,
| ВЫБОР
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ТОГДА 20
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ТОГДА 18
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ТОГДА 10
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 ТОГДА 0
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ КАК СтавкаНДС,
| Цены.Цена / (1 + (ВЫБОР
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ТОГДА 20
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ТОГДА 18
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ТОГДА 10
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 ТОГДА 0
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ) / 100) КАК ЦенаБезНДС
|ИЗ
| РегистрЦен.НоменклатураЦены КАК Цены
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта = Цены.Валюта) КАК КурсыВалют
| ПО Цены.Валюта = КурсыВалют.ВалютаОбъяснение:
— Цены.Номенклатура.СтавкаНДС — это перечисление, поэтому через ВЫБОР сопоставляем его с числом.
— ЦенаБезНДС считается как Цена / (1 + ставкаНДС/100).
— Если ставка НДС «БезНДС» или 0%, цена без НДС равна цене.
Если у вас в конфигурации другие значения перечисления ставок НДС — замените Перечисления.СтавкиНДС.НДС20 и т.п. на свои.
Если нужно, могу помочь адаптировать под ваш конкретный запрос.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.