Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ТиС 12. Сортировка отфильтрованного справочника
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Wolf2004
Задача. При подборе по каталогу отображать только товары, которые есть в наличии на этом складе, отсортированные по КодСортировки.

При подборе в накладную номенклатура фильтруется (при включеной иерархии) по наличию. Фрагмент кода:



Если ОстаткиТоваров.Количество > 0 Тогда
СписокТоваров.ДобавитьЗначение(СпрТовары.ТекущийЭлемент());
ИспользоватьСписокЭлементов(СписокТоваров);
КонецЕсли;


Далее отфильтрованный справочник нужно отсортировать по реквизиту (например, КодСортировки). Но опция сортировки для отфильтрованного в режиме предприятия недоступна, а по дефолту сортирует по коду.
zetovich
Цитата(Wolf2004 @ 20.07.09, 11:39) необходимо зарегистрироваться для просмотра ссылки
Задача. При подборе по каталогу отображать только товары, которые есть в наличии на этом складе, отсортированные по КодСортировки.

При подборе в накладную номенклатура фильтруется (при включеной иерархии) по наличию. Фрагмент кода:



Если ОстаткиТоваров.Количество > 0 Тогда
СписокТоваров.ДобавитьЗначение(СпрТовары.ТекущийЭлемент());
ИспользоватьСписокЭлементов(СписокТоваров);
КонецЕсли;


Далее отфильтрованный справочник нужно отсортировать по реквизиту (например, КодСортировки). Но опция сортировки для отфильтрованного в режиме предприятия недоступна, а по дефолту сортирует по коду.

у рекизита стоит галочка "Сортировка"?
Wolf2004
Цитата(zetovich @ 20.07.09, 12:35) необходимо зарегистрироваться для просмотра ссылки
у рекизита стоит галочка "Сортировка"?


ну конечно же . Если справочник не фильтровать по наличию, то все работает.
Wolf2004
спасибо. неактуально.
zetovich
э....вопрос хоть решился.
а то я сидел вспоминал клюшки, но походу низзя такого сделать. или ошибаюсь?
andyjan
стикався з подібним вирішується таким чином
потрібно було відсортувати або по коду або по назві
єдине сортування включається до ИспользоватьСписокЭлементов()

Если Сортировка()="Код" тогда
СпрТов.ПорядокКодов();
Иначе
СпрТов.ПорядокНаименований();
Конецесли;
СпрТов.ВыбратьЭлементы();
Пока СпрТов.ПолучитьЭлемент()=1 Цикл
Если СпрТов.ЭтоГруппа()=0 Тогда
........
Если ОстатокФакт<>0 тогда
СписокТоваров.ДобавитьЗначение(СпрТов.ТекущийЭлемент());
Конецесли;
Иначе
СписокТоваров.ДобавитьЗначение(СпрТов.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
ИспользоватьСписокЭлементов(СписокТоваров);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.