|   |   | 
| 
 | v7: Сортировка таблицы значений Ø (Злопчинский 12.10.2016 01:00) | ☑ | ||
|---|---|---|---|---|
| 0
    
        Slypower 11.10.16✎ 15:27 | 
        Добрый день. Не могу понять, что хочет 1С7.7. 
 https://cloud.mail.ru/public/3wJE/wBbVEauVg На картинке список сортировки, а рядом еще 2 кнопки, для сортировки по возрастанию/убиванию. Подписи - это формулы в модуле для данных реквизитов. Вот процедура для них: Процедура Сортировать(Метод = "") Если СокрЛП(Метод)="Вниз" Тогда Сортировка="+"; ИначеЕсли СокрЛП(Метод)="Вверх" Тогда Сортировка="-"; КонецЕсли; ТаблЗнач.Сортировать(МетодСортировки.ПолучитьЗначение(МетодСортировки.ТекущаяСтрока())+Сортировка); //Сообщить(""+МетодСортировки.ПолучитьЗначение(МетодСортировки.ТекущаяСтрока())+"_"+Сортировка+""); н=0; ТаблЗнач.ВыбратьСтроки(); Пока ТаблЗнач.ПолучитьСтроку() = 1 Цикл н=н+1; ТаблЗнач.УстановитьЗначение(н,"НомСтроки",н); КонецЦикла; КонецПроцедуры // КнСортировать Так вот. При заполнении ТаблЗнач сразу сортируется по стандартному методу. Затем при нажатии на кнопки, он определяет метод, но сортирует. Срабатывает только при смене списка, а кнопки со стрелками не работают. Что может мешать работе сортировке? Список заполняется: Процедура МетодСортировкиТаблицы() МетодСортировки.УдалитьВсе(); для ш=1 по ТаблЗнач.КоличествоКолонок() Цикл ТаблЗнач.ПолучитьПараметрыКолонки(ш,,,,Заголовок,,,); Если ТаблЗнач.ВидимостьКолонки(ш)=1 Тогда МетодСортировки.ДобавитьЗначение(ш,Заголовок); КонецЕсли; КонецЦикла; МетодСортировки.УдалитьЗначение(2); МетодСортировки.ТекущаяСтрока(3); Сортировать(); КонецПроцедуры // МетодСортировки | |||
| 1
    
        Ёпрст гуру 11.10.16✎ 15:30 | 
        Вот это выкини из кода:
 Пока ТаблЗнач.ПолучитьСтроку() = 1 Цикл н=н+1; ТаблЗнач.УстановитьЗначение(н,"НомСтроки",н); КонецЦикла; | |||
| 2
    
        Ёпрст гуру 11.10.16✎ 15:32 | 
        И пихай идентификаторы колонок, а не число     | |||
| 3
    
        aka AMIGO 11.10.16✎ 15:32 | 
        На Сортировать(); не ругается?
 И еще: в отладчике что в параметре МетодСортировки.ТекущаяСтрока())+Сортировка | |||
| 4
    
        Ёпрст гуру 11.10.16✎ 15:33 | 
        у тебя же 
 МетодСортировки.ТекущаяСтрока())+Сортировка = 1 + "+" = 1 | |||
| 5
    
        Ёпрст гуру 11.10.16✎ 15:35 | 
        так, что ле исправь:
 МетодСортировки.ДобавитьЗначение(""+ш,Заголовок); | |||
| 6
    
        Ёпрст гуру 11.10.16✎ 15:35 | 
        или так:
 ТаблЗнач.Сортировать(""+МетодСортировки.ПолучитьЗначение(МетодСортировки.ТекущаяСтрока())+Сортировка); | |||
| 7
    
        Ёпрст гуру 11.10.16✎ 15:35 | 
        короче, строку надо в метод передавать, а не число.     | |||
| 8
    
        Ёпрст гуру 11.10.16✎ 15:36 | 
        ну и код, что в (1) заменить на
 ТаблЗнач.ВидимостьКолонки("НомерСтроки",1); | |||
| 9
    
        aka AMIGO 11.10.16✎ 15:37 | 
        (7) + и в строке должно быть наименование колонки :)     | |||
| 10
    
        Slypower 11.10.16✎ 15:38 | 
        (1) это нужно, это потом нумерует строки по порядку, а не по виду сортировки. Они всегда теперь 1,2,3,....     | |||
| 11
    
        Slypower 11.10.16✎ 15:41 | 
        (5) Вот спасибо!!! Вот теперь работает!!     | |||
| 12
    
        Slypower 11.10.16✎ 15:44 | 
        (6) так тоже работает. Я так понимаю, это особенности 1С7.7? Интересно, что Сообщить(""+МетодСортировки.ПолучитьЗначение(МетодСортировки.ТекущаяСтрока())+"_"+Сортировка+""); работает по этому же принципу, если вначале ""+ не стоит, то не выводило +/-, а вот в сортировку не догадался поставить. Огромное спасибо     | |||
| 13
    
        Ёпрст гуру 11.10.16✎ 15:46 | 
        (12) нет никакой особенности, обычное приведение типов по первому операнду.     | |||
| 14
    
        Ёпрст гуру 11.10.16✎ 15:46 | 
        нефик к числу строку прибавлять     | |||
| 15
    
        Ёпрст гуру 11.10.16✎ 15:47 | 
        (10) и это не нужно, номерСтроки и так всегда есть у таблицы значений, просто покажи его на форме и усё, см. (8)     | |||
| 16
    
        aka AMIGO 11.10.16✎ 15:48 | 
        Так тоже можно:
 Строка(МетодСортировки.ТекущаяСтрока()))+Сортировка или так: ""+МетодСортировки.ТекущаяСтрока())+Сортировка Это не есть особенность 1с-77 | |||
| 17
    
        Slypower 11.10.16✎ 15:49 | 
        (15) да, это если сразу так стандартно делать, но для меня не по феншую такое расположение колонок, поэтому я и делаю свою колонку нумерации. Только если сделать: ТаблЗнач.НомСтроки=ТаблЗнач.НомерСтроки     | |||
| 18
    
        Ёпрст гуру 11.10.16✎ 15:50 | 
        (17) ёёё..
 кури метод ВидимостьКолонки, особенно, 3-ий параметр | |||
| 19
    
        Slypower 11.10.16✎ 16:04 | 
        Спасибо, есть над чем еще курить. Тему можно закрывать     | |||
| 20
    
        Злопчинский 12.10.16✎ 00:59 | 
        (13) не пугай людей...     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |