Имя: Пароль:
1C
1С v8
Внешние отчеты в УФ
0 iva77ru
 
25.09.13
17:36
Пожалуйста, объясните 1С-ку, сидящему на 1С 8.2 без УФ:
В "обычное приложение" можно открыть внешний отчет и вывести на печать что-либо, используя макет, принадлежащий этому же отчету. В "Управляемом приложении" такой возможности нет, т.е. нельзя открыв отчет, сформировать печатную форму с использованием макета "внутри" это отчета?
1 AlfaDog
 
25.09.13
17:38
можно все
2 iva77ru
 
25.09.13
17:41
У меня затык:
Нужно получить макет. Ранее:

Макет = ЭтотОбъект.ПолучитьМакет("Таблица");

А как в УФ?
3 AlfaDog
 
25.09.13
17:43
РеквизитФормыВЗначение("Отчет").ПолучитьМакет; Попробуй так
4 AlfaDog
 
25.09.13
17:43
На сервере
5 AllJoke
 
25.09.13
17:44
(2) выполняется на сервере.
6 Desna
 
25.09.13
17:56
(2) Отчеты.НужныйОтчет.ПолучитьМакет
7 Мимохожий Однако
 
25.09.13
17:57
Посмотри БСП демо
8 iva77ru
 
25.09.13
17:58
Попробывал:
РеквизитФормыВЗначение("Отчет").ПолучитьМакет;

Ошибка:

Недопустимое значение параметра (параметр номер '1')
9 AlfaDog
 
25.09.13
18:00
Блин попутал вместо "отчет" нужно другое
10 AlfaDog
 
25.09.13
18:00
хотя фиг знает
11 Мимохожий Однако
 
25.09.13
18:02
Макет = ПолучитьМакет("Таблица");
12 YF
 
25.09.13
18:04
(0) Самый простой вариант перенести формирование печ. формы в модуль отчета, а не его формы.

тогда для формирования печ. документа не нужно будет открывать форму
13 iva77ru
 
25.09.13
18:05
Я смотрел БСП. Понял, что нужно 2 объекта: 1- отчет с алгоритмом построения печатной формы и 2 - содержит макеты, которые нужно поместить на сервер, а затем получить макеты.
14 YF
 
25.09.13
18:07
(13) из твоего предложения вообще не понял что за второй объект
15 Мимохожий Однако
 
25.09.13
18:09
(13)Полагаю, надо еще раз посмотреть. На ИТС есть пример внешней печатной формы для УТ11.
16 iva77ru
 
25.09.13
18:09
Извините, попутал. 2 - внешний отчет/обработка с макетами. Из модуля формы 1 объекта подключаем 2 к серверу, а затем из 2 получаем макет и формируем свою печатную форму.
17 iva77ru
 
25.09.13
18:11
Обязательно, посмотрю "пример внешней печатной формы для УТ11.", если найду.
18 AllJoke
 
26.09.13
08:56
Как вариант, можно в обработке в реквизит формы добавить ТабличныйДокумент, Тип = ТабличныйДокумент. И следующий код:

&НаКлиенте
Процедура СформироватьОтчет(Команда)
    ТабличныйДокумент=СформироватьОтчетНаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Функция СформироватьОтчетНаСервере()
    ТабличныйДокумент = Новый ТабличныйДокумент();
    Макет = Отчеты.СписокКонтрагентов.ПолучитьМакет("Макет");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Элемент = Макет.ПолучитьОбласть("Элемент");
    Группа = Макет.ПолучитьОбласть("Группа");
    Шапка.Параметры.ДатаФормированияОтчета = ТекущаяДата();
    ТабличныйДокумент.Вывести(Шапка);
    Выборка = Справочники.Контрагенты.ВыбратьИерархически();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа Тогда
            Область = Группа;
        Иначе
            Область = Элемент;
        КонецЕсли;
        Область.Параметры.Заполнить(Выборка);
        ТабличныйДокумент.Вывести(Область);
    КонецЦикла;
    Возврат(ТабличныйДокумент);
КонецФункции
19 AllJoke
 
26.09.13
08:56
Взял с урока, как типовой вариант.
20 Desna
 
26.09.13
10:21
(19) я ему еще в (6) написал
21 iva77ru
 
26.09.13
11:56
У меня получилось:

&НаСервере
Таб = РеквизитФормыВЗначение("Объект").ПолучитьМакет(ИмяМакета);

А вот это:
Отчеты.СписокКонтрагентов.ПолучитьМакет("Макет")

Применимо для отчетов, входящих в состав конфигурации. У меня внешний отчет, открытый на клиенте. Или же я не догоняю Ваше предложение?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший