Имя: Пароль:
1C
1С v8
отбор по категориям справочника Номенклатура
0 181023
 
21.02.14
09:07
всем привет
пишу обработку на построителе отчетов. пытаюсь настроить фильтр по категориям. текст модуля:


ТекстЗапроса ="ВЫБРАТЬ              
|      ПродажиОбороты.Номенклатура,              
|      ПродажиОбороты.Контрагент,              
|      ПродажиОбороты.ДоговорКонтрагента,              
| ПродажиОбороты.СтоимостьОборот      
|//СВОЙСТВА      
|//КАТЕГОРИИ        
|{ВЫБРАТЬ              
|      Номенклатура.*,              
|      Контрагент.*,              
|      ДоговорКонтрагента.*,              
| СтоимостьОборот      
|//СВОЙСТВА      
|//КАТЕГОРИИ        
|}              
|ИЗ              
|      РегистрНакопления.Продажи.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, , ) КАК ПродажиОбороты        
|//СОЕДИНЕНИЯ        
|{ГДЕ              
|      ПродажиОбороты.Номенклатура.*,              
|      ПродажиОбороты.Контрагент.*,              
|      ПродажиОбороты.ДоговорКонтрагента.*        
|//СВОЙСТВА        
|//КАТЕГОРИИ}";              


НастройкаОтчета = Построитель.ПолучитьНастройки(Истина, Истина, Истина, Истина);
Если ПустаяСтрока(ТекстЗапроса) = Ложь Тогда        
      Построитель.Текст = ТекстЗапроса;
КонецЕсли;
СтруктураПредставлениеПолей = Новый Структура;        
СоответствиеНазначений = Новый Соответствие;


ТаблицаПолей = Новый ТаблицаЗначений;        
ТаблицаПолей.Колонки.Добавить("ПутьКДанным");  // описание поля запроса поля, для которого добавляются свойства и категории. Используется в условии соединения с регистром сведений, хранящим значения свойств или категорий        
ТаблицаПолей.Колонки.Добавить("Представление");// представление поля, для которого добавляются свойства и категории.          
ТаблицаПолей.Колонки.Добавить("Назначение");   // назначение свойств/категорий объектов для данного поля        
//ТаблицаПолей.Колонки.Добавить("ТипЗначения");  // тип значения поля, для которого добавляются свойства и категории. Используется, если не установлено назначение        
ТаблицаПолей.Колонки.Добавить("НетКатегорий"); // признак НЕиспользования категорий для объекта                


ТекстПоляКатегорий = "";        
ТекстПоляСвойств = "";                
ТаблицаПолей.Очистить();                


НоваяСтрока = ТаблицаПолей.Добавить();      
НоваяСтрока.ПутьКДанным = "ПродажиОбороты.Номенклатура";        
НоваяСтрока.Представление = "Номенклатура";      
НоваяСтрока.Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура;       //НоваяСтрока.НетКатегорий = Ложь;                


ТекстЗапроса = Построитель.Текст;
УправлениеОтчетами.ДобавитьВТекстСвойстваИКатегории(ТаблицаПолей, ТекстЗапроса, СтруктураПредставлениеПолей, СоответствиеНазначений, Построитель.Параметры,, ТекстПоляКатегорий, ТекстПоляСвойств,, "//СВОЙСТВА", "//КАТЕГОРИИ", "//СОЕДИНЕНИЯ", , мСтруктураДляОтбораПоКатегориям);        


Построитель.Текст = ТекстЗапроса;                
УправлениеОтчетами.УстановитьТипыЗначенийСвойствИКатегорийДляОтбора(Построитель, ТекстПоляКатегорий, ТекстПоляСвойств, СоответствиеНазначений, СтруктураПредставлениеПолей);        


УправлениеОтчетами.ЗаполнитьПредставленияПолей(СтруктураПредставлениеПолей, Построитель);

Построитель.УстановитьНастройки(НастройкаОтчета, Истина, Истина, Истина, Истина);  

в отбор добавляются свойства. а почему нет категорий?
1 181023
 
21.02.14
11:15
Up
2 181023
 
24.02.14
06:30
Up
3 echo77
 
24.02.14
06:51
Проверь еще раз комментарии в тексте запроса. Посмотри как они поставлены в типовых отчетах
4 181023
 
25.02.14
06:58
Получилось но немного не то, что хотел. необходимо реализовать отбор по категориям как, например, в отчете "Продажи" . т.е. по признаку, установлена ли галочка(рис 1: https://www.dropbox.com/s/2fauscvw6fdnj9o/1.png). в запросе кот я описал, я могу выбраь только саму категорию(рис 2: https://www.dropbox.com/s/lz9j6b2jmrwyzds/2.png). как реализовать отбор, как на рис 1?
5 181023
 
25.02.14
14:18
прошу вас, не надо стесняйться, помогите рассуждениями)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс