Имя: Пароль:
1C
1С v8
СКД Категории и ОТБОР
0 Homer
 
06.06.12
14:38
Делаю отчет в СКД. Есть категория у договора "ВСЕ". Как программно добавить категорию в отбор. Так Не хочет работать:

   мВСЕ = Справочники.КатегорииОбъектов.НайтиПоКоду("000000105");
   Если ЗначениеЗаполнено(мБездоговорноеОбслуживание) Тогда
   мОтбор = КомпоновщикНастроек.Настройки.Отбор.Элементы;
   Нов = мОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   Нов.Использование = Истина;
   Нов.ЛевоеЗначение = мВСЕ ;
   Нов.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;  
   Нов.ПравоеЗначение = Истина;
   КонецЕсли;
1 Homer
 
06.06.12
14:39
Процедура УстановитьОтбор()
   мВСЕ = Справочники.КатегорииОбъектов.НайтиПоКоду("000000105");
   Если ЗначениеЗаполнено(мВСЕ ) Тогда
   мОтбор = КомпоновщикНастроек.Настройки.Отбор.Элементы;
   Нов = мОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   Нов.Использование = Истина;
   Нов.ЛевоеЗначение = мВСЕ ;
   Нов.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;  
   Нов.ПравоеЗначение = Истина;
   КонецЕсли;
КонецПроцедуры
2 kabanoff
 
06.06.12
14:47
Одно из значений отбора должно быть полем компоновки данных.


НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлемент.ПравоеЗначение = Значение;
3 kabanoff
 
06.06.12
14:49
А вообще пользуйся характеристиками СКД.
4 Homer
 
06.06.12
14:50
(3) я и так через характеристики СКД делаю.
5 Homer
 
06.06.12
14:51
СКД вычислило мне Категорию, я хочу ее подставить в отбор.
6 kabanoff
 
07.06.12
10:01
(5) Ну тогда имя поля в (2) должно содержать полный путь к этой категории, например,
"Твой документ.Твоя категория".
7 kabanoff
 
07.06.12
10:05
(6) + если есть пробелы в имени, то не забывай ставить квадратные скобки.
В данном примере: "[Твой документ].[Твоя категория]".