Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Помогите победить ошибку при формировании отчета (http://forums.kuban.ru/f1040/pomogite_pobedit-_oshibku_pri_formirovanii_otcheta-7593209.html)

Sany81 14.03.2016 10:44

Помогите победить ошибку при формировании отчета
 
Добрый день.
У меня по расписанию должен формироваться отчет, любой типовой. По расписанию делаю так:

Отчет=Отчеты[ИмяОтчета].Создать();
ЗаписьЖурналаРегистрации("Формирование отчетов", УровеньЖурналаРегистрации.Примечание, , ,Отчет);
Попытка
Отчет.ВосстановитьНастройкиИзСтруктуры(Настройка);
Исключение
ЗаписьЖурналаРегистрации("Формирование отчетов", УровеньЖурналаРегистрации.Ошибка, , ,ОписаниеОшибки());
КонецПопытки;

Первая запись в журнале говорит: ОтчетОбъект.ВедомостьТоварыНаСкладах
Вторая запись с ошибкой: Метод объекта не обнаружен (ВосстановитьНастройкиИзСтруктуры)

При этом в типовых отчетах присутствует экспортная функция ВосстановитьНастройкиИзСтруктуры.
Почему же ее не видно?
Если же выполнять вышеописанные строки под любым пользователем, то все проходит на ура.

angro 14.03.2016 11:21

(0) ну а под кем эти строки выполняются?

Sany81 14.03.2016 12:24

Регламентные задания от имени администратора

angro 14.03.2016 13:07

в модуле сеанса, может быть не виден этот метод

Sany81 14.03.2016 13:25

В отчете в модуле объекта этот метод есть.
Делаю свой отчет, в него вставляю такой же метод.
Мой отчет проходит нормально без ошибок, типовой ругается что нет такого метода.
Единственное отличие, в типовых отчетах это функция а в самописке - процедура. Но думаю в данном случае это не принципиально.
Так же отличается код самого метода, в типовухе это всего одна строка:
Возврат УниверсальныйОтчет.ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками, ЭтотОбъект);
У меня же это команды для восстановления настроек Компоновщика настроек.

roma n 14.03.2016 14:10

ЗаписьЖурналаРегистрации("Формирование отчетов", УровеньЖурналаРегистрации.Ошибка, , ,ТипЗнч(Отчет));

Sany81 14.03.2016 14:35

(5)
Отчет объект: Ведомость по товарам на складах
и следом:
{Обработка.АвтоматическоеФормированиеОтчетов.МодульОбъекта(59)**: Метод объекта не обнаружен (ВосстановитьНастройкиИзСтруктуры)
Где 59 строка=
Отчет.ВосстановитьНастройкиИзСтруктуры(Настройка);

Sany81 14.03.2016 14:44

Вообще пойду по порядку с самого начала, может кто увидит какую ошибку в моей "писанине"
1 - Создал регламентное задание, имя метода "МойМодуль.ФормированиеОтчетов"
2 - в общем модуле "МойМодуль" (Сервер, Внешне соединение, Клиент обычно приложение, Вызов сервера):
Процедура ФормированиеОтчетов() Экспорт
//Запуск каждые 10 минут
Время=Формат(ТекущаяДата(),"ДФ=ЧЧ:мм");
Обработки.АвтоматическоеФормированиеОтчетов.Создать().СформироватьОтчеты(,Время);
КонецПроцедуры
3 - И наконец обработка АвтоматическоеФормированиеОтчетов. В этой обработке в в процедуре СформироватьОтчеты, сначала запросом вытаскиваю все сохраненные настройки пользователей, которые необходимо сформировать по расписанию в назначенное время. Ну а далее:
Отчет=Отчеты[ИмяОтчета].Создать();
Отчет.ВосстановитьНастройкиИзСтруктуры(Настройка); - тут и выскакивает ошибка что метод ВосстановитьНастройкиИзСтруктуры не найден.

Sany81 14.03.2016 14:47

При этом, если создать внешнюю обработку, на форму кидаем поле ввода "Время", по кнопке Выполнить вполняем:
Обработки.АвтоматическоеФормированиеОтчетов.Создать().СформироватьОтчеты(,Время);
То в этом случае все выполняется нормально, ни на какие отсутствующие методы не ругается.

Sany81 14.03.2016 15:17

Разобрался.
Среди прочего я не заметили самого главного. В типовом отчете весь модуль взят в директиву:
#Если Клиент
Вот тут как раз и размещается нужная мне функция
#Тогда

Блин, убил пол дня из за невнимательности.
Всем спасибо за участие.
Буду типовые отчеты ломать.

Helen1986 14.03.2016 15:35

оч[quote=sany81;41635136]Буду типовые отчеты ломать.[/quote]

очередной революционер с украины? сначала все сломаем, затем построим заново и будет секс-вечеринка?

Sany81 14.03.2016 15:37

Ну что то вроде этого.
Хотя все отчеты ломать то не обязательно, нужно лишь "прорубить окно" в универсальном отчете.


Текущее время: 19:22. Часовой пояс GMT +3.