Имя: Пароль:
1C
1C 7.7
v7: Сортировка справочника
,
0 iPanterka
 
08.01.12
14:56
Добрый день)
Подскажите, как отсортировать справочник по реквизиту.
Обычно в 1С 7.7 существует возможность сортировки в режиме предприятия, но это возможно сделать только по двум полям (По коду и по наименованию). Меня это не устраивает, я хочу сортировать по произвольному полю (и в контекном меню есть пункт Сортировка->по реквизиту). Насколько я поняла, реквизит - это те поля, которые мы вводим, при заполнении справочника. Там даже поле специальное есть "Реквизиты" называется.

Вот что у меня получилось
в поле "реквизиты" есть реквизит Дисциплина.
вот мой код

Процедура Сортировать()
Сортировка(Дисциплина);
КонецПроцедуры

Есть некая кнопка, при нажатии на которую произойдет сортировка (по крайней мере я так хочу)...
Просто я с таким ни разу не сталкивалась, вот и не могу сообразить, как такое реализовать ) Подскажите пожалуйста ))
1 Rie
 
08.01.12
15:00
(0) Если у реквизита стоит флажок "Сортировка" - по нему можно сортировать и в режиме предприятия (клавиши Ctrl-3).
2 Rie
 
08.01.12
15:01
+(1) (Правда, есть некоторые тонкости насчёт типа этого реквизита).
3 GrayT
 
08.01.12
15:01
+1 В свойства реквизита, на закладке Дополнительно
4 BlackSeaCat
 
08.01.12
15:03
У всех кончился СП на продажу?

Возвращает текущее значение установленного на данный момент способа сортировки элементов справочника (до применения метода).
Параметры:
<Способ> - строка с именем устанавливаемой сортировки. Это может быть (в зависимости от языка по умолчанию) ''Код\Code''  ''Наименование\Description'' или имя реквизита, по которому устанавливается сортировка.
<Разрешение> - необязательный параметр. Флаг разрешения пользователю менять способ сортировки: 1 - разрешить; 0 - запретить.
Замечание:
Метод доступен только в контексте Модуля формы списка справочника и относится ко всему текущему справочнику.
5 BlackSeaCat
 
08.01.12
15:04
+(4) Тьфу ты, и задарма впарить не сумел!

Метод формы списка справочника "Сортировка".
6 iPanterka
 
08.01.12
15:07
У меня стоит галка Сортировка, и в контексном меню стоит  галка сортировка по реквизиту, но при нажатии на кнопку, которая должна будет осуществить сортировку выдается ошибка "Неверное имя реквизита!"
7 Rie
 
08.01.12
15:09
(6) Какого типа реквизит?
8 BlackSeaCat
 
08.01.12
15:10
(6) Отличаете ИМЯ реквизита от самого реквизита?

На пальцах, должно быть так:

Процедура Сортировать()
Сортировка("Дисциплина");
КонецПроцедуры

Ну и сортировка по этому реквизиту должна быть предусмотрена в его свойствах, см. (3).
9 iPanterka
 
08.01.12
15:10
(7) Справочник.Дисциплины
10 iPanterka
 
08.01.12
15:16
Эх...не работает...выдает ошибку
Сортировка("Дисциплина");
{Справочник.ДисциплиныВДиплом.ФормаСписка.ФормаСписка.Модуль(293)}: Неверное имя реквизита!
11 BlackSeaCat
 
08.01.12
15:17
(10) (1) и (3) выполнены?
12 Rie
 
08.01.12
15:18
(9) Не взлетит для реквизитов агрегатных типов.
13 iPanterka
 
08.01.12
15:19
(11) Да выполнены.
14 Rie
 
08.01.12
15:21
(13) Возможность сортировать нужным Вам образом для реквизитов типа Справочник отсутствует.
15 iPanterka
 
08.01.12
15:22
т.е. эту проблему никак не обойти??
16 BlackSeaCat
 
08.01.12
15:22
(13) Значит, это грабли из (12).

Заводи дополнительный реквизит, в который пихай код (или наименование, как тебе там надо) реквизита Дисциплины.

И по не му сортируй.
17 iPanterka
 
08.01.12
15:25
(16) Хорошо. Я понала )

Всем спасибо )
18 Rie
 
08.01.12
15:25
(15) Либо завести строковый реквизит, автоматически заполняемый при изменении  реквизита Дисциплина. Либо использовать 1С++ и ТабличноеПоле.

Кстати, в (0) у Вас ошибка - кавычки пропустили. Должно быть
Сортировка("Дисциплина");
19 1Сергей
 
09.01.12
08:20
(10) Реквизит называется именно так?