#0
by Ткачев
Подскажите формулу. Есть 3 суммы 150, 100 и 50, как 100 разделить пропорционально между 150 и 50.
#4
by VladZ
1. Вычисляем, во сколько раз отличается 100 от суммы 150 и 50. 100/(150+50) = 0,5 2. Умножаем наши суммы на полученный к-т. 150 * 0,5 = 75 50 * 0,5 = 25
#8
by Ткачев
Формулой это типа: Ч1 = 150 Ч2 = 100 Ч3 = 50 Сумма = Ч2 / (Ч1 + Ч3) Ч1 = Ч1 + Ч1 * Сумма Ч3 = Ч3 + Ч3 * Сумма Все понятно, всем спасибо.
#9
by VladZ
Чтобы не путаться в понятиях: Коэффициент = Ч2 / (Ч1 + Ч3) Ч1 = Ч1 + Ч1 * Коэффициент Ч3 = Ч3 + Ч3 * Коэффициент
#11
by Рэйв
Функция РассчитатьДельту(СуммаВходящая,ВсегоСуммаВходящая,СуммаРаспределения) ПроцентОтОбщей=СуммаВходящая /(ВсегоСуммаВходящая/100); Дельта=Окр(СуммаРаспределения/100*ПроцентОтОбщей,2,РежимОкругления.Окр15как20); Возврат Дельта; КонецФункции
#12
by Рэйв
+ потом если последняя сумма надо не функцию вызывать а тупо прибавлять оставшийся хвост. а то копейки остаются
#14
by Humandra
хвост в виде лишней копейки, если коэффициент вида 0,3333333333333, лучше не к последней сумме прибавлять, а к максимальной. Аккуратнее получается. :)
#18
by DES
есть 2 (два) осажденных города. в одном 150 защитников. в другом 50 защитников. им на подмогу идет обоз с мукой. везут 100 кг. Задача: сколько муки нужно завезти в каждый город через подземный ход чтобы всем защитникам досталось поровну? Решение: Складываем всех защитников города, делим всю муку на кол-во всех защитников, находим сколько муки приходится на 1 защитника по норме. Умножаем норму на кол-во защитников в каждом городе. разделяем всю муку на 2 части ПРОПОРЦИОНАЛЬНО полученной норме для каждого города.
#22
by rs_trade
declare table (id int, b decimal) declare @sum as decimal insert values (1, 100), (2, 50) set @sum = 200 select cast(@sum / (SUM(b) OVER) * b as decimal(15,2)) AS t from
#23
by Ткачев
Усложним задачу: Есть главный документ. Сумма документа = 150 Нал = 50 БезНал = 100 Он делится на 2 документа. Первый Документ Сумма = 80 Нал = ? БезНал = ? Второй Документ Сумма = 70 Нал = ? БезНал = ? Вот как тут рассчитать оплату из главного документа ?
#24
by Fragster
распредели сумму в 100 пропорционально между 3 одинаковимы значениями, чтобы копейки не потерялись
#27
by VladZ
В исходной задаче две суммы... В случае, если у одной суммы будет 0,3333333333333 - значит у другой 0,6666666666666. В общем, при округлении все будет хорошо. Вот если было три суммы (и более)... Возникла бы ситуёвина, когда одному 0,3333333333333, другому 0,3333333333333 и третьему столько же. В результате копеечки могут и не бить.
#29
by zak555
размазывать нужно как в но с одной оговоркой отсортировать суммы по убыванию и последней сумме добавить остаток
#30
by Ткачев
Суть этого гемора такова: Определенный товар продается на ИП, остальной на ООО (одна касса работает с двумя фискальниками), до того пока не подключили банк все было нормально, вчера подключили...
#32
by Warlock
( Отклонение = 0; Для Каждого Строка Из ТЗ Цикл Результат = НужныйРезультат * Строка.Основание / База + Отклонение; Отклонение = (Результат - Окр(Результат, 2)); Строка.Результат = Окр(Результат, 2); КонецЦикла;
#33
by Ткачев
Это 1с розница, программно деление чека выглядит так: Если Константы.ДваФР.Получить Тогда Запрос = Новый Запрос(" |ВЫБРАТЬ * ПОМЕСТИТЬ ТабТов ИЗ &ТабТов КАК ТТ; |ВЫБРАТЬ * |ИЗ | ТабТов КАК Товары |ГДЕ | Товары.Номенклатура.ТоварОрганизации = &Организация"); Запрос.УстановитьПараметр("ТабТов", Товары.Выгрузить); ВремКассаККМ = КассаККМ; Оплаты = Оплата.Выгрузить; Организации = Справочники.Организации.Выбрать; Пока Организации.Следующий Цикл Если Организации.Ссылка = Магазин.ОсновнойСклад.Организация Тогда; Организация = Справочники.Организации.ПустаяСсылка; Иначе Организация = Организации.Ссылка; КонецЕсли; Запрос.УстановитьПараметр("Организация", Организация); Результат = Запрос.Выполнить; Если Не Результат.Пустой Тогда ЭтотОбъект.Товары.Загрузить(Результат.Выгрузить); ФР = ПолучитьСерверТО.ПолучитьИдентификаторПоИдКассы(Организация); Если ЗначениеЗаполнено(Организация) И Не ПустаяСтрока(ФР) Тогда КассаККМ = ПолучитьСерверТО.ПолучитьКассуККМ(ФР); Иначе КассаККМ = ВремКассаККМ; КонецЕсли; ИтогСуммы = Товары.Итог("Сумма"); ИтогОплат = Оплаты.Итог("Сумма"); Если ИтогСуммы <> ИтогОплат Тогда ЭтотОбъект.Оплата.Загрузить(Оплаты); Для Каждого ФормаОплат Из Оплата Цикл //??????????????????????????????? КонецЦикла; КонецЕсли; ЗавершитьЗакрытиеЧека2(Печать, РучнойРежим, ВыбратьДокументПечати, ФР); КонецЕсли; КонецЦикла; Иначе ЗавершитьЗакрытиеЧека2(Печать, РучнойРежим, ВыбратьДокументПечати); КонецЕсли;
#35
by Warlock
Если использовать временные таблицы, то можно распределить результат, а остаток оставить на максимальной/минимальной строке
#36
by Ткачев
Получилось как то так: ... Для Каждого ФормаОплат Из Оплата Цикл Если ПервыйПроход Тогда СуммаОплаты = ИтогСуммы * Окр(ФормаОплат.Сумма / ИтогОплат, 2); СписокОплат.Добавить(ФормаОплат.Сумма - СуммаОплаты); ФормаОплат.Сумма = СуммаОплаты; Иначе ФормаОплат.Сумма = СписокОплат.Получить(ФормаОплат.НомерСтроки - 1).Значение; КонецЕсли; КонецЦикла; ПервыйПроход = 0; ...
#37
by rs_trade
В УТ или УПП глянь документ доп. расходы. Там есть алгоритм распределения суммы по кол-ву или объему
#39
by Ткачев
Нормально работает, на разных суммах проверял. Так скажите как тупому 1с-нику сделать все правильно в и
#44
by Ткачев
Если бы у них все было адекватно и работало, не было бы этого форума. Нормально все работает, копейки нигде "не провисают", в отличии от типовых процедур +- 0.01 руб.
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Учет премии в отпускных пропорционально времени.
- Распределить сумму документа по строкам. Логическая задачка.
- Удержание пропорционально отработанным дням в ЗУП
- ЗУП учет годовых премий пропорционально отработанному времени в расчетах по среднему
- УПП: Зачет аванса пропорционально реализации
- Распределить 25 счет на другие подразделения
- как из таблицы значений пропорционально отнять сумму?
- ЗУП: Доплата фиксированной суммой пропорционально отработанному времени
- Распределить пропорционально скидку
- Как распределить сумму по нескольким строкам
В этой группе 1С
- Проверить, чей IDispatch получила ВК
- СКД Ведомость по партнерам
- камин, не верный пароль
- Обмен между ББУ 8.1 и БГУ
- Конвертация данных, выгрузка справочника "номенклатура"
- ОкончаниеВводаТекста. СтандартнаяОбработка = Ложь
- УПП Где настройки отчета
- СчетНаОплатуПоставщика
- Вычисляемые поля в СКД
- Книги Радченко, Митичкина, Габец, Проф. разработка
- outlook 2003 и проверка файла
- УПП, где теперь искать список ошибок?
- БГУ Только обороты по КОСГУ
- БП 2.0 Изменить валюту регламентированного учета
- Перенос дивидендов ЗиК - ЗУП
- Максимальная длина индекса в sql
- Перехват события Пометки на удаление
- Расскажите о ТСД Symbol MC-1000
- Как выполнить переход с 8.1 УПП 1.2.38.1 до УПП 8.2 1.3.11.1
- Запрос для получения таблицы дат из периода