|
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) не пугай людей...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |