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