1cv77 Торговля и Склад. Установить фильтр в списке номенклатуры

Тема в разделе "1C и всё что с ней связано", создана пользователем leznov, 15 май 2008.

  1. leznov

    leznov Гость

    Доброго времени суток!
    Помогите решить задачку.
    Заключается она в след. Есть справочник номенклатуры, менеджерам он должен быть виден не весь. У каждого элемента этого справочника есть реквизит Вид.Эл кот. принимает значения 0 или 1.
    Пробовал решить задачу двумя вариантами:
    в модуле Справочник.Номенклатура.МодульСписка.МодульСписка
    1. Вариант:
    УстановитьОтбор("ВидЭл",0);
    2. Вариант:
    СЗ=СоздатьОбъект("СписокЗначений");
    номенклатура=СоздатьОбъект("Справочник.Номенклатур­а");
    номенклатура.выбратьэлементы();
    Пока номенклатура.получитьэлемент()=1 Цикл
    Если номенклатура.ТекущийЭлемент().ВидЭл=0 Тогда
    СЗ.ДобавитьЗначение(номенклатура.ТекущийЭлемент())­;
    КонецЕсли;
    КонецЦикла;
    Предупреждение(СЗ.РазмерСписка());
    ИспользоватьСписокЭлементов(СЗ);
    Оба варианта не подходят ((. Менеджеры в обоих случаях ощущают проблемы с быстрым поиском по коду(указав колонку кода, набирают его и динамически перемещаются по списку). Проблемы следующие, во-первых медленнее ищет, во-вторых поиск идет только вниз по списку, при поиске вверх либо не ищет либо подвисает на 3-5 сек. При всем при этом поиск по наименованию идет нормально в обоих направлениях.
     
  2. Cirrus

    Cirrus Гость

    Эх, вы наткнулись на один из неблагоприятных размеров в семерке... Когда надо использовать не весь справочник, а только необходимый набор элементов. Метод ИспользоватьСписокЭлементов(<?>), как вы сами убедились приводит к тормозам и неудобной навигации (отключается механизм поиска по индексу). Если навигацией пренебречь, то этот метод использовать можно. Единственное, составлять список элементов методом обхода справочника - нельзя. "ДобавитьЗначение()" долго работает, лучше использовать SQL запрос компонентой v7plus. Как альтернативный вариант еще можно попробовать сделать вспомогательные справочники.
     
  3. leznov

    leznov Гость

    Спасибо!
     
Загрузка...

Поделиться этой страницей