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

Округление суммы

Автор Dmitrij, 12 июл 2016, 16:26

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

Dmitrij

Есть проблема. в 1с 8.3 УТ1.1 необходимо сделать округление итоговой суммы со скидкой. Само округление я сделал, но оно работает только с проведенным документом. не могу понять где нужно поправить в конфигураторе чтобы при оформлении заказа покупателя со скидкой работало округление до целого числа (т.е. без копеек). вот то что я сделал
Процедура РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект, СпособРасчета = Неопределено) Экспорт

ИмяТабличнойЧасти = ОбщегоНазначения.ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти);

МетаданныеДокумента = ДокументОбъект.Метаданные();

   Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество;
   СуммаСкидки = 0;

   Если (СпособРасчета = Неопределено)
    Или (СпособРасчета = Перечисления.СпособРасчетаСуммыДокумента.СУчетомВсехСкидок)
    Или (СпособРасчета = Перечисления.СпособРасчетаСуммыДокумента.БезУчетаРучнойСкидки) Тогда
      Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентАвтоматическихСкидок", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда
         СуммаСкидки = Сумма * СтрокаТабличнойЧасти.ПроцентАвтоматическихСкидок / 100;
      КонецЕсли;

      Если (СпособРасчета <> Перечисления.СпособРасчетаСуммыДокумента.БезУчетаРучнойСкидки)Тогда
Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентСкидкиНаценки", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда
      СуммаСкидки = СуммаСкидки + (Сумма * СтрокаТабличнойЧасти.ПроцентСкидкиНаценки / 100);
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;

   СтрокаТабличнойЧасти.Сумма = Сумма - СуммаСкидки; 
СтрокаТабличнойЧасти.Сумма = Окр(СтрокаТабличнойЧасти.Сумма, 0);
КонецПроцедуры // РассчитатьСуммуТабЧасти()

LexaK

попробуйте такой вариант, в модуле документа Заказ в событии ПереЗаписью вставить округление.
Затем просто перепроведите или перезапишите те заявки, которые необходимо пересчитать.
будет срабатывать независимо от признака проведенности.


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    //общее округление суммы
    Для каждого лкСтр Из Товары Цикл
        лкСтр.Сумма =  Окр(лкСтр.Сумма, 0);
    КонецЦикла;

    ...

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



если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск