Перебор сумм

06.10.14

Разработка - Математика и алгоритмы

Обработка 1С «Перебор сумм» определяет какие из указанных чисел формируют итоговую сумму с заданной погрешностью. Говоря иначе, эта обработка раскладывает итоговую сумму на заданные составляющие её числа. Поставленную задачу она решает методом долгого перебора. В общем то обработка простая и незамысловатая, чтобы с ней мог разобраться любой пользователь. Но всё же скажу пару слов о том как она работает.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Перебор сумм
.epf 9,99Kb ver:1.0
6
6 Скачать (1 SM) Купить за 1 850 руб.

Перебор сумм

Предположим, у нас есть общая сумма, которую мы никак не можем детализировать вручную на составляющие её суммы из большого количества позиций. Для этих целей нам пригодится автоматический перебор всех возможных вариантов. После запуска обработки копируем в её табличное поле детализированный список позиций с нужными нам числами, указываем значение итоговой суммы в поле «Значение суммы», а в поле «Погрешность» значение погрешности, в пределах которой итоговая сумма может расходиться с суммой выбранных позиций.

 Задание параметров перебора

Итоговая сумма может быть как положительной, так и отрицательной. Погрешность – это всегда положительное число, которое вычисляется по формуле: Погрешность = |Значение суммы – Сумма позиций|; Сумма позиций = Выбранная позиция 1 + Выбранная позиция 2 + … + Выбранная позиция n.

Также опционально можно указать параметр «Рабочая колонка». Этот параметр задаёт номер колонки, в которой находятся детализированные суммы. Если около этого параметра не стоит галочка, то рабочая колонка определяется автоматически: фактически там, где есть целая колонка из чисел.

Чтобы запустить процесс формирования, нужно нажать на кнопку «Выполнить». Если обработка «Перебор сумм» уже нашла «выигрышную» комбинацию, то следующую комбинацию можно вычислить, нажав на кнопку «Дальше».

 Выполнить обработку

Теперь немного об алгоритме вычисления комбинаций. Алгоритм работает сверху вниз, перебирая сначала верхние элементы чисел, а затем уходя вниз. От этого зависит, кстати, количество итераций и соответственно время перебора. Если известно, что внизу есть позиция, входящая в общую сумму, то её следует переместить вверх. И вообще, при вставке в табличное поле данных, их следует отсортировать по определённым признакам (по определённым разрезам) так, чтобы наиболее вероятные для получения результатов перебора суммы оказались в самом верху.

Ещё будьте внимательны, чтобы обработка корректно распознала столбец, в котором находятся суммы, если в поле «Рабочая колонка» галочки не стоит. Автоматически обработка находит такой столбец, перебирая по порядку (начиная с первой) все колонки с текстом. Если находится столбец, полностью заполненный числами, то он берётся в качестве рабочего.

Итогом работы этой обработки являются строки, выделенные золотистым цветом, из которых складывается итоговая сумма.

 Результат перебора

Если вам понравилась эта обработка, то вы можете скачать её по ссылке ниже. Нажмите на кнопке «Скачать» и загрузите её себе на компьютер.

обработка 1С обработка 1c суммы код 1с перебор значений

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3225    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7632    user1959478    52    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3160    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10938    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4416    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    3583    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9052    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tehas 46 06.10.14 14:02 Сейчас в теме
пока не совсем пойму, где это можно применить.
А какая именно у Вас появилась задача, которую можно решить этим методом?
2. lrs 27 06.10.14 16:47 Сейчас в теме
(1) tehas,
Когда-то используя данный принцип я привязывал инкассацию магазинов.
Давно это было (лет 10 назад), но суть была в следующем:
Инкассировались много магазинов (порядка больше 300), деньги на счет поступали несколькими суммами, объединяющими выручку нескольких магазинов.
В разноске надо было увязать суммы выписок с суммами выручкек. Важно было, чтобы аналитика была разнесена. Обработка позволила оптимизировать данную операцию.
3. thelans 30 07.10.14 01:39 Сейчас в теме
У меня такая задача - это выверка отчётности и определение какие суммы формируют расхождение.
4. Гость 01.06.16 01:10
Ещё некоторые обработки по данной теме здесь: http://life1c.ru/category/rubric_use
6. thelans 30 01.06.16 02:09 Сейчас в теме
(5) CheBurator, Это под семёрку шедевр.
Оставьте свое сообщение