|
Пересчет цены или количества при изменении суммы
| ☑ |
0
ляляля9999
27.09.14
✎
23:30
|
Доброго времени суток!
Необходимо реализовать пересчет цены или количества при изменении суммы (сам вариант пересчета - количества или цены, нужно определить с помощью константы).
&НаКлиенте
Процедура СписокНоменклатурыСуммаПриИзменении(Элемент)
ВариантПересчетаСуммыПриИзменении(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ВариантПересчетаСуммыПриИзменении(Элемент)
ТекСтрока = Элементы.СписокНоменклатуры.ТекущиеДанные;
ВариантПересчетаСуммыПриИзмененииНаСервере(ТекСтрока.Количество, ТекСтрока.Цена, ТекСтрока.Сумма);
РасчетСуммыДокумента();
КонецПроцедуры
&НаСервере
Процедура ВариантПересчетаСуммыПриИзмененииНаСервере(Количество, Цена, Сумма)
Пересчет = Константы.ВариантПересчетаСуммы.Получить();
Если Пересчет = Перечисления.ВариантыПересчетаСуммы.Цена Тогда
Цена = Сумма/Количество;
Иначе
Количество = Сумма/Цена;
КонецЕсли;
КонецПроцедуры
Но данная процедура пересчитывает только цену, даже если указан вариант пересчета количество. Где ошибка?
Спасибо.
|
|
1
zak555
27.09.14
✎
23:34
|
константу измени
|
|
2
Alexor
28.09.14
✎
09:20
|
(0) Я бы еще проверку деления на 0 сделал
|
|
3
Alexor
28.09.14
✎
09:21
|
(0) а еще бы я посмотрел РасчетСуммыДокумента()
|
|
4
ляляля9999
28.09.14
✎
13:47
|
Константа установлена "цена", вариант пересчета ставлю "количество", в итоге пересчитывается цена. Отладчиком смотрела константу получает верно, перечисление почему определяется как цена. Сделала процедуру на сервере без контекста, все равно не правильно считает. РасчетСуммыДокумента() не при чем, это итоговая сумма номенклатуры, эту строчку убирала совсем, та же история...
|
|
6
Ерепень
28.09.14
✎
13:59
|
(5) о, седьмой! поздравляю, сэр
|
|