Быстрый поиск комбинаций значений с заданной суммой на HTML-странице с использованием JavaScript

05.05.24

Задачи пользователя - Поиск данных

Поиск комбинаций сумм – это инструмент, работающий на HTML-странице с использованием JavaScript, который позволяет пользователям быстро анализировать таблицы Excel и находить все возможные комбинации чисел, сумма которых соответствует заданному значению. Идеально подходит для финансовых аналитиков, бухгалтеров и исследователей, стремящихся оптимизировать свою работу с числовыми данными. Прост в использовании, не требует установки дополнительного ПО и доступен для скачивания и использования на любом устройстве с поддержкой современных браузеров.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Быстрый поиск комбинаций значений с заданной суммой на HTML-странице с использованием JavaScript:
.rar 4,18Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Описание программы "Поиск комбинаций сумм"

 

Назначение программы:

"Поиск комбинаций сумм" — это веб-инструмент, предназначенный для анализа таблиц Excel прямо на HTML-странице с помощью JavaScript. Программа разработана для того, чтобы помочь пользователям находить все возможные комбинации чисел в столбце, сумма которых равна заданному значению. Этот инструмент идеально подходит для финансовых аналитиков, аудиторов, бухгалтеров, а также для всех, кто работает с большими массивами данных и нуждается в быстром поиске определённых сумм.

 

Как пользоваться программой:

1. Загрузка файла: Пользователю необходимо загрузить Excel файл через кнопку ввода на веб-странице.

2. Программа автоматически читает первый лист Excel файла, извлекает данные и анализирует их.

3. После обработки данных, программа выводит на странице таблицу с комбинациями значений, которые в сумме соответствуют указанному числу из ячейки C1.

Что происходит внутри программы?

- Программа читает выбранный файл и извлекает данные из первого листа.

- Ищет в ячейке C1 число, которое будет использоваться как целевая сумма.

- Анализирует строки, собирая числа из второй колонки.

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

- Выводит найденные комбинации в виде таблиц на веб-странице.

 

Пример использования:

Представим, что у нас есть таблица контрагентов с указанием сумм их платежей. В ячейке C1 таблицы указано значение 528. Программа анализирует данные и выявляет, например, что сумма платежей контрагентов 9, 11, и 14 вместе взятых равна 528. Результаты такого анализа могут быть полезны для подтверждения финансовых расчётов или для аудита.

 

 

 

Техническая реализация:

Программа использует библиотеку XLSX для чтения данных из файла и JavaScript для обработки данных и вывода результатов. Это обеспечивает простоту использования и доступность программы без необходимости устанавливать дополнительное ПО.

Этот инструмент значительно упрощает процесс анализа данных, экономит время и повышает точность расчётов, что делает его незаменимым помощником в повседневной работе с финансовыми документами.

 

Код программы:

 

 

UPD 06.05.24

В описании изложен код программы, предназначенной для обработки данных из файла Excel. В предложенном для скачивания файле находится улучшенная версия программы, позволяющая обрабатывать данные, вставляемые напрямую из буфера обмена на HTML-страницу.

Основные отличия и улучшения:

  1. Ввод данных:

    • Исходная версия: Данные загружались из файла Excel, что требовало наличия файла и ограничивало способы ввода данных.
    • Новая версия: Ввод данных осуществляется через текстовые поля, что позволяет пользователям копировать и вставлять данные напрямую из различных источников. Это значительно упрощает и ускоряет процесс ввода, делая его более гибким.
  2. Обработка числовых значений:

    • Исходная версия: Требовала строго числового ввода без возможности обработки текстовых строк, которые можно интерпретировать как числа.
    • Новая версия: Введена возможность обработки текстовых данных, которые могут быть преобразованы в числовые значения. Если данные не удаётся преобразовать, они игнорируются, а пользователь получает уведомление о непреобразуемых значениях. Это повышает устойчивость программы к ошибкам ввода.
  3. Поддержка форматированных чисел:

    • Исходная версия: Не поддерживала числа с пробелами, запятыми и другими нецифровыми символами.
    • Новая версия: Добавлена обработка чисел, форматированных с пробелами и запятыми, что часто встречается в финансовых данных. Это делает программу более адаптированной к различным международным стандартам ввода чисел.
  4. Обработка десятичных чисел:

    • Исходная версия: Использование десятичных чисел могло привести к ошибкам из-за попыток использовать их как индексы массива.
    • Новая версия: Введена масштабирование всех чисел путём умножения на 100 для преобразования в целые числа перед использованием в динамическом программировании. Это позволяет точно работать с десятичными числами, избегая ошибок и несоответствий.
  5. Динамическое программирование для поиска подмножеств:

    • Исходная версия: Реализация осталась прежней, но адаптирована под обработку целочисленных значений.
    • Новая версия: Алгоритм динамического программирования был модифицирован для работы с масштабированными значениями, что обеспечивает точное нахождение подмножеств, сумма которых соответствует заданной цели.

 

поиск сумм поиск сумм в подмножестве строк

См. также

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13733    13    48    

25

Поиск данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    158936    336    253    

570

Розничная торговля WEB-интеграция Поиск данных Пользователь Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Альтернатива сервису 1С Номенклатура, не требует подписки ИТС, ищет данные в открытых источниках. Для поиска товара по штрихкоду в сети интернет, полезно для первоначального заполнения базы.

1999 руб.

15.10.2020    18966    23    63    

24

Математика и алгоритмы Инструментарий разработчика Универсальные функции Поиск данных Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Абонемент ($m)

Несколько упакованных в один класс интерфейсов для обработки популярных универсальных коллекций. Для тех, кого раздражает отсутствие действительно единого интерфейса для универсальных коллекций.

5 стартмани

25.09.2024    2215    0    Артано    14    

19

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

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

18.08.2024    1791    1cnik2    23    

14

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

Отображение и просмотр реквизитов справочника или документа - с бесконечным открытием подуровней.

1 стартмани

14.06.2024    3389    7    RustIG    26    

22

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

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    4543    andreysidor4uk    18    

53

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

PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.

1 стартмани

05.06.2023    2324    25    PowerBoy    1    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. JohnyDeath 302 05.05.24 22:04 Сейчас в теме
А почему нельзя всё это было сделать на 1С? Зачем тут javascript?
2. Prepod2003 255 06.05.24 10:42 Сейчас в теме
(1) Здравствуйте!
Использование JavaScript для этой программы имеет несколько значимых преимуществ, особенно когда речь идет о универсальности и доступности. JavaScript позволяет нам создавать легковесные и доступные с любого устройства веб-приложения, которые не требуют специализированных программных решений, таких как 1С, для их функционирования.

Одно из ключевых преимуществ такого подхода заключается в возможности обрабатывать данные, вставленные прямо из буфера обмена или загруженные из различных источников, без необходимости интеграции с конкретными программными продуктами. Это делает приложение более гибким и удобным для пользователя, который может работать в любом браузере, на любой операционной системе, без ограничений, налагаемых корпоративным программным обеспечением.

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

Таким образом, применение JavaScript не только облегчает доступ к функционалу приложения для широкого круга пользователей, но и снижает порог входа в использование приложения, делая его более универсальным и независимым от сторонних программных решений.
3. JohnyDeath 302 06.05.24 10:45 Сейчас в теме
(2) ответ писал ИИ? )

Если мы говори о том, что надо распределить какие-то суммы в экселе, то наверное да, такой подход стоит рассмотреть.
Но если же исходные данные находятся внутри 1С, то смысл всех этих плясок становится непонятным
4. Prepod2003 255 06.05.24 11:01 Сейчас в теме
(3)
Если мы говори о том, что надо распределить какие-то суммы в экселе, то наверное да, такой подход стоит рассмотреть.
Но если же исходные данные находятся внутри 1С, то смысл всех этих плясок становится непонятным

Кажется, есть недопонимание относительно функционала данной программы. Её основная цель - не просто распределение денежных сумм, а выявление конкретного набора строк, чья общая сумма соответствует заданному числу. Эта задача довольно распространена в различных сферах деятельности. Например, представим, что у нас есть документ "Начисление зарплаты" с перечнем выплат каждому сотруднику. После его проведения в бухгалтерских проводках или регистрах мы видим две различные суммы, отнесенные к разным счетам. Наша цель - выяснить, какие именно выплаты сотрудникам соответствуют каждой из этих сумм. Вместо того чтобы проводить отладку программного кода в 1С, мы можем просто скопировать все данные из табличной части документа, ввести желаемую сумму - одну из тех, что фигурирует в проводке, - и мгновенно получить список сотрудников, на которых приходится указанная сумма.
5. JohnyDeath 302 06.05.24 11:06 Сейчас в теме
(4) я знаю про такую задачу и встречался с ней несколько раз. Но конкретно в вашем примере с зарплатой непонятно зачем что-то внешнее делать и на неродном стеке. Всё это можно было организовать и на 1С. Причем код был бы примерно такой же.
А для пользователя намного удобнее оставаться в контексте одного окна, чем переключаться и что-то там копировать/вставлять в определенные ячейки и столбцы.
Плюс из вашего же примера, где пользователь "мгновенно получает список сотрудников", надо учитывать тот факт, что ему с этим списком сотрудников нужно как-то дальше работать. Наверняка надо будет обратно переключиться в 1с и подбирать сотрудников из этого списка в какую-то другую форму 1с
6. Prepod2003 255 06.05.24 11:13 Сейчас в теме
(5) Ок, я понял вашу позицию, я думаю, что нет смысла спорить, мое мнение, что такая реализация более удобна и практична, вы считаете иначе. ))
7. Prepod2003 255 06.05.24 13:07 Сейчас в теме
(5) Коллега, и вот еще момент, возможно, вы не в курсе, но JavaScript код легко интегрируется в 1С, где дальнейшее заполнение полей и обработка данных могут осуществляться с использованием собственных инструментов 1С. Если для вас критично, чтобы программа была встроена непосредственно в 1С, ее можно адаптировать примерно за 15 минут. Вот как это может выглядеть:
Прикрепленные файлы:
8. JohnyDeath 302 06.05.24 13:12 Сейчас в теме
(7)
Коллега, и вот еще момент, возможно, вы не в курсе, но JavaScript код легко интегрируется в 1С, где дальнейшее заполнение полей и обработка данных могут осуществляться с использованием собственных инструментов 1С

я в курсе. Но я так и не понял зачем нужно делать эти джаваскрипт-вставки, когда ровно тоже самое можно сделать и в самом 1с. И не нужны будут всякие маршилинги/копипасты из 1с куда-то там и обратно
Оставьте свое сообщение