Как пересчитывать количество товара по общей сумме в РМК?
Добрый день, в базе Розницы 2.3 в РМК есть перерасчет общей суммы товара по ее количеству, но нет обратного процесса, когда по сумме считается количество. Как можно решить данную проблему? У меня есть мысль поменять код так, что при изменении общей суммы менялась не цена, а именно количество, но не представляю как это можно реализовать. Прикрепляю типовой код процедуры изменения суммы:
&НаКлиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьЦенуСкидкуПоСуммеВПродажах",
ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаЦеныСкидкиВПродажахВТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС",
ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(
Объект.Товары, СтрокаТабличнойЧасти, СтруктураДействий, КэшированныеЗначения);
ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, СтрокаТабличнойЧасти, КэшированныеЗначения);
ОбработкаТабличнойЧастиТоварыКлиентСервер.ЗаполнитьСуммуВсегоВТаблице(Объект.Товары, Объект.ЦенаВключаетНДС);
УменьшениеСуммыЧекаККМ = ПоследняяРедактируемаяСумма - СтрокаТабличнойЧасти.Сумма;
УменьшениеСуммыЧекаККМ = ?(УменьшениеСуммыЧекаККМ > 0, УменьшениеСуммыЧекаККМ, 0);
ЛогированиеИзмененийСтроки(
"ИзменениеСуммы",
ПоследняяРедактируемаяСумма,
СтрокаТабличнойЧасти.Номенклатура,
СтрокаТабличнойЧасти.Характеристика,
СтрокаТабличнойЧасти.Сумма,
Неопределено,
УменьшениеСуммыЧекаККМ);
ОбновитьФормуНаКлиенте();
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Где логика?
в базе Розницы 2.3 в РМК есть перерасчет общей суммы товара по ее количеству, но нет обратного процесса, когда по сумме считается количество. Как можно решить данную проблему? У меня есть мысль поменять код так, что при изменении общей суммы менялась не цена, а именно количество
Где логика?
(3) проблема вся в том, что считают товар (топливо) не по литражу как обычно, а по сумме залива. Я посмотрел что с этим можно делать, но по типовому варианту можно только менять количество. Если поменять сумму, то меняется только цена за 1 литр. Например, 20 литров с ценой в 40 руб/литр в сумме 800 рублей. Если я поменяю сумму на 1200 рублей, то поменяется цена (60 руб/литр), а не количество.
(4)
Теперь понятно для чего это нужно.
Розница базовая или проф?
проблема вся в том, что считают товар (топливо) не по литражу как обычно, а по сумме залива. Я посмотрел что с этим можно делать, но по типовому варианту можно только менять количество. Если поменять сумму, то меняется только цена за 1 литр. Например, 20 литров с ценой в 40 руб/литр в сумме 800 рублей.
Теперь понятно для чего это нужно.
Розница базовая или проф?
(6)
РМК - это обработка, можно сделать внешнюю обработку, но лучше через расширение дать возможность пересчитывать в строке количество, а
Это код по изменению цены.
проф. Мне нужно просто хотя бы логику сие действия понять, а то вообще без понятия в какую сторону копать
РМК - это обработка, можно сделать внешнюю обработку, но лучше через расширение дать возможность пересчитывать в строке количество, а
Это код по изменению цены.
СтруктураДействий.Вставить("ПересчитатьЦенуСкидкуПоСуммеВПродажах",
ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаЦеныСкидкиВПродажахВТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСуммуНДС",
ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
(6)
то есть надо разделить сумму товара на цену и вставить это в колонку количества?
там сразу вылезет проблема округления - если можно выставлять с точностью до 0,001 л, то этого может не хватить. если замечали, то на заправках бывает недолив/перелив на 5-10 копеек. то есть в конце программа всё равно округляет до грамма и пересчитывает конечную сумму.
проф. Мне нужно просто хотя бы логику сие действия понять, а то вообще без понятия в какую сторону копать
то есть надо разделить сумму товара на цену и вставить это в колонку количества?
там сразу вылезет проблема округления - если можно выставлять с точностью до 0,001 л, то этого может не хватить. если замечали, то на заправках бывает недолив/перелив на 5-10 копеек. то есть в конце программа всё равно округляет до грамма и пересчитывает конечную сумму.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
