Языки программирования > WEB-Расширение для "1С:Предприятие 8.0, 8.1" (v8)

Выбор значения из выпадающего списка

(1/3) > >>

iPRG Team:
Я похожее делал правда не по группе(папке), а по полю, но по группе думаю тоже должно работать.
У меня в списке было поле "Предприятие" и я показывал пользователям данные только для определенных предприятий, например ListDataSource.WhereClause = "Предприятие.Код=7";
А потом можно к этому еще и фильтры применять.
Если по родителю, попробуйте написать чтото вроде:
ListDataSource.WhereClause = "Родитель=Одежда";
Вот пример кода из моей программы, который при открытии формы сразу фильтрует данные:

private void Page_Load(object sender, System.EventArgs e)
{
    // проверка прав на просмотр таблицы
    if (!ListDataSource.CheckAccessRight(V8Rights.View))
    {
        V8WebUtil.RegisterShowErrorScript( _1C.V8.Data.V8.GetString("err_accessRightViolation"), this, true);
        Response.End();
        return;
    }

    if (!IsPostBack)
        Title = ListDataSource.TableInfo.Presentation;

    ListDataSource.WhereClause = "Предприятие.Код=7";
}

DaMa:
Стоит задача. При вводе номенклатуры ( в поле ввода табличной части документа "Заказ покупателя") необходимо, чтобы при вводе первых букв наименования, выпадал список номенклатуры, но не всей, а группы "Одежда".       
т.е. есть Справочник Номенклатура, в котором есть папки Одежда, Ткань... В папке Одежда есть еще  вложенные папки. Делаю так. Создала новую форму Номенклатуры. Указываю в файле  TableFormMap.xml на эту форму.
Какой фильтр необходимо использовать для этого случая? Пробую:

 private void Page_Load(object sender, System.EventArgs e)
    {
        // проверка прав на просмотр таблицы
        if (!ListDataSource.CheckAccessRight(V8Rights.View))
        {
            V8WebUtil.RegisterShowErrorScript( _1C.V8.Data.V8.GetString("err_accessRightViolation"), this, true);
            Response.End();
            return;
        }

        if (!IsPostBack)
            Title = ListDataSource.TableInfo.Presentation;
        V8Filter filter = null;
        filter = ListDataSource.Filter["Родитель"];
        filter.Checked = true;
        filter.Condition = V8FilterCondition.Equal;
        filter.ValueType1 = ListDataSource.Metadata.TypesInfo["string"];
        filter.Value1 = "Одежда";
        filter.Visible = true;
        Grid.Refresh();
   }
}

 filter.Condition = V8FilterCondition.Equal или  filter.Condition = V8FilterCondition.inGroup? и при выборе элемента справочника вообще фильтр пока работал при нажатии кнопки Select (вызова формы справочника).
Очень жду комментариев. Заранее спасибо!

DaMa:
С контрагентами идея хорошая.
Сейчас с выпадающим меню работает. Оказалось действительно просто- стрелочкой вниз))
И еще поставить в свойствах колонок табличной части в параметре UseListChoise поставить значение False ( у меня стояло True).
Спасибо!

iPRG Team:
Этот фильтр который вызывается по нажатию на кнопку "вниз" в табличной части, похоже фильтрует только одним способом "с начала строки" и без учета иерархии. У меня например как раз в табличной части выбираются контрагенты. В базе 1С конрагенты разбиты по папкам, есть контрагенты с одинаковыми именами, но находятся в разных папках, так вот если пользоваться этим быстрым методом выбора по кнопке "вниз", то у меня отображаются несколько одинаковых контрагентов, и кто из них кто непонятно. Пока что, другого варианта я пока не придумал как можно быстрее выбирать контрагентов и чтобы пользователи не ошибались. И в варианте с фильтром который я описал, сверху есть кнопка "Иерархически", можно ее нажимать чтобы показать или убрать иерархию.

DaMa:
Уважаемый admin, имею ввиду метод, изображенный на рисунке.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии