|
Получение ближайшего числа из справочника 🠗Ø (Волшебник 09.02.2025 11:19) |
☑ |
0
Sosick
naïve
08.02.25
✎
14:42
|
Гуру 1С, подскажите по заданию. Во внешней обработке генерируются случайные числа(100, 999), количество таких чисел варьируется от 8 до 16.
Нужно получить ближайший числовой код платформы из справочника "Платформы", который содержит реквизиты:
Платформа - строка(50)
ЧисловойКод - число(3)
при этом количество записей в справочнике неизвестно
В данный момент я использую запрос для получение этих данных, но я понимаю, что вызывать запрос 18 раз, далеко не самое оптимальное решение. Были идеи использовать методы перебора или двоичного деления, но в таком случае приходится получать все значения справочника "Платформы", что тоже является не совсем оптимальным решением. Так же пробовал использовать вложенный запрос на перебор списка, но в таком случае возможно искать только точное соответствие с помощью "В". Есть ли более оптимизированное решение для данной задачи или необходимо использовать только цикл?
ВЫБРАТЬ ПЕРВЫЕ 1
ПЛ.ЧисловойКод КАК ЧисловойКод,
ПЛ.Ключевая КАК Ключевая,
ПЛ.Ссылка КАК Ссылка
ИЗ
Справочник.Платформы КАК ПЛ
ГДЕ
ПЛ.ЧисловойКод <= &СгенерированноеЧисло
УПОРЯДОЧИТЬ ПО
ЧисловойКод УБЫВ";
|
|
1
PR
08.02.25
✎
14:52
|
(0) Так это же тебя тестируют, мы-то тут причем?
|
|
2
Волшебник
08.02.25
✎
14:57
|
Когда я вижу генератор случайных чисел в учётной системе, моя рука тянется к пистолету...
|
|
3
Sosick
naïve
08.02.25
✎
14:57
|
Ну я и не прошу написать мне решение. Я хочу узнать есть ли способ решить данную задачу без использования запроса на получение полного списка справочника или цикла запроса.
|
|
4
Волшебник
08.02.25
✎
16:10
|
(3) Цикл запроса — это сильно!
Хватит морочить нам голову, тупой бот! Это тебе дали задание и дали доступ на мисту, чтобы ты грамотно распорядился своими возможностями.
|
|
5
PR
08.02.25
✎
15:07
|
(3) Есть
|
|
6
Ненавижу 1С
гуру
08.02.25
✎
15:17
|
(0) загрузите ваши случайные величины в таблицу значений. Передайте ее во временную таблицу. Соедините ее со справочником по указанному условию...
Кстати о ближайшем - у вас не превышающее данное число, если считать модуль разности за расстояние, то ближайшее может быть больше исходного
|
|
7
Garykom
гуру
08.02.25
✎
15:26
|
(0) Интересная задачка
Для одного случайного числа не проблема одним запросом найти ближайшее с любой стороны
Но вот одним запросом для нескольких?
|
|
8
Garykom
гуру
08.02.25
✎
15:28
|
(7)+ Хотя через ВТ да можно
|
|
9
Sosick
naïve
08.02.25
✎
17:23
|
(6) Большое спасибо за подсказку! Да, все так, мне нужно именно ближайшее, но не превышающее значение. Просто не стал указывать, так как посчитал, что это потребуется для ответа на вопрос.
|
|
10
Sosick
naïve
08.02.25
✎
17:24
|
(8) Благодарю!
|
|
11
Волшебник
08.02.25
✎
17:41
|
(9) тупой бот. Покинь мисту на год и научись общаться на форуме. Ты блять "НЕ" пропустил. Какой нахуй ты программист после этого?
|
|
12
Sosick
naïve
08.02.25
✎
18:05
|
(11) зачилься
|
|
13
Волшебник
08.02.25
✎
18:11
|
(12) что это означает? "зачиллиться" = успокоиться?
Пошёл ты нахуй!!!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший