Имя: Пароль:
1C
1С v8
Поле объекта не обнаружено
0 progaoff
 
29.06.17
11:15
Создаю простой отчет, при попытке найти его макет валит
{ВнешнийОтчет.ВидыОплатККМ.Форма.ФормаОтчета.Форма(8)}: Поле объекта не обнаружено (ВидыОплатККМ)
    Макет = ВнешниеОтчеты.ВидыОплатККМ.ПолучитьМакет("Макет");


Это код:
Процедура СформироватьНаСервере()
    ТабДок = Новый ТабличныйДокумент;
    Макет = ВнешниеОтчеты.ВидыОплатККМ.ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
1 Волшебник
 
модератор
29.06.17
11:16
в ошибке ВнешнийОтчет
в коде ВнешниеОтчеты

кто-то где-то врёт
2 Mankubus
 
29.06.17
11:21
макет нужно получать с помощью объекта, который получается  в результате РеквизитФормыВЗначение()
3 aleks_default
 
29.06.17
11:22
ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Макет = ОтчетОбъект.ПолучитьМакетОтчета(ИмяМакета)

И в модуле объекта функция с одной строчкой Возврат ПолучитьМакет(ИмяМакета)
4 progaoff
 
29.06.17
11:42
(3) в модуле?
5 Lexey_
 
29.06.17
12:03
(4) ну не в макете же
6 cw014
 
29.06.17
12:08
Это код:

Это УФ?
7 progaoff
 
29.06.17
14:14
(5) Спасибо, получилось
8 progaoff
 
29.06.17
14:14
КонецПериода = КонецДня(КонецПериода);
    НачалоПериода = НачалоДня(НачалоПериода);

    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Теперь Преобразование значения к типу Дата не может быть выполнено
9 aka AMIGO
 
29.06.17
14:16
Отладчик работает?
10 progaoff
 
29.06.17
14:16
нет
11 progaoff
 
29.06.17
14:18
Значение неопределенно в этих параметрах
12 1dvd
 
29.06.17
14:20
(11) а где ты их заполняешь изначально?
13 progaoff
 
29.06.17
14:22
на форме
14 Мимохожий Однако
 
29.06.17
14:35
(10) включи отладчик
15 progaoff
 
30.06.17
12:29
НаСервере

    Функция ПолучитьМакетНаСервере()
    ОбработкаОбъект = РеквизитФормыВЗначение("Отчет");  // мы получаем именно объект
    Макет = ОбработкаОбъект.ПолучитьМакет("Макет"); // где "макет" - название вашего макета
    Возврат Макет;
КонецФункции


&НаСервере
Процедура СформироватьНаСервере()
    ТабДок = Новый ТабличныйДокумент;
    Макет =  ПолучитьМакетНаСервере();
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЧекККМОплата.ВидОплаты,
        |    ЧекККМОплата.Сумма
        |ИЗ
        |    Документ.ЧекККМ.Оплата КАК ЧекККМОплата
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ КАК ЧекККМ
        |        ПО ЧекККМОплата.Ссылка = ЧекККМ.Ссылка
        |ГДЕ
        |    ЧекККМ.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
        
    КонецПериода = КонецДня(ТекущаяДата());
    НачалоПериода = НачалоДня(ТекущаяДата())+1;

    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
Почему не выводит макет?
16 progaoff
 
30.06.17
12:30
На форме есть  табличный документ но туда не выводит ничего
17 Mankubus
 
30.06.17
12:35
(16) потому что ты выводишь в ТабДок, а не на форму
18 progaoff
 
30.06.17
12:37
(17) можно по подробнее?
19 h-sp
 
30.06.17
12:41
(18) ТабДок.Показать забыл
20 progaoff
 
30.06.17
13:02
(19) а на форму как вывести?
21 progaoff
 
30.06.17
13:04
(19) Показать пишет что не доступен на сервере
22 Mankubus
 
30.06.17
13:06
(20) вместо ТабДок нужно использовать табличное поле, которое отображается на форме
23 Mankubus
 
30.06.17
13:07
(22) ++ посмотри как сделан любой типовой отчет и сделай также
Ошибка? Это не ошибка, это системная функция.