Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка при выводе отчета

Ошибка при выводе отчета
Я
   k_aleks80
 
16.11.18 - 19:25
Приветствую.

В наличии - простой отчет.
Есть 2 поля группировки. При снятии галки в настройках с 1-го - падает ошибка: Поле объекта не обнаружено (ТекстЗапроса).

Вижу проблему в процедуре ПриКомпоновкеРезультата().

После выполнения строки кода:
<code>МакетКомпоновки = КомпоновщикМакета.Выполнить(
        СхемаКомпоновкиДанных,
        КомпоновщикНастроек.Настройки,
        ДанныеРасшифровки
    );</code>

в МакетКомпоновки.НаборыДанных.ТекстЗапроса ничего нет.
Подскажите, куда копать?
 
 
   k_aleks80
 
1 - 16.11.18 - 19:27
В СхемеКомпоновкиДанных запрос есть.
Как я понимаю проблема с настройками компоновщика.
   palsergeich
 
2 - 16.11.18 - 19:36
(1)
Первое что надо делать при любых проблемах с СКД - переоткрыть окно приложения и конфигуратор
Второе - если отчет простой - сделать новый и собрать его заново, не забудь поменять имя отчета, это позволит исключить кэш.
Третье - версия платформы в которой разрабатываешь и в которой смотришь идентична?
   k_aleks80
 
3 - 16.11.18 - 19:45
Ок, попробую.
   k_aleks80
 
4 - 19.11.18 - 01:01
1) переоткрывание - не помогло;
2) сделал отчет заново (с изменением имени) - не помогло;
3) версии идентичны (8.3.10).
   k_aleks80
 
5 - 19.11.18 - 01:15
интересная закономернность (в режиме предприятие, при настройки отчета, поля группировки):

1) при таком варианте ( см. галки использования) - данные выводятся:
V День
V Ссылка

2) а при таком - нет.
  День
V Ссылка
   Franchiser
 
6 - 19.11.18 - 01:19
Зачем компоновку программно делаешь?
Наверняка намудрил что-нибудь с пользовательскими настройками
   k_aleks80
 
7 - 19.11.18 - 01:37
Спасибо за наводку, добрый человек.

-> Вот так отрабатывает:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт
    
    ОтчетыСервер.ВывестиОтчет(ЭтотОбъект, СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка);
КонецПроцедуры;


-> а вот так - уже нет:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт
    
    СтандартнаяОбработка = Ложь;
    ДокументРезультат.Очистить();
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(
        СхемаКомпоновкиДанных,
        КомпоновщикНастроек.Настройки,
        ДанныеРасшифровки
    );
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.НачатьВывод();
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
    ПроцессорВывода.ЗакончитьВывод();
    
    ВывестиДиаграммы(ДокументРезультат); 
КонецПроцедуры
   Franchiser
 
8 - 19.11.18 - 01:50
1. Что есть СхемаКомпоновкиДанных ? Где это определено?
2. Чтобы получить настройки с наложенным пользовательскими используется метод ПолучитНастройки(), а у тебя этого нет.
   Franchiser
 
9 - 19.11.18 - 01:56
Тут вообще в коде ничего нет про пользовательские настройки: они и не устанавливаются отдельно (ЗагрузитьПользовательскиеНастройки()) и не накладываются через ПооучитьНастройки()
   Franchiser
 
10 - 19.11.18 - 01:57
Что такое ВывестиДиаграммы()?
Это твой код?
 
 Рекламное место пустует
   k_aleks80
 
11 - 19.11.18 - 02:08
(8)


1) Схема - это схема и есть.
 Стек вызова:    ОбщийМодуль.ОтчетыСервер.Модуль.СформироватьОтчет(ОтчетОбъект, ТабличныйДокумент, СхемаКомпоновки = Неопределено, КомпоновщикНастроек = Неопределено, Заголовок = "", ДанныеРасшифровки = Неопределено, УникальныйИдентификатор = Неопределено) ->     Отчет.Взаимодействия.МодульОбъекта.ПриКомпоновкеРезультата(...)

Соответственно схема приезжает из СформироватьОтчет(), там такой код:

...

Если НЕ СхемаКомпоновки = Неопределено Тогда
        ОтчетОбъект.СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(СхемаКомпоновки);
    КонецЕсли;
...

2) не помогло((
   k_aleks80
 
12 - 19.11.18 - 02:11
(10) формируются и выводятся несколько видов диаграмм.
На ошибку не влияют. Комментил. Результат тот же.

Код не мой. Исправляю ошибку. Точнее пока разбираюсь.
   k_aleks80
 
13 - 19.11.18 - 09:59
Спецы по СКД, ткните куда копать.
   k_aleks80
 
14 - 19.11.18 - 11:54
Победил. Все оказалось просто.
Такой код отрабатывает верно:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) Экспорт
    ОтчетыСервер.ВывестиОтчет(ЭтотОбъект, СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка);
    ВывестиДиаграммы(ДокументРезультат);  
КонецПроцедуры

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует