Помогите победить ошибку при формировании отчета Добрый день. У меня по расписанию должен формироваться отчет, любой типовой. По расписанию делаю так: Отчет=Отчеты[ИмяОтчета].Создать(); ЗаписьЖурналаРегистрации("Формирование отчетов", УровеньЖурналаРегистрации.Примечание, , ,Отчет); Попытка Отчет.ВосстановитьНастройкиИзСтруктуры(Настройка); Исключение ЗаписьЖурналаРегистрации("Формирование отчетов", УровеньЖурналаРегистрации.Ошибка, , ,ОписаниеОшибки()); КонецПопытки; Первая запись в журнале говорит: ОтчетОбъект.ВедомостьТоварыНаСкладах Вторая запись с ошибкой: Метод объекта не обнаружен (ВосстановитьНастройкиИзСтруктуры) При этом в типовых отчетах присутствует экспортная функция ВосстановитьНастройкиИзСтруктуры. Почему же ее не видно? Если же выполнять вышеописанные строки под любым пользователем, то все проходит на ура. |
(0) ну а под кем эти строки выполняются? |
Регламентные задания от имени администратора |
в модуле сеанса, может быть не виден этот метод |
В отчете в модуле объекта этот метод есть. Делаю свой отчет, в него вставляю такой же метод. Мой отчет проходит нормально без ошибок, типовой ругается что нет такого метода. Единственное отличие, в типовых отчетах это функция а в самописке - процедура. Но думаю в данном случае это не принципиально. Так же отличается код самого метода, в типовухе это всего одна строка: Возврат УниверсальныйОтчет.ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками, ЭтотОбъект); У меня же это команды для восстановления настроек Компоновщика настроек. |
ЗаписьЖурналаРегистрации("Формирование отчетов", УровеньЖурналаРегистрации.Ошибка, , ,ТипЗнч(Отчет)); |
(5) Отчет объект: Ведомость по товарам на складах и следом: {Обработка.АвтоматическоеФормированиеОтчетов.МодульОбъекта(59)**: Метод объекта не обнаружен (ВосстановитьНастройкиИзСтруктуры) Где 59 строка= Отчет.ВосстановитьНастройкиИзСтруктуры(Настройка); |
Вообще пойду по порядку с самого начала, может кто увидит какую ошибку в моей "писанине" 1 - Создал регламентное задание, имя метода "МойМодуль.ФормированиеОтчетов" 2 - в общем модуле "МойМодуль" (Сервер, Внешне соединение, Клиент обычно приложение, Вызов сервера): Процедура ФормированиеОтчетов() Экспорт //Запуск каждые 10 минут Время=Формат(ТекущаяДата(),"ДФ=ЧЧ:мм"); Обработки.АвтоматическоеФормированиеОтчетов.Создать().СформироватьОтчеты(,Время); КонецПроцедуры 3 - И наконец обработка АвтоматическоеФормированиеОтчетов. В этой обработке в в процедуре СформироватьОтчеты, сначала запросом вытаскиваю все сохраненные настройки пользователей, которые необходимо сформировать по расписанию в назначенное время. Ну а далее: Отчет=Отчеты[ИмяОтчета].Создать(); Отчет.ВосстановитьНастройкиИзСтруктуры(Настройка); - тут и выскакивает ошибка что метод ВосстановитьНастройкиИзСтруктуры не найден. |
При этом, если создать внешнюю обработку, на форму кидаем поле ввода "Время", по кнопке Выполнить вполняем: Обработки.АвтоматическоеФормированиеОтчетов.Создать().СформироватьОтчеты(,Время); То в этом случае все выполняется нормально, ни на какие отсутствующие методы не ругается. |
Разобрался. Среди прочего я не заметили самого главного. В типовом отчете весь модуль взят в директиву: #Если Клиент Вот тут как раз и размещается нужная мне функция #Тогда Блин, убил пол дня из за невнимательности. Всем спасибо за участие. Буду типовые отчеты ломать. |
оч[quote=sany81;41635136]Буду типовые отчеты ломать.[/quote] очередной революционер с украины? сначала все сломаем, затем построим заново и будет секс-вечеринка? |
Ну что то вроде этого. Хотя все отчеты ломать то не обязательно, нужно лишь "прорубить окно" в универсальном отчете. |
Текущее время: 19:22. Часовой пояс GMT +3. |