Консультация № 66918
14.12.2006, 09:11
0.00 руб.
0 12 5
Здравствуйте!
1С,7
1. Можно ли сделать в выпадающем списке сортировку в обратном алфавитном порядке? Если можно, то как?
2. Если (1) нет, то как решить следущую задачу: Есть выпадающий список с элементами из справочника "Склад". Есть элементы которые часто используются, а есть которые редко. Так вот, нужно чтобы в выпадающем списке часто используемые элементы были вверху. То, что будет использоваться часто - заранее известно. Какие предложения? (добавление перед наименование часто используемых элементов символа, например "нижнее подчеркивание", не подходит)

Обсуждение

Неизвестный
14.12.2006, 09:28
общий
И можно ли сортировать в списке не по реквизиту "Наименование", а допустим по Коду.
Неизвестный
14.12.2006, 09:45
общий
это ответ
Здравствуйте, Munster!
Сортировать(Направление)
СортироватьПоПредставлению(Направление)

Направление - 0 - сортировка по возрастанию, иначе по убыванию (необязателен, по умолчанию - 0).
Неизвестный
14.12.2006, 09:46
общий
в списке чего?
Неизвестный
14.12.2006, 09:56
общий
это ответ
Здравствуйте, Munster!
А как организован выпадающий список, создается ли для этого сначала СписокЗначений? Тогда СортироватьПоПредставлению() Вам поможет, особенно если в команде ДобавитьЗначение() Вы сумеете в символьное представление записать число обращений к элементу и (или) алфавитное его представление в нужном Вам порядке или код по справочнику МестаХранения. Число обращений к элементу можно подсчитывать автоматически. Например, комбинированный вариант, из которого выберите нужную Вам часть:
СписокСкладов.ДобавитьЗначение(СпрМестаХранения.ТекущийЭлемент(), "000"+Нрег(СпрМестаХранения.ТекущийЭлемент().Наименование));
- для новой позиции, а при обработке выбора позиции меню:
Знач=СписокСкладов.ПолучитьЗначение(ВыбранныйНомер,МенюСтрока);
ЧислоОбращений=Число(Лев(МенюСтрока,3))+1;
СписокСкладов.УстановитьЗначение(ВыбранныйНомер,Знач,Формат(ЧислоОбращений,"Ч(0)3")+Сред(МенюСтрока,4));
Тогда при сортировке сначала будут наиболее часто выбираемые позиции (а при равном числе - алфавитный порядок).
Имеется в виду, что Список сохраняется в процедуре ПриЗакрытии (из значений типа Справочник.МестаХранения можно сохранять только код) и считывается (и сортируется) в процедуре ПриОткрытии из фиксированного файла.
Неизвестный
14.12.2006, 10:21
общий
это ответ
Здравствуйте, Munster!
Используйте для выбора склада СписокЗначений с заполнением его из запроса в котором и настроено упорядочивание по частоте использования складов. В каком порядке заполните, такой порядок и будет в диалоге выбора.
Неизвестный
14.12.2006, 11:00
общий
имеется ввиду выпадающий список, элементами которого являются элементы справочника
Неизвестный
14.12.2006, 11:06
общий
в чистом ввиде нет...
Неизвестный
14.12.2006, 15:04
общий
Спасибо всем за ответы!Сделал через список значений.
Неизвестный
14.12.2006, 15:10
общий
Засунь данные в ТЗ, она сортируется, как угодно. Из ТЗ выгружай в Сп
Неизвестный
14.12.2006, 17:55
общий
это ответ
Здравствуйте, Munster!
Добавьте в справочник "Склад" реквизит "Рейтинг" тип Число, чтобы по нему в таблице значений можно было сортировать. Занесите рейтинг вручную, как Вам необходимо. Потом в течение работы приоритеты могут меняться, тогда просто изменить это число и записывать его в элемент справочника.
Можно в документах (отчётах) этот счётчик увеличивать, и тогда действительно, вверху будут те элементы, которые чаще всего используются. Можно добавить два реквизита: для динамического и статического рейтинга.
В принципе, идея как и у BuhCIA.
Неизвестный
14.12.2006, 17:59
общий
Я считаю, что нужно записывать значения счётчика имено в элемент справочника (либо создать дополнительный справочник "Рейтинг использования" со ссылками на элементы других справочников, но это сложнее), т.к. если из каталога пользователя удалить все файлы сохранения настроек отчётов, все данные потеряются.
Неизвестный
14.12.2006, 19:02
общий
это ответ
Здравствуйте, Munster!
Можно конечно выгружать все склады в список в определенном порядке и потом выбирать значения списка, но я бы решил по другому.
Добавил реквизит Порядок в справочник Склады , указал птичку "Сортировка", а в форме списка справочника использовал при открытии процедуру
Сортирока("Порядок");
Форма ответа