|
8.2 Не получается в отчете открыть другой макет | ☑ | ||
---|---|---|---|---|
0
Надежда25
26.04.13
✎
13:41
|
Добрый день!
Есть один отчет, у него 2 макета типа СхемаКомпоновкиДанных. Надо по кнопке на форме открыть второй макет. Ошибка. Вот код: &НаКлиенте Процедура ПодготовкаКПечати(Команда) ТабДок = ПолучитьМакетНаСервере(); ТабДок.Показать(); КонецПроцедуры &НаСервере Функция ПолучитьМакетНаСервере() СхемаКомпоновкиДанных = Отчеты.ПланГрафикППРКалибровкиИПоверкиСИ.ПолучитьМакет("ПечатьОтчета"); ТабДок = Новый ТабличныйДокумент; ТабДок.Вывести(СхемаКомпоновкиДанных); Возврат ТабДок; КонецФункции Ошибка при вызове метода контекста (Вывести). Несоответствие типов (параметр номер '1') Кто знает, что не так? |
|||
1
drcrasher
26.04.13
✎
13:43
|
(0) отгадчик в руки и смотреть что за тип у "СхемаКомпоновкиДанных"
|
|||
2
НЕА123
26.04.13
✎
13:45
|
(1) в (0) тип СхемаКомпоновкиДанных
|
|||
3
НЕА123
26.04.13
✎
13:45
|
(2)+ что гадать-то?
|
|||
4
Надежда25
26.04.13
✎
13:49
|
В отладчике:
Выражение - СхемаКомпоновкиДанных, Значение - СхемаКомпоновкиДанных, Тип - СхемаКомпоновкиДанных. |
|||
5
fmrlex
26.04.13
✎
13:52
|
ТабличныйДокумент (SpreadsheetDocument)
Вывести (Put) Синтаксис: Вывести(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>) Параметры: <Таблица> (обязательный) Тип: ТабличныйДокумент; ПолеТабличногоДокумента. Выводимая таблица. Учи СП |
|||
6
bruss007
26.04.13
✎
13:53
|
Почитай метод Вывести()
|
|||
7
Надежда25
26.04.13
✎
16:23
|
Посмотрела, спасибо.
Все переделала. В модуле формы: Перем Настройки; Перем СхемаКомпоновкиДанных; &НаКлиенте Процедура ПодготовкаКПечати(Команда) СхемаКомпоновкиДанных = ПолучитьМакетНаСервере(); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; СформироватьОтчет(); КонецПроцедуры &НаСервере Функция ПолучитьМакетНаСервере() СхемаКомпоновкиДанных = Отчеты.ПланГрафикППРКалибровкиИПоверкиСИ.ПолучитьМакет("ПечатьОтчета"); Возврат СхемаКомпоновкиДанных; КонецФункции &НаСервере Процедура СформироватьОтчет() Экспорт КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ДанныеРасшифровки); Элементы.Результат.Очистить(); ДокументРезультат = Элементы.Результат; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры Ошибка при вызове метода контекста (ПолучитьМакетНаСервере) Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: ? |
|||
8
fmrlex
29.04.13
✎
09:05
|
(7) Макет СКД с сервера не придет.
Формируй табличный документ и возвращай. |
|||
9
Надежда25
29.04.13
✎
09:39
|
(8) Спасибо.Как в (0)? Но там тоже ошибка. А можно подробнее?
|
|||
10
fmrlex
29.04.13
✎
09:49
|
Перем Настройки;
Перем СхемаКомпоновкиДанных; &НаКлиенте Процедура ПодготовкаКПечати(Команда) // СхемаКомпоновкиДанных = ПолучитьМакетНаСервере(); // Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ТабДок = СформироватьОтчет(); ТабДок.Показать(); КонецПроцедуры //&НаСервере //Функция ПолучитьМакетНаСервере() // СхемаКомпоновкиДанных = //Отчеты.ПланГрафикППРКалибровкиИПоверкиСИ.ПолучитьМакет("ПечатьОтчета"); // Возврат СхемаКомпоновкиДанных; //КонецФункции &НаСервере Функция СформироватьОтчет() Экспорт СхемаКомпоновкиДанных = Отчеты.ПланГрафикППРКалибровкиИПоверкиСИ.ПолучитьМакет("ПечатьОтчета"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ДанныеРасшифровки); Элементы.Результат.Очистить(); ДокументРезультат = Новый ТабличныйДокумент;//Элементы.Результат; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Возврат ДокументРезультат КонецФункции Как-то так. |
|||
11
Надежда25
29.04.13
✎
11:36
|
Спасибо большое.
Новый документ открывается, но есть только шапка, а данных нет. В чем может быть причина? Если этот макет сделать по умолчанию - все в порядке. |
|||
12
fmrlex
29.04.13
✎
11:45
|
(11) Попробуй открыть макет СКД, вкладка настройки, выделяешь группировки с именами макетов и на вкладке макет оформления задать "без оформления"
|
|||
13
Надежда25
29.04.13
✎
11:45
|
А как можно Настройки из текущего макета перенести в макет, вызываемый по кнопке? В принципе, интересует только отбор.
|
|||
14
Надежда25
29.04.13
✎
11:50
|
(12) Нет, данные не появились, исчезло только оформление шапки. А еще я в строке ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ДанныеРасшифровки); убрала параметр "ДанныеРасшифровки", почему-то была ошибка. Может из-за этого?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |