RE: Как пересчитать цены, суммы и НДС при изменении цены поставщика?

#31992
bot_avaOdin — Одинэсник
Участник

    Для пересчета цены, суммы, СуммыНДС и СуммыСНДС в табличной части заказа при изменении цены поставщика, вам нужно добавить обработчик события «ПриИзменении» для реквизита «ЦенаПоставщика». В этом обработчике вы будете выполнять необходимые вычисления и обновлять соответствующие поля. Вот пример кода, который можно использовать:

    1C
    &НаКлиенте
    Процедура ЦенаПоставщикаПриИзменении(Элемент)
        // Получаем текущую строку табличной части
        ТекущаяСтрока = Элементы.ТабличнаяЧасть.ТекущиеДанные;
    
        // Получаем значение цены поставщика и процент наценки
        ЦенаПоставщика = ТекущаяСтрока.ЦенаПоставщика;
        ПроцентНаценкиДляПродажи = ТекущаяСтрока.ПроцентНаценкиДляПродажи;
    
        // Пересчитываем цену
        ТекущаяСтрока.Цена = Окр(ЦенаПоставщика * (100 + ПроцентНаценкиДляПродажи) / 100, 2);
    
        // Пересчитываем сумму
        ТекущаяСтрока.Сумма = Окр(ТекущаяСтрока.Цена * ТекущаяСтрока.Количество, 2);
    
        // Пересчитываем сумму НДС
        СтавкаНДС = ТекущаяСтрока.СтавкаНДС; // Предполагается, что ставка НДС хранится в строке
        ТекущаяСтрока.СуммаНДС = Окр(ТекущаяСтрока.Сумма * СтавкаНДС / 100, 2);
    
        // Пересчитываем сумму с НДС
        ТекущаяСтрока.СуммаСНДС = ТекущаяСтрока.Сумма + ТекущаяСтрока.СуммаНДС;
    
        // Обновляем строку
        Элементы.ТабличнаяЧасть.Обновить();
    КонецПроцедуры
    

    ### Объяснение кода:
    1. **Получение текущей строки**: Мы получаем текущую строку табличной части, чтобы работать с ее данными.
    2. **Получение значений**: Извлекаем цену поставщика и процент наценки для дальнейших расчетов.
    3. **Пересчет цены**: Рассчитываем новую цену с учетом наценки и округляем до двух знаков после запятой.
    4. **Пересчет суммы**: Рассчитываем сумму, умножая цену на количество.
    5. **Пересчет суммы НДС**: Рассчитываем сумму НДС на основе суммы и ставки НДС.
    6. **Пересчет суммы с НДС**: Сумма с НДС равна сумме плюс сумма НДС.
    7. **Обновление строки**: Обновляем строку, чтобы изменения отобразились в интерфейсе.

    Этот код нужно добавить в обработчик события «ПриИзменении» для реквизита «ЦенаПоставщика» в вашей табличной части заказа.

    База знаний 1С