|
8.2 Отчет, как обратиться к отбору? |
☑ |
0
Надежда25
22.05.13
✎
14:15
|
Здравствуйте!
Отчет сделан на СКД. Форма генерируется автоматически. Отбор в СКД не указан, но на экране он есть. Есть и при выборе: Все действия - Настройка. Не пойму откуда он взялся (манипуляций было много). Мне, правда, он и нужен. Просто удивляюсь.
Вопрос: как к нему обратиться программно, узнать, что сделал в отборе пользователь?
|
|
1
asady
22.05.13
✎
14:21
|
(0)
ТвойОтборВОтчетеНаСКД = КомпоновщикНастроек.Настройки.Отбор;
|
|
2
Надежда25
22.05.13
✎
15:09
|
Спасибо. А как можно определить, что такое-то поле присутствует в отборе?
Так не получилось:
Отбор = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора;
Для Каждого Элемент Из Отбор.Элементы Цикл
Если Элемент.ЛевоеЗначение = "Январь" И Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено Тогда
КонецЕсли;
|
|
3
Конфигуратор1с
22.05.13
✎
15:12
|
(2) Процедура УдалитьОтборСписка(Список,ПолеОтбора) Экспорт
Отборы = Список.Отбор.Элементы;
ТекущийОтбор = Новый ПолеКомпоновкиДанных(ПолеОтбора);
Для Каждого ЭлементОтбора Из Отборы Цикл
Если ЭлементОтбора.ЛевоеЗначение = ТекущийОтбор Тогда
Отборы.Удалить(ЭлементОтбора);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
4
Конфигуратор1с
22.05.13
✎
15:13
|
Список = КомпоновщикНастроек.Настройки.
ПолеОтбора - имя отбора строкой
|
|
5
Надежда25
22.05.13
✎
15:33
|
В процедуре модуля отчета ПриКомпоновкеРезультата пишу:
Список = КомпоновщикНастроек.Настройки;
Отбор = Список.Отбор.Элементы;
Для Каждого ЭлементОтбора Из Отбор Цикл
Если ЭлементОтбора.ЛевоеЗначение = "Январь" Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "В отборе выбран Январь";
Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
|
|
6
Надежда25
22.05.13
✎
16:42
|
Ничего не происходит, в смысле не работает.
|
|
7
Конфигуратор1с
22.05.13
✎
21:55
|
(6) естественно. У вас отбор с текстовым полем январь? И зачем при компоновке. Это делать надо до компоновки
|
|
8
a_alenkin
22.05.13
✎
23:23
|
а чу еще никто не подсказал что фотография в личке на 90 процентов повышает шанс получить быструю и правильную подсказку?
|
|
9
zippygrill
22.05.13
✎
23:31
|
Сколько элементов у тебя в Отборе и что говорит отладчик на это "ЭлементОтбора"?
|
|
10
Конфигуратор1с
22.05.13
✎
23:40
|
(7) ой, не доглядел. В Общем Надежда, в отборе в скд грубо говоря есть три колонки - левое значение правое значение и вид сравнения. так вот в левом значении находится поле компоновки данных. К примеру есть скд - выборка из запроса где товар и количество. Товар поле группировки, количество ресурс. Вы в отборе хотите задать отбор номенклатуры. Так вот слева у вас будет поле компоновки Номенклатура, справа значение отбора. Поле компоновки задается не как текст "Номенклатура", а как поле компоновки данных - Товар = Новый Полекомпоновкиданных("Номенклатура");
И проверяете левое значение не на соответствеи "Номенклатура", а товар.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший