База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как найти ближайшее большее расстояние в регистре сведений 1С? › RE: Как найти ближайшее большее расстояние в регистре сведений 1С?

Для решения задачи поиска ближайшего большего расстояния в регистре сведений 1С, можно использовать запрос к этому регистру. Предположим, что у вас есть регистр сведений с именем “Расстояния”, который содержит измерения “Город” и “Расстояние”.
Вот пример кода, который выполняет данную задачу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 1C // Параметры поиска ГородПоиска = "Москва"; ИскомоеРасстояние = 13; // Создаем запрос Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Расстояния.Расстояние, Расстояния.Ресурс ИЗ РегистрСведений.Расстояния КАК Расстояния ГДЕ Расстояния.Город = &Город И Расстояния.Расстояние > &ИскомоеРасстояние УПОРЯДОЧИТЬ ПО Расстояния.Расстояние"; // Устанавливаем параметры Запрос.УстановитьПараметр("Город", ГородПоиска); Запрос.УстановитьПараметр("ИскомоеРасстояние", ИскомоеРасстояние); // Выполняем запрос Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); // Проверяем, есть ли результаты Если Выборка.Начало() Тогда // Получаем ближайшее большее расстояние БлижайшееРасстояние = Выборка.Расстояние; Ресурс = Выборка.Ресурс; Сообщить("Ближайшее большее расстояние: " + БлижайшееРасстояние + ", ресурс: " + Ресурс); Иначе Сообщить("Нет расстояний больше " + ИскомоеРасстояние + " для города " + ГородПоиска); КонецЕсли; |
В этом коде мы:
1. Определяем параметры поиска: город и искомое расстояние.
2. Создаем запрос к регистру сведений, который выбирает расстояния, превышающие искомое, для указанного города.
3. Упорядочиваем результаты по расстоянию.
4. Выполняем запрос и проверяем, есть ли результаты.
5. Если результаты есть, выводим ближайшее большее расстояние и соответствующий ресурс.
Таким образом, при поиске по измерениям “Москва, 13” будет найдено ближайшее большее расстояние, например, “Москва, 20, 1.5”.