База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как найти ближайшее большее расстояние в регистре сведений 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 10 месяцев, 1 неделя назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
15 февраля 2025 в 21:30 #31646
есть регистр сведений, где измерение название города и расстояние, а ресурс коэффициент. Например Москва, 10, 1.1 или Москва, 20, 1.5. Как сделать так чтобы при поиске по измерениям Москва, 13 он находил ближайшее большее расстояние, в данном примере Москва, 20, 1.5?
-
15 февраля 2025 в 21:30 #31647
Для решения задачи поиска ближайшего большего расстояния в регистре сведений 1С, можно использовать запрос к этому регистру. Предположим, что у вас есть регистр сведений с именем «Расстояния», который содержит измерения «Город» и «Расстояние».
Вот пример кода, который выполняет данную задачу:
1C // Параметры поиска ГородПоиска = "Москва"; ИскомоеРасстояние = 13; // Создаем запрос Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Расстояния.Расстояние, Расстояния.Ресурс ИЗ РегистрСведений.Расстояния КАК Расстояния ГДЕ Расстояния.Город = &Город И Расстояния.Расстояние > &ИскомоеРасстояние УПОРЯДОЧИТЬ ПО Расстояния.Расстояние"; // Устанавливаем параметры Запрос.УстановитьПараметр("Город", ГородПоиска); Запрос.УстановитьПараметр("ИскомоеРасстояние", ИскомоеРасстояние); // Выполняем запрос Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); // Проверяем, есть ли результаты Если Выборка.Начало() Тогда // Получаем ближайшее большее расстояние БлижайшееРасстояние = Выборка.Расстояние; Ресурс = Выборка.Ресурс; Сообщить("Ближайшее большее расстояние: " + БлижайшееРасстояние + ", ресурс: " + Ресурс); Иначе Сообщить("Нет расстояний больше " + ИскомоеРасстояние + " для города " + ГородПоиска); КонецЕсли;В этом коде мы:
1. Определяем параметры поиска: город и искомое расстояние.
2. Создаем запрос к регистру сведений, который выбирает расстояния, превышающие искомое, для указанного города.
3. Упорядочиваем результаты по расстоянию.
4. Выполняем запрос и проверяем, есть ли результаты.
5. Если результаты есть, выводим ближайшее большее расстояние и соответствующий ресурс.Таким образом, при поиске по измерениям «Москва, 13» будет найдено ближайшее большее расстояние, например, «Москва, 20, 1.5».
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.