Имя: Пароль:
1C
1С v8
Web сервис не видит "Метод объекта"
, ,
0 Radzhab
 
24.04.19
10:20
Создал простенький метод для веб-сервиса. Вне веб-сервиса(внешняя обработка) все работает корректно. А тут когда вызываю пишет ошибку - Метод объекта не обнаружен (СформироватьОтчет)"

Функция HelloBaza(username, date)
ОтчетРасчетныеЛисткиОрганизаций = Отчеты.РасчетныеЛисткиОрганизаций.Создать();
    
    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "НачалоПериода", НачалоМесяца(date));
    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "КонецПериода", КонецМесяца(date));
    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "Группировать", Ложь);
    ТиповыеОтчеты.УстановитьПараметр(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "ВидРасчетногоЛистка", "Для сотрудника");
    ТиповыеОтчеты.ДобавитьОтбор(ОтчетРасчетныеЛисткиОрганизаций.КомпоновщикНастроек, "ФизЛицо", username);
    
    ТабличныйДокументРасчетныйЛисток = Новый ТабличныйДокумент;
    ОтчетРасчетныеЛисткиОрганизаций.СформироватьОтчет(ТабличныйДокументРасчетныйЛисток);
    
    ИмяФайла = СокрЛП(username.Наименование);
    КаталогФайла = КаталогВременныхФайлов();
    
    ТекИмяФайла = КаталогФайла + ИмяФайла + ".xls";
    ТабличныйДокументРасчетныйЛисток.Записать(ТекИмяФайла, ТипФайлаТабличногоДокумента.XLS);
    
    //BASE64
    ВременныйФайл = ТекИмяФайла;          
    ДД_Файла = Новый ДвоичныеДанные(ВременныйФайл);
    СтрокаBase64 = Base64Строка(ДД_Файла);
    
    УдалитьФайлы(ВременныйФайл);
    
    Возврат СтрокаBase64;
КонецФункции

Вот кусок метода СформироватьОтчет

Функция СформироватьОтчет(Результат, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = ложь, ВыводитьПоСтраницам = ложь) Экспорт
    
    #Если ТолстыйКлиентОбычноеПриложение Тогда
        СохранитьНастройкуТабличногоДокумента(Результат);
    #КонецЕсли
    
    Если ДанныеРасшифровки = Неопределено тогда
        ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КонецЕсли;
    
    НастрокаПоУмолчанию        = КомпоновщикНастроек.ПолучитьНастройки();
    ТиповыеОтчеты.ПолучитьПримененуюНастройку(ЭтотОбъект);
    
    ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Группировать"));
    
    Если ЗначениеПараметра.Использование и НЕ ЗначениеПараметра.Значение тогда
        УдалитьГруппировку();
    КонецЕсли;
    
    // Получить настройки схемы компоновки данных
    Настройки = КомпоновщикНастроек.Настройки;
1 Radzhab
 
24.04.19
10:21
ps. Как тут форматировать код?
2 ptiz
 
24.04.19
10:26
(0) Ищи конструкции вида #Если .... выше процедуры СформироватьОтчет().
3 Radzhab
 
24.04.19
10:28
#Если ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение тогда
4 Radzhab
 
24.04.19
10:28
5 Жан Пердежон
 
24.04.19
10:32
ну так вынеси её оттуда
6 Nuobu
 
24.04.19
10:34
(4) ИЛИ Сервер
7 Radzhab
 
24.04.19
10:38
(6) Теперь ругается на другой кусок кода)
Значение не является значением объектного типа (Наименование)"

ИмяФайла = СокрЛП(username.Наименование); // что то тут ему не нравится
8 Жан Пердежон
 
24.04.19
10:40
вангую, username у тебя - строка
могу также научить пользоваться отладчиком (дорого)
9 Mankubus
 
24.04.19
10:45
(1) справку читал? там все есть https://1cers.ru/about.php#newtopic
10 Radzhab
 
24.04.19
11:30
(9) да читал

теперь такая ошибка
Процедура или функция с указанным именем не определена (ВосстановитьЗначение)
11 Radzhab
 
24.04.19
13:50
Короче исправил все что можно) Остался один момент

Ошибка при установке значения атрибута контекста (Значение)

ПостроительОтчетов.Отбор[Имя].Значение = ЭлементОтбора.ПравоеЗначение;

Вот из отладчика данные
https://snag.gy/L3oxgw.jpg
https://snag.gy/Xy0mLT.jpg
12 Nuobu
 
24.04.19
13:52
(11) Так там строка, а там - физлицо!