Языки программирования > WEB-Расширение для "1С:Предприятие 8.0, 8.1" (v8)
Выбор значения из выпадающего списка
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, имею ввиду метод, изображенный на рисунке.
Навигация
Перейти к полной версии