Имя: Пароль:
1C
1С v8
Сортировка по убывнию
0 Eugene-3
 
28.08.13
19:11
Здравствуйте!
Зарегистрировался только сегодня, поэтому извините, если не в той секции опубликовал вопрос.
А вопрос такой.

Мне надо вывсти на экран числа от 20 до 1.
Я пишу:

Для Счет = 1 По 20 Цикл
  Сообщить (Счет);
КонецЦикла;
  Счет.СортироватьПоЗначению(НаправлениеСортировки.Убыв);

У меня, конечно же, ничего не сортируется. Те, кто проверял, написали мне: "СортироватьПоЗначению - метод списка значений. У вас тут нет списка - только число Счет. У числа нет методов"

Я мало, что понял, и по-прежнему, не врубаюсь.
Напишите мне, пожалуйста правильный вариант моего кода и я попробую разобраться.
2 Rie
 
28.08.13
19:13
(0)
Для Счет=-20 По -1 Цикл
    Сообщить(-Счет);
КонецЦикла;

и много-много других способов - в зависимости от того, что именно Вам нужно.
3 Csar
 
28.08.13
19:19
(0) не сортируется т.к. функция Сообщить() посылает текст в окно служебных сообщений, где к нему уже не добраться и не обработать (например, сортировка). Если нужен фильтр, то надо подать числа в массив или таблицуЗначений и уже внутри этой коллекции обрабатывать, а потом каждый элемент выводить на экран черехз Сообщить()
4 Csar
 
28.08.13
19:21
(3) офигеть как коряво получилось изъясниться. Готов подробнее рассказать если совсем не понятно.
5 Rie
 
28.08.13
19:29
+(3)
Счет = Новый СписокЗначений();
Для н=1 По 20 Цикл
    Счет.Добавить(н);
КонецЦикла;
Счет.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
6 Eugene-3
 
28.08.13
19:32
Csar, да, не совсем понятно.
Что такое окно служебных собщений? И о каком фильтре Вы говорте?
Я только-только начал изучать, поэтому мне надо объяснять как-можно проще. Почти на пальцах:)
7 Eugene-3
 
28.08.13
19:34
Rie, мне по условию можно было использовать только операторы цикла и условные операторы.
8 Rie
 
28.08.13
19:36
(7) А я разве что-то ещё использовал?
9 vermouth
 
28.08.13
19:39
а в мои годы азам алгоритмов учили на бэйсике и паскале...а теперь на 1С :)
10 Eugene-3
 
28.08.13
19:41
Rie, я имел в виду, что нельзя пользовать универсалье коллекции
11 Rie
 
28.08.13
19:42
+(8) Непонятна задача, которая перед Вами стоит.
Если просто вывести числа от 20 до 1 - тогда (2). Там как раз цикл - и ничего больше.
12 Rie
 
28.08.13
19:46
(10) Вы (2) - читали?
13 Eugene-3
 
28.08.13
19:48
Rie, а скажите: СортироватьПоЗначению доступно только для СпискаЗначений? Т.е. например, можно это прмиенить к массиву?
14 Eugene-3
 
28.08.13
19:50
Rie, кстати, очень понравился вариант с минусами;) Спасибо!!!
Я первый раз написал бе минусов - не получилось:

Для Счет=20 По 1 Цикл
    Сообщить(Счет);
КонецЦикла;
15 Rie
 
28.08.13
19:52
(14) Естественно, не получилось - ибо цикл Для умеет только _увеличивать_ счётчик цикла на 1.
16 Rie
 
28.08.13
20:00
(13) СортироватьПоЗначению - только для СпискаЗначений (поскольку у него есть _значения_; можно ещё СортироватьПоПредставлению).
Можно сортировать и ТаблицаЗначений - но там метод называется Сортировать.
Для массива метода нет - но можно из массива сделать СписокЗначений, отсортировать его, а затем выгрузить обратно в массив.
17 vermouth
 
28.08.13
20:14
а так?

Для Счет = 0 По 19 Цикл
  Сообщить (""+(20-Счет));
КонецЦикла;
18 Eugene-3
 
28.08.13
20:28
vermouth, это для меня сложно.
Я даже не понимаю, что это все значит:)
19 Rie
 
29.08.13
08:18
(18) Может, тогда лучше сменить профессию?