|
|
|
Как сделать чтобы сортировка в табличной части работала по нужной колонке? Ø |
☑ | ||
|---|---|---|---|---|
|
0
YaVlad
06.06.05
✎
14:16
|
ТиС. В табличной части кнопка сортировки по любой колонке работает, а по артиклу почему-то нет - серые кнопки сортировки. Посмотрел в конфигураторе - там у Номенклатура.Артикул галка сортировки стоит. Может не там смотрю?
|
|||
|
1
sauxID
06.06.05
✎
14:19
|
В табличной части чего - документа, справочника
|
|||
|
2
SnarkHunter
06.06.05
✎
14:19
|
Видимо потому что артикул всего лишь текствый реквизит...
|
|||
|
3
Sasha
06.06.05
✎
14:19
|
А мож. в ТЧ это у тебя вычисляемое поле вставлено? (текст)
|
|||
|
4
YaVlad
06.06.05
✎
14:23
|
Да, это текстовое поле с формулой:
?(Номенклатура.Выбран()=0, "", Номенклатура.Артикул) |
|||
|
5
smaharbA
06.06.05
✎
14:25
|
(4) ааа...
|
|||
|
6
SnarkHunter
06.06.05
✎
14:25
|
Ну так чего ты хочешь...
|
|||
|
7
YaVlad
06.06.05
✎
14:26
|
(1)Табличная часть документа.
Если текстовое поле, то никак нельзя сделать? |
|||
|
8
smaharbA
06.06.05
✎
14:28
|
(7) можно, выгрузить ТЧ, отсортировать как надо и загрузить...
|
|||
|
9
SnarkHunter
06.06.05
✎
14:32
|
(8)Не взлетит...
|
|||
|
10
Добрый
06.06.05
✎
14:32
|
|
|||
|
11
smaharbA
06.06.05
✎
14:35
|
(8) исчо как летает... у меня глСортироватьТабличнуюЧасть(), все летит...
Конечно текстовые поля во всех доках определены, да и "спец кнопка" на формах... |
|||
|
12
YaVlad
06.06.05
✎
14:46
|
(11) Я еще слаб в программировании 1С. Код функции не можешь выслать? Please!
|
|||
|
13
smaharbA
06.06.05
✎
15:10
|
На форме дока кнопочки СортироватьАЯ и СортироватьЯА На них функция
глСортироватьТабличнуюЧасть(Контекст,"+") и глСортироватьТабличнуюЧасть(Контекст,"-") соответственно... В глобальнике Функция глСортироватьТабличнуюЧасть(Конт,Направление="+") Экспорт Попытка Аттр=Конт.Форма.ТекущаяКолонка(); Мет=Метаданные.Документ(Конт.Вид()); Если Мет.РеквизитТабличнойЧасти(Аттр).Выбран()=1 Тогда // Это реквизит документа, по нему непосредственная сортировка Конт.СортироватьСтроки(Направление+Аттр); Иначе ТЗ=глСоздатьОбъект("ТаблицаЗначений"); Конт.ВыгрузитьТабличнуюЧасть(ТЗ); ТЗ.НоваяКолонка(Аттр); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл НомСтр=ТЗ.НомерСтрокиДокумента; Состояние("Выбираю строки "+НомСТр); Конт.ПолучитЬСтрокуПоНомеру(НомСтр); ЗначАттр=Шаблон("["+Аттр+"]"); ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,Аттр,ЗначАттр); КонецЦикла; Состояние("Сортирую таблицу."); ТЗ.Сортировать(Направление+Аттр); Состояние("Загружаю таблицу."); Конт.ЗагрузитьТабличнуюЧасть(ТЗ); КонецЕсли; Исключение Сигнал(); КонецПопытки; КонецФункции ... Только обязательно Идентификатор полю назначь... |
|||
|
14
YaVlad
06.06.05
✎
15:22
|
(13) Спасибо большое! Сейчас буду пробовать. Спасибо большое!
|
|||
|
15
Sasha
06.06.05
✎
15:35
|
(13) Это конечно все круто и в жизни пригодится, но наверное было бы проще добавить реквизит артикул и все :-)
|
|||
|
16
smaharbA
06.06.05
✎
15:38
|
(15) а на кой, если он в справочнике номенклатуры уже есть...
Конечно если ТЧ документа "тяжела" то туго будет сортировать... |
|||
|
17
smaharbA
06.06.05
✎
15:40
|
+(16) так будет сортировать независимо от наличия/отсутствия реквизита ТЧ...
|
|||
|
18
Sasha
06.06.05
✎
15:43
|
(17) угу. запомнил примерчик :-), вдруг пригодится, если использую, буду на тебя ссылаться...
|
|||
|
19
smaharbA
06.06.05
✎
15:49
|
(18) нет не ссылаться, сам из раруса выдернул...
|
|||
|
20
YaVlad
06.06.05
✎
15:57
|
(13)
Поставил идентификатор колонке Аттр, по нему что-то сортирует, но не понятно по какому принципу. У меня в артикуле и буквы и цифры, например, 2650DG, и 27411L. Я думал будет сортировать по первым символам, как в обычной сортировке, но тут какой-то странный порядок сортировки... Еще в функции была ссылка на ТЗ=глСоздатьОбъект("ТаблицаЗначений"); Но такой функции нет, я заменил на ТЗ=СоздатьОбъект("ТаблицаЗначений"); Думаю, это не принципиально. |
|||
|
21
smaharbA
06.06.05
✎
16:03
|
(20) 271DG > 27411L, вот и принцип, а идентификатор не Аттр, а тАртикул, к примеру, ну этт значения вобщемто не имеет
|
|||
|
22
YaVlad
06.06.05
✎
16:13
|
Все заработало. Заменил идентификатор колонки с Аттр на другой - Аттр2. После этого заработало. Т.е. должно сработать условие ELSE в функции.
Спасибо! |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |