|   |   | 
| 
 | Ошибка при выводе отчета | ☑ | ||
|---|---|---|---|---|
| 0
    
        k_aleks80 16.11.18✎ 19:25 | 
        Приветствую.
 В наличии - простой отчет. Есть 2 поля группировки. При снятии галки в настройках с 1-го - падает ошибка: Поле объекта не обнаружено (ТекстЗапроса). Вижу проблему в процедуре ПриКомпоновкеРезультата(). После выполнения строки кода: <code>МакетКомпоновки = КомпоновщикМакета.Выполнить( СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки );</code> в МакетКомпоновки.НаборыДанных.ТекстЗапроса ничего нет. Подскажите, куда копать? | |||
| 1
    
        k_aleks80 16.11.18✎ 19:27 | 
        В СхемеКомпоновкиДанных запрос есть.
 Как я понимаю проблема с настройками компоновщика. | |||
| 2
    
        palsergeich 16.11.18✎ 19:36 | 
        (1) 
 Первое что надо делать при любых проблемах с СКД - переоткрыть окно приложения и конфигуратор Второе - если отчет простой - сделать новый и собрать его заново, не забудь поменять имя отчета, это позволит исключить кэш. Третье - версия платформы в которой разрабатываешь и в которой смотришь идентична? | |||
| 3
    
        k_aleks80 16.11.18✎ 19:45 | 
        Ок, попробую.     | |||
| 4
    
        k_aleks80 19.11.18✎ 01:01 | 
        1) переоткрывание - не помогло;
 2) сделал отчет заново (с изменением имени) - не помогло; 3) версии идентичны (8.3.10). | |||
| 5
    
        k_aleks80 19.11.18✎ 01:15 | 
        интересная закономернность (в режиме предприятие, при настройки отчета, поля группировки):
 1) при таком варианте ( см. галки использования) - данные выводятся: V День V Ссылка 2) а при таком - нет. День V Ссылка | |||
| 6
    
        Franchiser 19.11.18✎ 01:19 | 
        Зачем компоновку программно делаешь?
 Наверняка намудрил что-нибудь с пользовательскими настройками | |||
| 7
    
        k_aleks80 19.11.18✎ 01:37 | 
        Спасибо за наводку, добрый человек.
 -> Вот так отрабатывает: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт ОтчетыСервер.ВывестиОтчет(ЭтотОбъект, СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка); КонецПроцедуры; -> а вот так - уже нет: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт СтандартнаяОбработка = Ложь; ДокументРезультат.Очистить(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить( СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки ); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); ПроцессорВывода.ЗакончитьВывод(); ВывестиДиаграммы(ДокументРезультат); КонецПроцедуры | |||
| 8
    
        Franchiser 19.11.18✎ 01:50 | 
        1. Что есть СхемаКомпоновкиДанных ? Где это определено?
 2. Чтобы получить настройки с наложенным пользовательскими используется метод ПолучитНастройки(), а у тебя этого нет. | |||
| 9
    
        Franchiser 19.11.18✎ 01:56 | 
        Тут вообще в коде ничего нет про пользовательские настройки: они и не устанавливаются отдельно (ЗагрузитьПользовательскиеНастройки()) и не накладываются через ПооучитьНастройки()     | |||
| 10
    
        Franchiser 19.11.18✎ 01:57 | 
        Что такое ВывестиДиаграммы()?
 Это твой код? | |||
| 11
    
        k_aleks80 19.11.18✎ 02:08 | 
        (8)
 1) Схема - это схема и есть. Стек вызова: ОбщийМодуль.ОтчетыСервер.Модуль.СформироватьОтчет(ОтчетОбъект, ТабличныйДокумент, СхемаКомпоновки = Неопределено, КомпоновщикНастроек = Неопределено, Заголовок = "", ДанныеРасшифровки = Неопределено, УникальныйИдентификатор = Неопределено) -> Отчет.Взаимодействия.МодульОбъекта.ПриКомпоновкеРезультата(...) Соответственно схема приезжает из СформироватьОтчет(), там такой код: ... Если НЕ СхемаКомпоновки = Неопределено Тогда ОтчетОбъект.СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(СхемаКомпоновки); КонецЕсли; ... 2) не помогло(( | |||
| 12
    
        k_aleks80 19.11.18✎ 02:11 | 
        (10) формируются и выводятся несколько видов диаграмм.
 На ошибку не влияют. Комментил. Результат тот же. Код не мой. Исправляю ошибку. Точнее пока разбираюсь. | |||
| 13
    
        k_aleks80 19.11.18✎ 09:59 | 
        Спецы по СКД, ткните куда копать.     | |||
| 14
    
        k_aleks80 19.11.18✎ 11:54 | 
        Победил. Все оказалось просто.
 Такой код отрабатывает верно: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт ОтчетыСервер.ВывестиОтчет(ЭтотОбъект, СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка); ВывестиДиаграммы(ДокументРезультат); КонецПроцедуры | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |