|
Сохранение отбора в колонке таблицы значений 1с8 Толстый клиент | ☑ | ||
---|---|---|---|---|
0
Vanyok
28.01.16
✎
07:29
|
Всех приветствую!
Задача сохранять отбор в таблице значений. Для примера кинул на форму таблицу, добавил колонку с типом "Отбор". Изменяю процедуру "НачалоВыбора" чтобы в отбор попали нужные нам поля. Процедура ТабличноеПоле1КолонкаОтборНачалоВыбора(Элемент, СтандартнаяОбработка) ДоступныеПоляОтбора = Элемент.Значение.ПолучитьДоступныеПоля(); Поле = ДоступныеПоляОтбора.Добавить("Контрагент", "Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); Поле.Отбор = Истина; Поле = ДоступныеПоляОтбора.Добавить("Номенклатура", "Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); Поле.Отбор = Истина; Элемент.Значение.УстановитьДоступныеПоля(ДоступныеПоляОтбора); КонецПроцедуры Сделал как в СП, при изменении значения отбора в ячейке появляются поля для отбора с типами СправчникКонтрагенты и СправочникНоменклатура, но в этом случае нет возможности использовать их реквизиты, доступна только ссылка. Как сделать, чтобы была возможность выбора реквизитов справочников, как если бы мы использовали Построитель отчёта и его отбор? Пробовал вариант с построителем, из него получал доступные поля, потом устанавливал в Элемент.Значение, но эффекта никакого, поля вообще не появляются. |
|||
1
cw014
28.01.16
✎
08:14
|
С таблицей такого сделать нельзя. Как вариант, делать выборку по условиям отбора, а ссылки подставлять в отбор списка
|
|||
2
cw014
28.01.16
✎
08:15
|
Или же использовать построитель запроса, а результат выгружать в таблицу значений
|
|||
3
Vanyok
28.01.16
✎
08:46
|
Может есть какая-та возможность установить источник данных к колонке с Отбором?
|
|||
4
cw014
28.01.16
✎
08:49
|
(3) Читай (1)
|
|||
5
FIXXXL
28.01.16
✎
09:23
|
>как если бы мы использовали Построитель отчёта и его отбор
ну и используй построитель, результат которого (ссылки) уже используй как отбор для ТЗ |
|||
6
cw014
28.01.16
✎
09:44
|
(5) А не проще ли результат таблицы использовать источником основной таблицы?
|
|||
7
FIXXXL
28.01.16
✎
09:46
|
(6) задачу надо видеть, может и проще
|
|||
8
Vanyok
28.01.16
✎
10:16
|
(7) В кратце:
Есть общий справочник Номенклатура со своей иерархией. Надо сделать таблицу с группами товаров и привязать к ним отборы по этой номенклатуре. Запрос сделаем один большой, к нему будем применять отборы. Например: Наименование - "Детские товары" Отбор - "Номенклатура в группе такой-то и такой-то" Наименование - "Дешёвые товары" Отбор - "Цена номенклатуры < 1000руб." Наименование - "Дорогие мужские брюки" Отбор - "Номенклатура в группе брюки, Номенклатура.Пол=муж, ЦенаЮ10000руб." Т.о., если у нас появляется какой-то товар с ценой меньше 1000руб., он автоматически будет попадать в отбор "Дешёвые товары", потом он подорожал - уже в эту группу не попадает. |
|||
9
Vanyok
29.01.16
✎
10:00
|
Решение:
В качестве построителя отчёта используем реквизит формы. Код: ПостроительОтчёта.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка = NULL"; ПостроительОтчёта.ЗаполнитьНастройки(); ПоляОтбора = ПостроительОтчёта.Отбор.ПолучитьДоступныеПоля(); Элемент.Значение.УстановитьДоступныеПоля(ПоляОтбора); |
|||
10
Vanyok
29.01.16
✎
10:01
|
Код для той же процедуры, что в описании вопроса
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |