|   |   | 
| 
 | 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 | 
        Ну тока вместо 
  ТЗ.Сортировать("+Адрес", "+ВидРабот"); правильно ТЗ.Сортировать("Адрес,ВидРабот"); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |