|
v7: Сортировать() сортирует строковую колонку по алфавиту? | ☑ | ||
---|---|---|---|---|
0
snegovik
02.03.13
✎
21:21
|
В таблицу значений в цикле заношу данные, потом сортирую.
ТекИндекс = ТекИндекс + 1; ТЗ.НоваяСтрока(); ТЗ.УстановитьЗначение(ТекИндекс, "Адрес", СокрЛП(Строка(Запрос.Адрес.Адрес.ПолнНаименование) + " "............ Потом после цикла сортирую: ТЗ.Сортировать("+Адрес", "+ВидРабот"); ТЗ.ВыбратьСтроки(); i = 1; Пока ТЗ.ПолучитьСтроку() = 1 Цикл ПечАдрес = ТЗ.ПолучитьЗначение(i,"Адрес"); И вот почему-то в отчет выводит не совсем по алфавиту. Точнее, часть идет по алфавиту, от "а" до "я", потом снова с "а" и до "я". Как такое может быть? |
|||
1
Тьма
02.03.13
✎
21:40
|
При выполнении данного кода значение переменной ПечАдрес будет всегда одинаково. Где итерация i?
Кстати, можно просто ПечАдрес = ТЗ.Адрес; |
|||
2
VladZ
02.03.13
✎
21:40
|
Восьмерочник?
|
|||
3
VladZ
02.03.13
✎
21:42
|
Конструкция вида:
ТЗ.НоваяСтрока(); ТЗ.УстановитьЗначение(ТекИндекс, "Адрес", СокрЛП(Строка(Запрос.Адрес.Адрес.ПолнНаименование) + " "............ В семерке делается проще: ТЗ.НоваяСтрока(); ТЗ.Адрес = СокрЛП(........ И что за хрень: ТЗ.Сортировать("+Адрес", "+ВидРабот"); ???? |
|||
4
КонецЦикла
02.03.13
✎
22:08
|
ТЗ.Сортировать("Адрес, ВидРабот");
|
|||
5
КонецЦикла
02.03.13
✎
22:09
|
ТекИндекс...
Буогаг, до чего восьмерка доводит |
|||
6
Злопчинский
02.03.13
✎
23:10
|
(5) ну что ты хочешь от расставлятелей галочек..???
|
|||
7
ЧеловекДуши
02.03.13
✎
23:20
|
(6) Дак, вроде Синтаксис помощник еще никто не забанил в конфигураторе :)
|
|||
8
ЧеловекДуши
02.03.13
✎
23:20
|
+(6) Тут дело не в восьмерке :)
|
|||
9
snegovik
03.03.13
✎
00:44
|
Короче, всё рассказали и повсюду раскритиковали, кроме ответа на вопрос)
|
|||
10
Cthulhu
03.03.13
✎
00:46
|
(9): т.е. ты даже ответ не в силах осмыслить?..
ну, что тут скажешь... |
|||
11
snegovik
03.03.13
✎
00:46
|
Какая разница, как заполняю ТЗ?:) А вот почему после сортировки в первой отсортированной колонке не совсем по алфавиту идет вывод.... Собственно, в СП нет информации о том, как именно сортируются строки в ТЗ, если в них сортировка по строковым данным.
|
|||
12
snegovik
03.03.13
✎
00:48
|
(10) Где ответ? Лишь комментарии по методу заполнения ТЗ, которые к делу не относятся...
|
|||
13
Cthulhu
03.03.13
✎
00:52
|
(12): в (7) ответ.
ну и в (4), да. |
|||
14
snegovik
03.03.13
✎
01:00
|
(13) А, надо было обе колонки в одну строку заносить, через запятую. Хотя один хрен, странно сортирует - опять 2 куска по алфавиту.
|
|||
15
Torquader
03.03.13
✎
01:08
|
(14) Показывай весь код - скорей всего - где-то происходит дублирование таблицы.
|
|||
16
Torquader
03.03.13
✎
01:09
|
+(14) Ещё не забывайте, что символ неразрывного пробела (код 160) выглядит как пробел, но через СокрЛП не обрезается.
|
|||
17
Злопчинский
03.03.13
✎
01:11
|
(15) нам, тупым, уже объяснили, в (11) что как заполянется таблица - абсолютно фиолетова. а вот что соритруется неправильно - нефиолетово. То что в дестве родители воспитанием не занимались - не имеет никакого отношения, что чадо убивало и сидело в тюрьме...
|
|||
18
sanja26
03.03.13
✎
01:13
|
а зачем вручную индекс строкам присваивать в данном случае??
|
|||
19
snegovik
03.03.13
✎
01:14
|
(17) Ну и в чем разница между
ТЗ.УстановитьЗначение(ТекИндекс, "Адрес", СокрЛП(...... и ТЗ.Адрес = СокрЛП(........ ? П.С.: тупыми я тут никого не называл. |
|||
20
Torquader
03.03.13
✎
01:14
|
(17) Ну тогда им ТипЗначенияСтр в помощь, чтобы понять, что строк там нет, хотя, если там не строки, то очень сложно получить два куска по алфавиту, уж очень похоже, что наступили на (16).
|
|||
21
Torquader
03.03.13
✎
01:15
|
(19) Сделай так:
ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Сообщить(ТипЗначенияСтр(ТЗ.Адрес)+"="+Строка(ТЗ.Адрес)); КонецЦикла; И всё станет ясно. |
|||
22
snegovik
03.03.13
✎
01:16
|
Спасибо Torquader , поковыряю поглубже, что там с ТЗ и с кодом.
|
|||
23
Злопчинский
03.03.13
✎
01:29
|
(22) приведи уже сам код - начиная от формирования текста запроса до его залива в ТЗ...
|
|||
24
VladZ
03.03.13
✎
05:58
|
Автор, ты не ответил на мой второй вопрос... Вот тебе инфа из СП:
Сортировать(<?>,); Синтаксис: Сортировать(<Колонки>,<ДокумПоДате>) Назначение: Сортировать таблицу значений по колонкам. Параметры: <Колонки> - строковое выражение, которое определяет колонки, порядок и направление сортировки. Формат передаваемой строки - это разделенные запятыми номера или идентификаторы колонок со знаком направления сортировки ( ''+'' - сортировать по возрастанию; ''- '' - сортировать по убыванию; ''*'' - сортировать по внутреннему значению). Знак направления сортировки можно указывать до или после обозначения колонки через пробел или без пробела. По умолчанию направление сортировки принимается по возрастанию. <ДокумПоДате> - необязательный параметр. Имеет смысл только в том случае, если значениями таблицы значений являются документы. В этом случае можно задавать сортировку документов по их хронологии. Число: 1 - сортировка по хронологии документов; 0 - нет. Значение по умолчанию - 0. Читай вдумчиво. |
|||
25
snegovik
03.03.13
✎
07:52
|
(24) Вопрос был этот?
" И что за хрень: ТЗ.Сортировать("+Адрес", "+ВидРабот"); ????" Ну тут да, лажанул, поставил две лишние кавычки между Адрес и ВидРабот. Хотя после того, как убрал, сортировалось так же, как и до. А вот кстати, что такое (* сортировать по внутреннему значению)? |
|||
26
Mikeware
03.03.13
✎
08:10
|
эттта...
а чего вам не понравился ТекИндекс? |
|||
27
Mikeware
03.03.13
✎
08:10
|
(25) грубо говоря, по иду
|
|||
28
ChMikle
03.03.13
✎
08:34
|
(25) ТЗ.Сортировать("Адрес+,ВидРабот+") по идее так должно быть
|
|||
29
Torquader
03.03.13
✎
15:19
|
(28) Как дерьмо не сортируй - всё равно получишь ...
Ждём кода формирования таблицы. |
|||
30
Сияющий Асинхраль
03.03.13
✎
16:02
|
(0) Если хочешь, чтобы семерка нормально сортировала всегда явно описывай типы колонок, в противном случае, можешь получить самые удивительные вещи. Кстати в восьмерке это правило даже 1С часто не соблюдает...
|
|||
31
FN
03.03.13
✎
16:15
|
Сделай так:
ТЗ.Сортировать("+Адрес", "+ВидРабот"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Сообщить(""+ТЗ.НомерСтроки+": "+ТЗ.Адрес); КонецЦикла многа думай. |
|||
32
FN
03.03.13
✎
16:16
|
Ну тока вместо
ТЗ.Сортировать("+Адрес", "+ВидРабот"); правильно ТЗ.Сортировать("Адрес,ВидРабот"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |