![]() |
![]() |
|
Не могу вывести табличный документ | ☑ | ||
---|---|---|---|---|
0
falselight
25.11.16
✎
08:29
|
1с 8.3. Управляемая форма.
Как сформировать и вывести макет по табличной части документа? Пишет ошибку. {Документ.ПоступлениеМЦ.Форма.ФормаДокумента.Форма(38)}: Метод объекта не обнаружен (ПолучитьМакет) МакетПолученныйНаСервере = ЭтотОбъект.ПолучитьМакет("Макет"); Перепробовал уже всяко разно. Последнее время выводил макет на табличный документ расположенный на форме. И макет получал по другому. Как нужно тут? || // &НаКлиенте Процедура ПечатьИнвКарточки(Команда) ТАБ = Новый ТабличныйДокумент; // //ТАБ.Очистить(); ТАБ.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КурсВалют"; //Макет = Отчеты.КурсыВалютЗаПериодПоПериодичности.ПолучитьМакет("Макет"); //Макет = ЭтаФорма.ПолучитьМакет("Макет"); // МакетПолученныйНаСервере = МакетССервера(); // ШАПКА = МакетПолученныйНаСервере.ПолучитьОбласть("ШАПКА"); СТРОКА = МакетПолученныйНаСервере.ПолучитьОбласть("СТРОКА"); // ТАБ.Вывести(ШАПКА); // Н = 1; Для каждого СтрМЦ Из Объект.МЦ Цикл СТРОКА.ПАРАМЕТРЫ.Ном = Н; СТРОКА.ПАРАМЕТРЫ.НомВУпрУч = СтрМЦ.УпрИнвентарныйНомер; СТРОКА.ПАРАМЕТРЫ.ТипОборудования = СтрМЦ.ТипМЦ; СТРОКА.ПАРАМЕТРЫ.МодельБренд = СтрМЦ.Брэнд; СТРОКА.ПАРАМЕТРЫ.ДопХар = СтрМЦ.ДопХарактеристики; СТРОКА.ПАРАМЕТРЫ.ИнвНомер = СтрМЦ.ИнвентарныйНомер; СТРОКА.ПАРАМЕТРЫ.Сотрудник = Объект.Сотрудник; СТРОКА.ПАРАМЕТРЫ.Регион = Объект.Сотрудник.Регион; СТРОКА.ПАРАМЕТРЫ.Подразделение = Объект.Сотрудник.Подразделение; ТАБ.ВЫВЕСТИ(СТРОКА); Н = Н + 1; КонецЦикла; ТАБ.Показать(); КонецПроцедуры // &НаСервере Функция МакетССервера() МакетПолученныйНаСервере = ЭтотОбъект.ПолучитьМакет("Макет"); Возврат МакетПолученныйНаСервере; КонецФункции // |
|||
1
PuhUfa
25.11.16
✎
08:31
|
а заглянуть в типовые?
|
|||
2
falselight
25.11.16
✎
08:33
|
(1) Сделал уже. Открыл УТ 11.3 и произвел там поиск.
Пока ответа не получил. |
|||
3
falselight
25.11.16
✎
08:33
|
(1) В модуле объекта, там делают вот так, -
Макет = ПолучитьМакет("Макет"); |
|||
4
Рэйв
25.11.16
✎
08:34
|
откуда у формы макет?
И вообще иди на сервер делать таб док, возвращай его на клиент и там показывай |
|||
5
Рэйв
25.11.16
✎
08:36
|
чтобы было понятнее.
ЭтотОбъект в модуле формы на УФ - это тек форма |
|||
6
falselight
25.11.16
✎
08:42
|
(5) Сделал так, но по прежнему ругается на ПолучитьМакет!!!
Как нужно сделать то? | // &НаКлиенте Процедура ПечатьИнвКарточки(Команда) ТАБ = ТАБССервера(); // //ТАБ.Очистить(); ТАБ.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КурсВалют"; //Макет = Отчеты.КурсыВалютЗаПериодПоПериодичности.ПолучитьМакет("Макет"); //Макет = ЭтаФорма.ПолучитьМакет("Макет"); // МакетПолученныйНаСервере = МакетССервера(); // ШАПКА = МакетПолученныйНаСервере.ПолучитьОбласть("ШАПКА"); СТРОКА = МакетПолученныйНаСервере.ПолучитьОбласть("СТРОКА"); // ТАБ.Вывести(ШАПКА); // Н = 1; Для каждого СтрМЦ Из Объект.МЦ Цикл СТРОКА.ПАРАМЕТРЫ.Ном = Н; СТРОКА.ПАРАМЕТРЫ.НомВУпрУч = СтрМЦ.УпрИнвентарныйНомер; СТРОКА.ПАРАМЕТРЫ.ТипОборудования = СтрМЦ.ТипМЦ; СТРОКА.ПАРАМЕТРЫ.МодельБренд = СтрМЦ.Брэнд; СТРОКА.ПАРАМЕТРЫ.ДопХар = СтрМЦ.ДопХарактеристики; СТРОКА.ПАРАМЕТРЫ.ИнвНомер = СтрМЦ.ИнвентарныйНомер; СТРОКА.ПАРАМЕТРЫ.Сотрудник = Объект.Сотрудник; СТРОКА.ПАРАМЕТРЫ.Регион = Объект.Сотрудник.Регион; СТРОКА.ПАРАМЕТРЫ.Подразделение = Объект.Сотрудник.Подразделение; ТАБ.ВЫВЕСТИ(СТРОКА); Н = Н + 1; КонецЦикла; ТАБ.Показать(); КонецПроцедуры // &НаСервере Функция МакетССервера() МакетПолученныйНаСервере = ЭтотОбъект.ПолучитьМакет("Макет"); Возврат МакетПолученныйНаСервере; КонецФункции // &НаСервере Функция ТАБССервера() ТАБ = Новый ТабличныйДокумент; Возврат ТАБ; КонецФункции // |
|||
7
falselight
25.11.16
✎
08:47
|
(5) и так не работает
// &НаСервере Функция МакетССервера() МакетПолученныйНаСервере = Объект.ПолучитьМакет("Макет"); Возврат МакетПолученныйНаСервере; КонецФункции // |
|||
8
Рэйв
25.11.16
✎
08:48
|
(6)Да вообще и получение макета и заполнение таб дока перенеси на сервер. И возвращай на клиент уже готовый , заполненный таб док. А на клиенте делай только .Показать()
от полученного с сервера |
|||
9
falselight
25.11.16
✎
08:50
|
(8) Ясно!
Но (7) же на сервере делаю, не работает же! Как нужно то? |
|||
10
Рэйв
25.11.16
✎
08:52
|
(9)Нужно все на сервере как я сказал:-) а почему этот вариант не работает будешь на досуге в свободное время разбирать когда у тебя все заработает:-)
|
|||
11
falselight
25.11.16
✎
08:55
|
(9) Не понял?!
У меня не работат Получить макет ЭтотОбъект.ПолучитьМакет() Объект.ПолучитьМакет() ПолучитьМакет() не работае ни так ни так ни так!!! |
|||
12
Nolan
25.11.16
✎
08:55
|
(11) Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
|
|||
13
falselight
25.11.16
✎
08:58
|
(12) Спасибо! То есть так же как и для внешней обработки!!!!
Я почему то затупил, что для объекта конфигурации будет иначе. |
|||
14
falselight
25.11.16
✎
09:05
|
вот этот код сломал 1с, она зависла и вылетела
с сообщением в середине окна внимание! ... // &НаКлиенте Процедура ПечатьИнвКарточки(Команда) ТАБ = ТАБССервера(); ТАБ.Показать(); КонецПроцедуры // &НаСервере Функция ТАБССервера() Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); ТАБ = ТАБССервера(); // ТАБ.Очистить(); ТАБ.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КурсВалют"; // ШАПКА = Макет.ПолучитьОбласть("ШАПКА"); СТРОКА = Макет.ПолучитьОбласть("СТРОКА"); // ТАБ.Вывести(ШАПКА); // Н = 1; Для каждого СтрМЦ Из Объект.МЦ Цикл СТРОКА.ПАРАМЕТРЫ.Ном = Н; СТРОКА.ПАРАМЕТРЫ.НомВУпрУч = СтрМЦ.УпрИнвентарныйНомер; СТРОКА.ПАРАМЕТРЫ.ТипОборудования = СтрМЦ.ТипМЦ; СТРОКА.ПАРАМЕТРЫ.МодельБренд = СтрМЦ.Брэнд; СТРОКА.ПАРАМЕТРЫ.ДопХар = СтрМЦ.ДопХарактеристики; СТРОКА.ПАРАМЕТРЫ.ИнвНомер = СтрМЦ.ИнвентарныйНомер; СТРОКА.ПАРАМЕТРЫ.Сотрудник = Объект.Сотрудник; СТРОКА.ПАРАМЕТРЫ.Регион = Объект.Сотрудник.Регион; СТРОКА.ПАРАМЕТРЫ.Подразделение = Объект.Сотрудник.Подразделение; ТАБ.ВЫВЕСТИ(СТРОКА); Н = Н + 1; КонецЦикла; Возврат ТАБ; КонецФункции // |
|||
15
falselight
25.11.16
✎
09:12
|
поправил строка на строки
все равно вылетает (((( // &НаКлиенте Процедура ПечатьИнвКарточки(Команда) ТАБ = ТАБССервера(); ТАБ.Показать(); КонецПроцедуры // &НаСервере Функция ТАБССервера() Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); ТАБ = ТАБССервера(); // ТАБ.Очистить(); ТАБ.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КурсВалют"; // ШАПКА = Макет.ПолучитьОбласть("ШАПКА"); СТРОКИ = Макет.ПолучитьОбласть("СТРОКА"); // ТАБ.Вывести(ШАПКА); // Н = 1; Для каждого СтрМЦ Из Объект.МЦ Цикл СТРОКИ.ПАРАМЕТРЫ.Ном = Н; СТРОКИ.ПАРАМЕТРЫ.НомВУпрУч = СтрМЦ.УпрИнвентарныйНомер; СТРОКИ.ПАРАМЕТРЫ.ТипОборудования = СтрМЦ.ТипМЦ; СТРОКИ.ПАРАМЕТРЫ.МодельБренд = СтрМЦ.Брэнд; СТРОКИ.ПАРАМЕТРЫ.ДопХар = СтрМЦ.ДопХарактеристики; СТРОКИ.ПАРАМЕТРЫ.ИнвНомер = СтрМЦ.ИнвентарныйНомер; СТРОКИ.ПАРАМЕТРЫ.Сотрудник = Объект.Сотрудник; СТРОКИ.ПАРАМЕТРЫ.Регион = Объект.Сотрудник.Регион; СТРОКИ.ПАРАМЕТРЫ.Подразделение = Объект.Сотрудник.Подразделение; ТАБ.ВЫВЕСТИ(СТРОКИ); Н = Н + 1; КонецЦикла; Возврат ТАБ; КонецФункции // |
|||
16
Fedor-1971
25.11.16
✎
09:15
|
(15) Не удивительно
&НаСервере
и зачем тебе бесконечная рекурсия? и ТАБ - надо создать или это реквизит формы? |
|||
17
falselight
25.11.16
✎
12:43
|
(16) глючил изрядно ((( да я выявил это...
ТАБ создавать нужно, ТабличныйДокумент. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |