Имя: Пароль:
1C
1С v8
Значение не является значением объектного типа (ПолучитьОбласть)
0 dft2014
 
09.06.18
18:27
При формировании отчета выходит ошибка:
Значение не является значением объектного типа (ПолучитьОбласть)

Подскажите, как это побороть? Ниже кусочек кода:


&НаСервере
Процедура ПросмотретьНаСервере()
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("День");
    ТЗ.Колонки.Добавить("Месяц");
    
    ТекДат = НачалоДня(Отчет.Дата1);
    
    Пока ТекДат <= НачалоДня(Отчет.Дата2) Цикл
        НовСтр = ТЗ.Добавить();
        НовСтр.День = ТекДат;
        НовСтр.Месяц = Месяц(ТекДат);
        
        ТекДат = ТекДат+86400;
    КонецЦикла;
    
    НовТабДок = Новый ТабличныйДокумент;    
    Макет = Отчет.РеквизитМакет;
    
    Шапка = Макет.ПолучитьОбласть("Шапка");
    НовТабДок.Вывести(Шапка);
    
    Для Каждого СтрокаТЗ Из ТЗ Цикл
        СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ");
        СтрокаТЧ.Параметры.День = ТЗ.День;
        НовТабДок.Вывести(СтрокаТЧ);
    КонецЦикла;
    
КонецПроцедуры
1 mehfk
 
09.06.18
19:15
>> Подскажите, как это побороть?
Ты программист или как?
2 dft2014
 
09.06.18
19:18
(1) начинается...
Да, я программистка
3 hhhh
 
09.06.18
19:20
(0) вот это очень странное выражение

   Макет = Отчет.РеквизитМакет;

присмотритесь к нему. Похоже вы в Макет какую-то фигню грузите.
4 mehfk
 
09.06.18
19:25
(2) Проверяй тип в отладчике Отчет.РеквизитМакет
5 dft2014
 
11.06.18
19:24
(3), (4) Отчет.РеквизитМакет в отладчике Неопределенно почему-то?!
6 dft2014
 
11.06.18
19:39
Разобралась! Надо было написать:

НовТабДок = Новый ТабличныйДокумент;
    Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    НовТабДок.Вывести(Шапка);