![]() |
|
Ошибка расчета цены с НДС | ☑ | ||
---|---|---|---|---|
0
Начинающий_13
10.04.15
✎
16:44
|
Здравствуйте.
Помогите убрать копейку. Ввожу данные НДС в Сумме Кол 1 Цена 100 Сумма 100 Ставка НДС 18 НДС 15.25 Всего 100 Переключаю в НДС сверху Кол 1 Цена 84.75 Сумма 84.75 Ставка НДС 18 НДС 15.26 Всего 101 Переключаю обратно в НДС в сумме Кол 1 Цена 100.01 Сумма 100.01 Ставка НДС 18 НДС 15.26 Всего 100.01 Формулы расчета Суммы, Расчета СуммыНДС, Расчета Всего взяты из БП 3.0 Процедура ПриИзмененииСуммаВключаетНДСПересчитатьДанныеТабличнойЧасти(Форма, ИмяТаблицы, ЗначениеПустогоКоличества = 0, ПрименяютсяСтавки4и2 = Ложь) Экспорт Элементы = Форма.Элементы; Объект = Форма.Объект; Для Каждого СтрокаТаблицы из Объект[ИмяТаблицы] Цикл Если Объект.СуммаВключаетНДС Тогда // ??????????????????????????????? СтрокаТаблицы.Цена = СтрокаТаблицы.Цена * (100 + МА_УчетНДСВызовСервераПовтИсп.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС, ПрименяютсяСтавки4и2)) / 100; Иначе // Цана без НДС СтрокаТаблицы.Цена = (СтрокаТаблицы.Цена * 100) / (100 + МА_УчетНДСВызовСервераПовтИсп.ПолучитьСтавкуНДС(СтрокаТаблицы.СтавкаНДС, ПрименяютсяСтавки4и2)); КонецЕсли; МА_РаботаСТабличнымиЧастямиКлиентСервер.РассчитатьСуммуТабЧасти(СтрокаТаблицы, ЗначениеПустогоКоличества); Если СтрокаТаблицы.Свойство("НДС") Тогда МА_РаботаСТабличнымиЧастямиКлиентСервер.РассчитатьСуммуНДСТабЧасти(СтрокаТаблицы, Объект.СуммаВключаетНДС, ПрименяютсяСтавки4и2); КонецЕсли; Если СтрокаТаблицы.Свойство("Всего") Тогда СтрокаТаблицы.Всего = СтрокаТаблицы.Сумма + ?(Объект.СуммаВключаетНДС, 0, СтрокаТаблицы.НДС); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
Cyberhawk
10.04.15
✎
16:48
|
Сделай тот же пример, только изначально цену поставь 100.01 и посмотри, что будет...
|
|||
2
Начинающий_13
10.04.15
✎
16:50
|
Тогда все возвращается как и было при вводе
|
|||
3
Cyberhawk
10.04.15
✎
16:52
|
Ну вот: что при 100.00, что при 100.01 конечный результат одинаковый. Как ты планируешь это исправить? Как отличить, что в первом случае нужно вернуть 100.00, а во втором оставить 100.01?
|
|||
4
Cyberhawk
10.04.15
✎
16:54
|
Проверил в демо-базе БП 3.0, там такое же поведение. В общем случае задача не решается.
Добавь предупреждение "Цены будут очищены" при возвращении галочки и очищай цену, либо перезаполняй по цене, которая хранится в инфобазе - в 1С сделана для этого галочка "Перезаполнить цены" |
|||
5
Начинающий_13
10.04.15
✎
16:56
|
1 Конечный результат в первом случае 100 (при вводе 100)
Возвращает 100.01 2 Во втором случае конечный результат 100.01 (при вводе 100.01) возвращает 100.01 Как и надо ничего не изменелось. |
|||
6
Начинающий_13
10.04.15
✎
16:58
|
Цена старая берется из спр. номенклатура в БП 3.0 если папять не изменяет. Сдель цена не хранится в спр...
Вот и думаю как получить предыдущию цену. |
|||
7
Начинающий_13
10.04.15
✎
17:01
|
Где ее сохрнить на время?
|
|||
8
Cyberhawk
10.04.15
✎
17:01
|
Слишком много телодвижений придется делать, а ради чего?
Сохранять на время можешь в структуре ДополнительныеСвойства документа-объекта |
|||
9
Начинающий_13
10.04.15
✎
17:04
|
Можно в ТЗ, затем загрузить..
Какие варианты еще есть? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |