Поиск чисел, формирующих нужную сумму в запросе

28.04.15

Разработка - Запросы

Под впечатлением статьи http://infostart.ru/public/350311/ захотел сделать задачу в запросе

Файлы

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

Наименование Скачано Купить файл
ОбработкаПоискЧиселНаСумму
.epf 7,35Kb ver:FindNumber
3 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Постановка задачи: Из ряда произвольной последовательности чисел выбрать все комбинации, которые образуют заданную сумму.

 

Пример:

Входные данные 1, 2, 3, 4, 5

Где сумма = 9

 

ВЫБРАТЬ
	ВТ_01.Поле1
ПОМЕСТИТЬ BT_Булево
ИЗ
	(ВЫБРАТЬ
		0 КАК Поле1
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		1) КАК ВТ_01
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	BT_1.Поле1,
	BT_2.Поле1 КАК Поле2,
	BT_3.Поле1 КАК Поле3,
	BT_4.Поле1 КАК Поле4,
	BT_5.Поле1 КАК Поле5
ПОМЕСТИТЬ ВТ_Коэф
ИЗ
	BT_Булево КАК BT_1,
	BT_Булево КАК BT_2,
	BT_Булево КАК BT_3,
	BT_Булево КАК BT_4,
	BT_Булево КАК BT_5
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ_Коэф.Поле1 * &Число1 + ВТ_Коэф.Поле2 * &Число2 + ВТ_Коэф.Поле3 * &Число3 + ВТ_Коэф.Поле4 * &Число4 + ВТ_Коэф.Поле5 * &Число5 КАК Результат,
	ВТ_Коэф.Поле1 * &Число1 КАК Число1,
	ВТ_Коэф.Поле2 * &Число2 КАК Число2,
	ВТ_Коэф.Поле3 * &Число3 КАК Число3,
	ВТ_Коэф.Поле4 * &Число4 КАК Число4,
	ВТ_Коэф.Поле5 * &Число5 КАК Число5
ИЗ
	ВТ_Коэф КАК ВТ_Коэф
ГДЕ  ВТ_Коэф.Поле1 * &Число1 + ВТ_Коэф.Поле2 * &Число2 + ВТ_Коэф.Поле3 * &Число3 + ВТ_Коэф.Поле4 * &Число4 + ВТ_Коэф.Поле5 * &Число5 = 9 

Во втором пакете запроса идет декартовое произведение бинарного множества. Тут мы получаем ограничение по количеству входных данных:

для 20 чисел мы получим (2 в степени 20) = 1 048 576 строке

Пробовал для 23 чисел, но уже нужно подождать...

Во вложении - поиск с произвольным количеством входных данных.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    276117    1544    423    

1193

Инструментарий разработчика Запросы Программист 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Структура запроса. Обработка визуально показывает, из какого количества подзапросов состоит запрос.

2 стартмани

06.07.2026    4146    54    XSlava    20    

46

Запросы Программист 1С 8.3 Россия Бесплатно (free)

Визуальный «Конструктор запроса» 1С, встроенный прямо в VS Code, — аналог конструктора из Конфигуратора и EDT, но без запуска платформы. Расширение читает конфигурацию, выгруженную в файлы, позволяет собрать запрос мышью и генерирует корректный текст на языке запросов 1С (SDBL). Открывает уже существующий текст запроса из кода для правки и — что особенно ценно — сохраняет комментарии при цикле «открыть - править - сохранить». Подходит тем, кто пишет код 1С в VS Code, держит под рукой множество проектов и не хочет ради одного запроса запускать тяжёлый Конфигуратор или EDT.

26.06.2026    9545    Alex_YAM    5    

33

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    3572    93    priem_nv    27    

66

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

1 стартмани

16.05.2025    12847    163    zup_dev    32    

86

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

05.03.2025    7195    24    XilDen    12    

29

Обновление 1С Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

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

3 стартмани

06.02.2025    6414    38    XilDen    26    

42
Для отправки сообщения требуется регистрация/авторизация