1С 8.3 : Табличная часть
Как настроить отбор строк?
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство:
ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью.
Управляемые формы
или такой динамический отбор
Обычные формы
Использовать его очень просто:
А теперь конкретные примеры:
Подчиненные табличные части в 8.х
В событии ПриАктивизацииСтроки для первого табличного поля пишем:
При добавлении новой строки во вторую табличную часть, нужно следить за тем, чтобы идентификационная колонка была установлена.
Обращаю ваше внимание, что при таком отборе не используются индексы и для больших табличных частей возможно замедление работы.
Еще раз напомню, что ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.
Похожие FAQ
Еще в этой же категории
отбор в динамическом списке программно 2
Для установки отбора в динамическом списке используется свойство Отбор. Добавление нового элемента отбора осуществляется следующим образом: ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»)); Для того чтобы новый Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Отбор строк в табличной части
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью.
Если в первом случае вопросов возникнуть не должно, то по второму распишу подробнее.
Предположим есть табличная часть «Товары» с колонками:
и нам требуется сделать отбор всех стульев в колонке «Наименование».
Наименование | Характеристика | Количество | Цена | Сумма |
---|---|---|---|---|
Стул | Красный | 5 | 100 | 500 |
Стол | Стеклянный | 1 | 200 | 200 |
Стул | Зеленый | 2 | 150 | 300 |
Отбор получится такой:
включает отбор по колонке «Наименование». Если установить значение «Ложь», то отбор будет снят. Если бы мы делали отбор не программно, а через фильтры, то установка галочки напротив названия колонки как раз аналогично этой строке кода:
отвечает за способ сравнения. Может принимать следующие значения:
устанавливает значение по отбора. В нашем случае это товар из справочника номенклатура.
Если бы значений в табличной части было больше и потребовалось бы отобрать стулья и столы, то ВидСравнения был бы равен «В списке», а значение — список значений.
Второй вариант короче, но первый для меня более наглядный.
ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.
Если понадобилось перебрать строки, вошедшие в отбор, то это можно сделать, только заново перебрав все строки и проверив условие отбора для каждой строки. Перебрать строки табличного поля, которые сейчас на экране — невозможно.
Отбор строк в табличной части
Добрый день! Кто знает как можно при открытии управляемой формы, в табличной части задать множественный отбор?
По одному значению получается:
Элементы.Выплаты.ОтборСтрок = Новый ФиксированнаяСтруктура(«Отдел», Отдел);
А вот как задать отбор по нескольким отделам?
Такой вариант не срабатывает:
(6) alljoke, Я задаю отбор в табличной части при открытии формы документа. В обоих случаях выдается, что к отбору обратиться нельзя
Поле объекта не обнаружено (Отбор)
1) ГруппаОтбора = Объект.Выплаты.Отбор.Элементы.Добавить(Тип(«ГруппаЭлементовОтбораКомпоновкиДанных»));
2) ГруппаОтбора = Элементы.Выплаты.Отбор.Элементы.Добавить(Тип(«ГруппаЭлементовОтбораКомпоновкиДанных»));
В форме списка такой отбор можно задать, но у меня Форма документа. И в ней табличная часть «Выплаты» с колонкой «Отдел».
Тип этой табличной части отображается как «(ДокументТабличнаяЧасть.Расчеты.Выплаты)».
Когда я по вашему варианту пытаюсь напрямую обратиться к ТЧ «Выплаты», выдается ошибка:
Переменная не определена (Выплаты)
ГруппаОтбора = >Выплаты.Отбор.Элементы.Добавить(Тип(«ГруппаЭлементовОтбораКомпоновкиДанных»));
(11)Можно поподробее. Как с помощью условного оформления отобрать?
Есть, например таб часть Товары. В ней реквизиты:
— Наименование (Строка);
— Просроченный (Булево);
— Иностранный(Булево);
— Деревянный(Булево);
— Уцененный(Булево);
Как сделать, чтобы отображались только Просроченный и уцененный
Пробовал Элементы.Товары.ОтборСтрок = Новый ФиксированнаяСтруктура(«Просроченный»,»Уцененный», Истина, Истина); Не работает
Пробовал Элементы.Товары.ОтборСтрок = Новый ФиксированнаяСтруктура(«Просроченный», Истина); Работает, показывает только Просроченные
Как сделать чтоб в таб части документа отбирал по нескольким реквизитам?
1С 8.x : Табличная часть
Как настроить отбор строк?
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство:
ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью.
Управляемые формы
или такой динамический отбор
Обычные формы
Использовать его очень просто:
А теперь конкретные примеры:
Подчиненные табличные части в 8.х
В событии ПриАктивизацииСтроки для первого табличного поля пишем:
При добавлении новой строки во вторую табличную часть, нужно следить за тем, чтобы идентификационная колонка была установлена.
Обращаю ваше внимание, что при таком отборе не используются индексы и для больших табличных частей возможно замедление работы.
Еще раз напомню, что ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.
Похожие FAQ
Еще в этой же категории
Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора
Как ограничить список выбора? 8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Реквизит
Табличная часть
Как настроить отбор строк?
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство:
ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью.
Управляемые формы
или такой динамический отбор
Обычные формы
Использовать его очень просто:
А теперь конкретные примеры:
Подчиненные табличные части в 8.х
В событии ПриАктивизацииСтроки для первого табличного поля пишем:
При добавлении новой строки во вторую табличную часть, нужно следить за тем, чтобы идентификационная колонка была установлена.
Обращаю ваше внимание, что при таком отборе не используются индексы и для больших табличных частей возможно замедление работы.
Еще раз напомню, что ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.
Похожие FAQ
Еще в этой же категории
Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора