|   |   | 
| 
 | Сортировка структурного кода | ☑ | ||
|---|---|---|---|---|
| 0
    
        ddok 06.07.21✎ 12:04 | 
        Здравствуйте.
 Подкиньте, пожалуйста, идею сортировки (по возрастанию/убыванию) структурного кода вида "1.2.3". 1С подобный код (строковый тип) не совсем правильно сортирует, например по возрастанию: 1.01.01 1.02.3 1.1.3 1.11.1 1.2.11 а должно быть: 1.01.01 1.1.3 1.02.3 1.2.11 1.11.1 | |||
| 1
    
        mikecool 06.07.21✎ 12:06 | 
        (0) вопрос - а кто, кроме 1с, сортирует так, как надо? 
 имхо - никто | |||
| 2
    
        ДенисЧ 06.07.21✎ 12:06 | 
        Разбери в ТЗ с преобразованием к числу, сортируй, собирай обратно     | |||
| 3
    
        ДенисЧ 06.07.21✎ 12:06 | 
        (1) Все, кому надо ))     | |||
| 4
    
        mikecool 06.07.21✎ 12:06 | 
        надо приводить код к такому виду, чтобы он мог сортироваться как надо     | |||
| 5
    
        Fragster гуру 06.07.21✎ 12:10 | 
        за код 01 и 1 на одном уровне надо отрывать кое что кое кому     | |||
| 6
    
        Вафель 06.07.21✎ 12:11 | 
        храни реквизит для сортировка 001.001.001     | |||
| 7
    
        1Сергей 06.07.21✎ 12:12 | 
        переименовать вс 01 в 1, 02 в 2 и т.д.
 Кто будет делать так и дальше - пальцы прищемить дверью | |||
| 8
    
        Вафель 06.07.21✎ 12:12 | 
        а кстати почему 02 < 1 ?     | |||
| 9
    
        ДенисЧ 06.07.21✎ 12:12 | 
        (8) По правилам сравнения строк ))     | |||
| 10
    
        Вафель 06.07.21✎ 12:21 | 
        (8) Это я подумал что должно быть так, а это как есть     | |||
| 11
    
        mikecool 06.07.21✎ 12:23 | 
        потом появится 01.01.1 и т.п.     | |||
| 12
    
        fisher 06.07.21✎ 12:29 | 
        (0) Для правильной сортировки тебе в любом случае придется приводить код к одинаковой длине частей с ведущими нулями. Если не хочешь делать это каждый раз при сортировке, то лучше это делать заранее. Например писать нормализованный структурный код в доп-реквизит, по которому и сортировать.     | |||
| 13
    
        Малыш Джон 06.07.21✎ 12:30 | 
        (0) если такая потребность возникает постоянно, то имеет смысл хранить параллельно нормированный код (по типу 1.02.03 -> 001.002.003) и сортировать по нему     | |||
| 14
    
        cathode 06.07.21✎ 12:38 | 
        (0) Можно сделать на встроенном языке. 
 Алгоритм называется "естественная сортировка" (natsort). То, что в 1С и вообще везде - это лексикографическая сортировка, существенно более простая в реализации. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |