Имя: Пароль:
1C
 
Сравнение значения выборки со всеми остальными
,
0 BaldKiwi
 
16.02.21
11:38
Добрый утро, видимо еще не проснулся, но вопрос достаточно глупый скорее всего, у меня есть запрос, Допустим Выборка = Запрос.Выполнить().Выбрать();   Как мне из выборки первое значение присвоить переменной, а после в цикле Выборка.Следующий() , Проверять равно-ли первое значение всем остальным? что-то встал на месте и не могу сообразить
1 hhhh
 
16.02.21
11:44
(0) сравнение идет при помощи знака "=". Ничего другого пока не придумали.
2 BaldKiwi
 
16.02.21
11:46
(1) Это понятно, но если я после Выборка.Следущий напишу Переменная = Выборка.НужноеПоле, а после уже условие буду писать, то в принципе смысла от моей Переменной нет, она постоянно будет принимать значение такое же как у выборки
3 BaldKiwi
 
16.02.21
11:47
(1) не писать же Выборка.Следующий, присваивать переменной значение, а после делать цикл Выборка.Следующий()
4 mkalimulin
 
16.02.21
11:48
(0) Два способа. Либо две переменные  ЗначениеПервого и ЭтоНачало, либо присвоить на старте "неопределено"
5 Михаил Козлов
 
16.02.21
11:48
этоПервая = ИСТИНА;
ПОКА выборка.Следующий() Цикл
  Если этоПервая Тогда переменная = выборка....; этоПервая = ЛОЖЬ;
6 mkalimulin
 
16.02.21
11:48
(3) А можно и так.
7 BaldKiwi
 
16.02.21
11:49
(4) (5) Всё спасли, что-то голова с утра не работает вообще, спасибо
8 Василий Алибабаевич
 
16.02.21
11:50
(1) Оператор присваивания выглядит, стсуко, точно также : "=".

(2)
Примерно так:
ПервоеЗначение = 0;
Пока Выборка.Следующий() Цикл
  Если ЗначениеЗаполнено(ПервоеЗначение) Тогда
    СравнитьСПервым...
  Иначе
    ПервоеЗначение = Выборка.<ИмяПоля>
  КонецЕсли;
КонецЦикла;
9 Михаил Козлов
 
16.02.21
11:52
НЕОПРЕДЕЛЕНО короче выходит.
10 Малыш Джон
 
16.02.21
12:02
(0) Такой вариант не предлагать?

Если Выборка.Следующий() Тогда
    <присваиваем>
КонецЕсли;
Пока Выборка.Следующий() Цикл
    <сравниваем>
КонецЦикла;
11 BaldKiwi
 
16.02.21
12:32
(10) Такой вариант не совсем оптимальный же, зачем делать 2 цикла, можно сделать короче


Выборка.Следующий();
Переменная = Выборка.Поле1;
Пока Выборка.Следующий Цикл
Если ... = ... Тогда
КонецЦикла
12 BaldKiwi
 
16.02.21
12:33
(8) Сделал примером с Истина/Ложь
(9) можно и так)
13 Малыш Джон
 
16.02.21
13:13
(11) а где в (10) два цикла? О_о
14 Kassern
 
16.02.21
13:18
(11) в твоем результате будешь косяк, если к примеру выборка пустой окажется
15 Kassern
 
16.02.21
13:19
(14) блин опечатался, щас еще за распространение забанаят....
Программист всегда исправляет последнюю ошибку.