|
Сформировать универсальный отчет, не получая форму | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
LehhaK
09.04.13
✎
09:09
|
Щас вот озадачился проблемой формирования универсального отчета на стороне сервера(в регламентном задании). Суть - хочу слать письма добрым людям по вечерам. Отправлять научился, нормуль все уходит, когда запускаю обработку под юзером. На сервере ругается на "ПолучитьФорму", ибо получает только на клиенте. И я задумался. Крепко так... даже ветку на мисте нашел: v8: Регламентные задания (выполнение отчета) Правда, там ТСу так и не смогли ответить. Вот мне тоже интересно как сформировать универсальный отчет не получая форму. Мож знает кто?
Мой код, кому интересно: Процедура СформироватьИОтправитьОтчет() Экспорт
Суть то в чем, я если не из формы табличный документ получаю, а новый создаю, то он пустой остается. я так понимаю, что в ЭлементыФормы.ПолеТабличногоДокументаРезультат какие то настройки хранятся, только я их в коде нигде найти не могу... |
||||||||||
1
shuhard
09.04.13
✎
09:12
|
(0) и не фиг заниматься некрофильством
КГ/АМ |
||||||||||
2
LehhaK
09.04.13
✎
09:13
|
(1) Переписать отчеты , конечно, можно, уйдя от универсального. Но зачем себе работы придумывать? У меня УТ 10.3 тут все основные отчеты на базе универсального
|
||||||||||
3
cw014
09.04.13
✎
09:14
|
А наструя тебе форма?
Перем СохраненныеПараметрыПечати; Отчет = Отчеты.Продажи.Создать(); ПолеТабличногоДокументаРезультат = Новый ТабличныйДокумент; Если Отчет.УниверсальныйОтчет.мВосстанавливатьНастройкиПриОткрытии Тогда Если ЗначениеЗаполнено(глЗначениеПеременной("глТекущийПользователь")) И Не ЗначениеЗаполнено(Отчет.УниверсальныйОтчет.ДатаНач) Тогда Отчет.УниверсальныйОтчет.ДатаНач = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяДатаНачалаОтчетов"); КонецЕсли; СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь")); СтруктураНастройки.Вставить("ИмяОбъекта", "Продажи"); Если УниверсальныеМеханизмы.ПолучитьНастройкуИспользоватьПриОткрытии(СтруктураНастройки) Тогда Отчет.УниверсальныйОтчет.мТекущаяНастройка = СтруктураНастройки; Отчет.ВосстановитьНастройкиИзСтруктуры(СтруктураНастройки.СохраненнаяНастройка); СтруктураСНастройками.Свойство("ПараметрыПечати", СохраненныеПараметрыПечати); Если ТипЗнч(СохраненныеПараметрыПечати) = Тип("Структура") Тогда // Ориентация СохраненныеПараметрыПечати.Свойство("ОриентацияСтраницы", ПолеТабличногоДокументаРезультат.ОриентацияСтраницы); // Масштаб СохраненныеПараметрыПечати.Свойство("МасштабПечати", ПолеТабличногоДокументаРезультат.МасштабПечати); СохраненныеПараметрыПечати.Свойство("АвтоМасштаб", ПолеТабличногоДокументаРезультат.АвтоМасштаб); // Поля СохраненныеПараметрыПечати.Свойство("ПолеСлева", ПолеТабличногоДокументаРезультат.ПолеСлева); СохраненныеПараметрыПечати.Свойство("ПолеСверху", ПолеТабличногоДокументаРезультат.ПолеСверху); СохраненныеПараметрыПечати.Свойство("ПолеСправа", ПолеТабличногоДокументаРезультат.ПолеСправа); СохраненныеПараметрыПечати.Свойство("ПолеСнизу", ПолеТабличногоДокументаРезультат.ПолеСнизу); // Колонтитулы СохраненныеПараметрыПечати.Свойство("РазмерКолонтитулаСверху", ПолеТабличногоДокументаРезультат.РазмерКолонтитулаСверху); СохраненныеПараметрыПечати.Свойство("РазмерКолонтитулаСнизу", ПолеТабличногоДокументаРезультат.РазмерКолонтитулаСнизу); // Экземпляров на страницу СохраненныеПараметрыПечати.Свойство("ЭкземпляровНаСтранице", ПолеТабличногоДокументаРезультат.ЭкземпляровНаСтранице); // Черно-белая печать СохраненныеПараметрыПечати.Свойство("ЧерноБелаяПечать", ПолеТабличногоДокументаРезультат.ЧерноБелаяПечать); КонецЕсли; Иначе Отчет.УстановитьНачальныеНастройки(); КонецЕсли; Отчет.УниверсальныйОтчет.ВосстановитьДополнительныеНастройки(Объект, Отчет, ИмяОбъекта); КонецЕсли; Отчет.СформироватьОтчет(ПолеТабличногоДокументаРезультат); |
||||||||||
4
LehhaK
09.04.13
✎
09:21
|
(3) Это твое или типовое?
|
||||||||||
5
LehhaK
09.04.13
✎
09:29
|
+(4) Все, херню спросил. Щас попробую
|
||||||||||
6
cw014
09.04.13
✎
09:30
|
(4) Это мое, взятое из типового
Универсальный отчет forever |
||||||||||
7
LehhaK
09.04.13
✎
09:42
|
Если втупую вставить, то как то так:
{Обработка.НоваяОтправкаПисемРуководству.МодульОбъекта(25,9)}: Переменная не определена (СтруктураСНастройками) <<?>>СтруктураСНастройками.Свойство("ПараметрыПечати", СохраненныеПараметрыПечати); (Проверка: Толстый клиент (обычное приложение)) {Обработка.НоваяОтправкаПисемРуководству.МодульОбъекта(66,66)}: Переменная не определена (Объект) Отчет.УниверсальныйОтчет.ВосстановитьДополнительныеНастройки(<<?>>Объект, Отчет, ИмяОбъекта); (Проверка: Толстый клиент (обычное приложение)) {Обработка.НоваяОтправкаПисемРуководству.МодульОбъекта(66,81)}: Переменная не определена (ИмяОбъекта) Отчет.УниверсальныйОтчет.ВосстановитьДополнительныеНастройки(Объект, Отчет, <<?>>ИмяОбъекта); (Проверка: Толстый клиент (обычное приложение)) Если подумать и дописать,что СтруктураСНастройками = новый структура; Объект заменить на ЭтотОбъект, а ИмяОбъекта = ИмяОбъекта = Отчет.Метаданные().Имя; То пишет: {Отчет.УниверсальныйОтчет.МодульОбъекта(5902)}: Поле объекта не обнаружено (БыстрыйОтборРазвернут) Объект.БыстрыйОтборРазвернут = ?(ВосстановитьЗначение(СтрЗаменить(?(ИмяОбъекта = Неопределено, Строка(Отчет), ИмяОбъекта), ".", "_") + "_БыстрыйОтборРазвернут") = Истина, Истина, Ложь); как то так вот |
||||||||||
8
LehhaK
09.04.13
✎
10:07
|
Спасибо, добрый человек. Все, что мне надо из этого кода - Отчет.УстановитьНачальныеНастройки();
И все летает. Полный код для грядущих поколений: Отчет = Отчеты.Продажи.Создать();
|
||||||||||
9
mehfk
09.04.13
✎
10:30
|
(8) Это не смущает в модуле отчета?
#Если Клиент Тогда ... ... Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт ... ... #КонецЕсли |
||||||||||
10
LehhaK
09.04.13
✎
21:14
|
(9) Смущает, ога. Только когда регламент запустился - до этой строки даже не дошло. Консоль заданий пишет "метод объекта не обнаружен (ДобавитьИзмерениеСтроки)". Там то вроде никак не клиент. Да и процедура такая есть. Почему сервер ее как метод опознает? З.Ы. с клиента все по прежнему норм отрабатывает.
|
||||||||||
11
Reaper_1c
09.04.13
✎
21:22
|
Если уж говорим о некрофилии, то для рассылки предназначен рапорт руководителю, в котором от природы есть шаблоны для подключения собственных отчетов. Нафига лохматить бабушку?
Универсальный отчет уныл |
||||||||||
12
LehhaK
09.04.13
✎
21:25
|
(11) Интересно же. Вероятно, я перепишу оба этих отчета на СКД (кстати, как она дружит с сервером?) или тупо буду формировать табличный документ обработкой и отсылать. Но ппц как охота отправить универсальный...
|
||||||||||
13
LehhaK
10.04.13
✎
12:52
|
Апнуть, чтоли?
|
||||||||||
14
mehfk
10.04.13
✎
16:35
|
(12) Я делал по рабоче-крестьянски - виндовый планировщик запускал 1с-ку от имени специально заведенного пользователя, запускалась обработка и формировала несколько отчетов на базе универсального.
|
||||||||||
15
mehfk
10.04.13
✎
16:36
|
(10) Модуль универсального отчета открой
|
||||||||||
16
LehhaK
11.04.13
✎
07:42
|
(14) да я так же уже запилил. Универсальный отчет в регламентном задании - от лукавого.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |