Имя: Пароль:
1C
1С v8
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) ой, не доглядел. В Общем Надежда, в отборе в скд грубо говоря есть три колонки - левое значение правое значение и вид сравнения. так вот в левом значении находится поле компоновки данных. К примеру есть скд - выборка из запроса где товар и количество. Товар поле группировки, количество ресурс. Вы в отборе хотите задать отбор номенклатуры. Так вот слева у вас будет поле компоновки Номенклатура, справа значение отбора. Поле компоновки задается не как текст "Номенклатура", а как поле компоновки данных - Товар = Новый Полекомпоновкиданных("Номенклатура");
И проверяете левое значение не на соответствеи "Номенклатура", а товар.
2 + 2 = 3.9999999999999999999999999999999...