Имя: Пароль:
1C
1С v8
Универсальный отчет
0 Rastaman55
 
11.11.16
10:50
Видоизменяю универсальный отчет. Изначально были группировки строк только по контрагентам
ОтчетОстатки.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Контрагент");

Хочу теперь добавить группировку по свойству контрагента -ОтветственныйЗаПлатежи. В случае с реквизитом все просто просто пишется например:
ОтчетОстатки.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Контрагент.Наименование");
А как свойство прописать немогу понять.
1 torgm
 
11.11.16
10:57
(0) Насколько помню "свойство" + гуид.
Посмотри в модуле любого отчета где формируются соединения по свойствам. Там все просто
2 torgm
 
11.11.16
11:01
Если тупо то поставь отладчик на сформировать и посмотри
измерения как сформированы в построителе

Будет что то типа такого: КонтрагентСвойство46ed21be432911e1a7dd00155d020405Значение



Можно так добавить... Можно гуид посчитать.
ОтчетКонтрагента.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("КонтрагентСвойство46ed21be432911e1a7dd00155d020405Значение",ТипИзмеренияПостроителяОтчета.Элементы);
3 Ёпрст
 
11.11.16
11:03
(0) вообще то , там и так всё есть, в настройках отчета ищи галку "учитывать свойства и категории" и всё само появится, без кодинга.
4 torgm
 
11.11.16
11:04
(3) он программно прописать хочет :)
видимо отчет запускает из другой формы.
5 Rastaman55
 
11.11.16
12:17
Проставил галочки в настройках отчета и по отладчику выяснил что добавляются в запрос отчета такие  поля

    КонтрагентСвойство392584bb9ca211e49e1b0015172a9709.Значение КАК КонтрагентСвойство392584bb9ca211e49e1b0015172a9709Значение,
    ПРЕДСТАВЛЕНИЕ(КонтрагентСвойство392584bb9ca211e49e1b0015172a9709.Значение) КАК КонтрагентСвойство392584bb9ca211e49e1b0015172a9709ЗначениеПредставление

и там где условие
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК ОрганизацияКатегории
    ПО ОрганизацияКатегории.Объект = Взаиморасчеты.Организация}
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК КонтрагентСвойство392584bb9ca211e49e1b0015172a9709
    ПО КонтрагентСвойство392584bb9ca211e49e1b0015172a9709.Объект = Взаиморасчеты.Контрагент
    И КонтрагентСвойство392584bb9ca211e49e1b0015172a9709.Свойство = &ПараметрКонтрагентСвойство392584bb9ca211e49e1b0015172a9709}

Должно работать но почему то не работает.
ОтчетОстатки.УниверсальныйОтчет.ДобавитьИзмерениеСтроки("КонтрагентСвойство392584bb9ca211e49e1b0015172a9709Значение");
6 Rastaman55
 
11.11.16
12:28
(4) Спасибо, все получилось. Использовать свойства и категории у меня прописывалось после создания запроса оказся.
7 torgm
 
11.11.16
12:49
(6) Если хочешь универсальности то вот формирование поля
            ИмяСвойства = Поле.ИмяИзмерения + "Свойство" + СтрЗаменить(Строка(СвойстваОбъектов.Ссылка.УникальныйИдентификатор()), "-", "");

            // Поля
            ТекстПоляСвойства = ТекстПоляСвойства + ",
            |    " + ИмяСвойства + ".Значение КАК " + ИмяСвойства + "Значение,
            |    ПРЕДСТАВЛЕНИЕ(" + ИмяСвойства + ".Значение) КАК " + ИмяСвойства + "ЗначениеПредставление";





Лежит в
Процедура ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса, ТаблицаПолей = Неопределено, СтруктураПредставлениеПолей = Неопределено, СоответствиеНазначений = Неопределено, Параметры = Неопределено, СоответствиеСвойствКатегорийИИзмерений = Неопределено, СтруктураЗаменять = Неопределено) Экспорт
8 torgm
 
11.11.16
12:51
(7)

ИмяСвойства = Поле.ИмяИзмерения + "Свойство" + СтрЗаменить(Строка(СвойстваОбъектов.Ссылка.УникальныйИдентификатор()), "-", "")+ "Значение"
9 Rastaman55
 
11.11.16
12:59
(8) Да я как раз пошагово отлаживая туда попал и в табло смотрел данные.