|
|
|
Сортировка табличной части | ☑ | ||
|---|---|---|---|---|
|
0
Dreams
30.11.07
✎
16:15
|
Есть документ. По кнопке вызывается функция "заполнить" в модуле документа,которая заполняет табличную часть. После заполнения необходимо полученную табличную часть сортировать по возрастанию по значению первого столбца (тип число).
Пользуюсь типовой функцией СортироватьСтроки(<?>); Синтаксис: СортироватьСтроки(<Колонки>) Назначение: Сортировать многострочную часть документа по реквизитам. Параметры: <Колонки> - перечисленные через запятую реквизиты многострочной части документа, по которым следует сортировать. Знаки +,- ,* , предшествующие названию реквизита, указывают направление сортировки по реквизиту. ''+'' - сортировать по возрастанию; ''- '' - сортировать по убыванию; ''*'' - сортировать по внутреннему значению. В результате ничего не меняется, строки как были по наименованию отсортированы, так и осталось. Можно ли выполнить сортировку иначе или я не верно использую данную функцию? |
|||
|
1
ТелепатБот
гуру
30.11.07
✎
16:15
|
||||
|
2
GrayT
30.11.07
✎
16:16
|
Обновить() ?
|
|||
|
3
Dreams
30.11.07
✎
16:20
|
GrayT обращаюсь к табличной части из модуля формы, метод Обновить не работает. А функцию СотрироватьСтроки() пишу просто, без использования сетода Создать Объект, потому что табличная часть этого документа
Обновить<<?>>(); {Документ.Автоматы.Форма.Модуль(230)}: Процедура не обнаружена (Обновить) |
|||
|
4
4pok
30.11.07
✎
16:20
|
(0) "или я не верно использую данную функцию". А как именно Вы используете данную функцию?
|
|||
|
5
Dreams
30.11.07
✎
16:21
|
4pok в модуле формы документа пишу строку
СортироватьСтроки("НомерАвтоматаВЗале"); |
|||
|
6
Нуф-Нуф
30.11.07
✎
16:22
|
Форма.Обновить();
|
|||
|
7
Dreams
30.11.07
✎
16:29
|
Нуф-Нуф то же самое, остается сортировка по наименование
|
|||
|
8
LarSha
30.11.07
✎
16:31
|
ВыгрузитьТабличнуюЧасть,ЗагрузитьТабличнуюЧасть
|
|||
|
9
Ёпрст2
30.11.07
✎
16:31
|
(7) Если руками нажимать на кнопку сортировки, сортируется хоть? НомерАвтоматаВЗале - реквизит документа или текстовая колонка?
|
|||
|
10
4pok
30.11.07
✎
16:35
|
+(9) иногда еще путают с заголовком колонки. Но попробовать: СортироватьСтроки("+НомерАвтоматаВЗале");
|
|||
|
11
Dreams
30.11.07
✎
16:42
|
LarSha не могу использовать такую функцию потому что нахожусь в модуле формы
Ёпрст2 кнопки сортировка нет, мне нужно чтобы по кнопке заполнить табличная часть заполнялась данными отсортированными не по наименованию а по одной колонке,которая заполняется как и все остальные функцией заполнить.Я в конце этой процедуры писала СортироватьСтроки("+НомерАвтоматаВЗале"); Пробовала сделать отдельную кнопку, эффект тот же, ничего не происходить, хотя все колонки ко времени вызова функции СортироватьСтроки уже заполенны 4pok результат тот же |
|||
|
12
Ёпрст2
30.11.07
✎
16:45
|
(11) Как это нет кнопок сортировки? Панель струментов скрыла ? ...
И это, так , что пишет: Сообщить(Метаданные.Документ(Вид()). РеквизитТабличнойЧасти(НомерАвтоматаВЗале).Выбран() ); //???? |
|||
|
13
Ёпрст2
30.11.07
✎
16:45
|
(11) Как это нет кнопок сортировки? Панель струментов скрыла ? ...
И это, так , что пишет: Сообщить(Метаданные.Документ(Вид()). РеквизитТабличнойЧасти("НомерАвтоматаВЗале").Выбран() ); //???? |
|||
|
14
4pok
30.11.07
✎
16:48
|
(11) Кнопки сртировки есть. В панельке открытого документа (сверху с буковками AZ - ZA). Курсор установить на колонку с НомерАвтоматаВЗале и нажать кнопочку Сортировать по возрастанию, затем Сортировать по убыванию.Что происходит?
|
|||
|
15
Dreams
30.11.07
✎
16:52
|
Ёпрст2
документ не типовой,написан с нуля. вот функции по заполению ТЧ Процедура Заполнить() Если Вопрос("Перед заполнением табличная часть будет очищена." "Продолжить?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли; УдалитьСтроки(); //Из существующих документов за этот день сформировать список автоматов ДокА=СоздатьОбъект("Документ.Автоматы"); ДокА.ВыбратьДокументы(ДатаДок,ДатаДок); СпА=СоздатьОбъект("СписокЗначений"); СпА.УдалитьВсе(); Пока ДокА.ПолучитьДокумент()=1 Цикл Если ДокА.Проведен()=0 Тогда Продолжить; КонецЕсли; ДокА.ВыбратьСтроки(); Пока ДокА.ПолучитьСтроку()=1 Цикл СпА.ДобавитьЗначение(ДокА.ИгровойАвтомат); КонецЦикла; КонецЦикла; //существующие документы Спр=СоздатьОбъект("Справочник.ИгровыеАвтоматы"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.Состояние.Получить(ДатаДок)<>Перечисление.Состояния.Работает Тогда Продолжить; КонецЕсли; //проверка по введенным документам Если СпА.НайтиЗначение(Спр.ТекущийЭлемент())>0 Тогда Продолжить; КонецЕсли; //введенные документы Если (АвтоматыАтроникс=1) и (Спр.Производитель.Наименование="Atronic") Тогда НоваяСтрока(); ИгровойАвтомат=Спр.ТекущийЭлемент(); ПриВыбореАвтомата(); КонецЕсли; Если (АвтоматыАтроникс=0) и (Спр.Производитель.Наименование<>"Atronic") Тогда НоваяСтрока(); ИгровойАвтомат=Спр.ТекущийЭлемент(); ПриВыбореАвтомата(); КонецЕсли; ЗаполнитьНачало(); СортироватьСтроки("НомерАвтоматаВЗале"); Форма.Обновить(); КонецПроцедуры Процедура ЗаполнитьНачало() Док=СоздатьОбъект("Документ.Автоматы"); Док.ОбратныйПорядок(1); ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл ст=0; Док.ВыбратьДокументы(,ДатаДок-1); Пока Док.ПолучитьДокумент()=1 Цикл Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл Если Док.ИгровойАвтомат=ИгровойАвтомат Тогда ПолученоНачало=Док.ПолученоКонец; Стр2Начало=Док.Стр2Конец; Стр3Начало=Док.Стр3Конец; ВложеноНачало=Док.ВложеноКонец; СнялиНачало=Док.СнялиКонец; Деном=ИгровойАвтомат.Деноминация.Получить(ДатаДок); ст=1; Прервать; КонецЕсли; КонецЦикла; Если ст=1 Тогда Прервать; КонецЕсли; КонецЦикла; Если ИгровойАвтомат.ДатаОбнуления.Получить(ДатаДок)=ДатаДок Тогда ПолученоНачало=0; Стр2Начало=0; Стр3Начало=0; ВложеноНачало=0; СнялиНачало=0; Деном=ИгровойАвтомат.Деноминация.Получить(ДатаДок); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ПриВыбореАвтомата() Если ИгровойАвтомат.Состояние.Получить(ДатаДок)<>Перечисление.Состояния.Работает Тогда Если Вопрос("Данный автомат не является рабочим в данный момент. Продолжить?",4)=7 Тогда ИгровойАвтомат=""; Возврат; КонецЕсли; КонецЕсли; НомерВЗале=ИгровойАвтомат.НомерАвтоматаВЗале.Получить(ДатаДок); КонецПроцедуры вот процедуры по которым заполняется ТЧ. Реквизит НомерАвтоматаВЗале периоднический НО!!!! я ведь сортирую после заполнения ТЧ, и все данные по сути уже есть |
|||
|
16
4pok
30.11.07
✎
16:54
|
СортироватьСтроки("+НомерВЗале")
|
|||
|
17
Ёпрст2
30.11.07
✎
16:54
|
(15) Ну и где у тебя там реквизит "НомерАвтоматаВЗале " ??? Может, всё же
СортироватьСтроки("НомерВЗале"); |
|||
|
18
Dreams
30.11.07
✎
16:55
|
Ёпрст2
если б она правильно работала,я бы не спрашивала,ни фига она ей не сортирует!!! |
|||
|
19
Shaman100M
30.11.07
✎
16:57
|
СортироватьСтроки("НомерВЗале");
А? |
|||
|
20
AcaGost
30.11.07
✎
16:58
|
(18) Реквизиты табличной части???
|
|||
|
21
Ёпрст2
30.11.07
✎
17:00
|
(18) :))
На кнопки AZ↑ понажимай для начала ... |
|||
|
22
Dreams
30.11.07
✎
17:04
|
теперь сортирует,но все равно как то странно.
|
|||
|
23
4pok
30.11.07
✎
17:05
|
(22) В чем странность?
|
|||
|
24
Dreams
30.11.07
✎
17:05
|
получается
1 10 11 12 13 14 15 2 21 22 23 24 |
|||
|
25
Ёпрст2
30.11.07
✎
17:05
|
(22) Чего странного то? Реквизит в документе у тебя - "НомерВЗале", его и сортировать надо ... а какой ты там ему Заголовок назначила для показа - фиолетово, хоть "Ромашкой" его назови ...
|
|||
|
26
Ёпрст2
30.11.07
✎
17:06
|
(24) Тип реквизита, строковый видать ... :))
|
|||
|
27
Dreams
30.11.07
✎
17:07
|
Ёпрст2 если пользоваться типовой соритровкой,как ты говоришь он сортирует точно так же,в формате 1,10,11,12,13,14,2,21,22,23,3,....
|
|||
|
28
4pok
30.11.07
✎
17:08
|
(24) Наверное этот реквизит имеет тип Строка, или... Надо бы Число.
|
|||
|
29
Ёпрст2
30.11.07
✎
17:08
|
(27) Ну правильно, тип реквизита в документе у вас - Строка.
|
|||
|
30
Dreams
30.11.07
✎
17:10
|
да, конец рабочего дня это тяжко,особенно в пятницу. Всем спасибо))
|
|||
|
31
AcaGost
30.11.07
✎
17:10
|
(27) Выгрузи в ТЗ, добавь числовую колонку, заполни ее (Число(НомерВЗале)), отсортируй, удали лишнюю колонку, Загрузи обратно.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |