Имя: Пароль:
1C
 
Печать табличной части внешней обработки
0 tabarigen
 
01.09.15
13:58
Есть внешняя обработка, на ней имеется табличная часть.
Пробую вывести ее на печать. Создал Макет во внешней обработке.

гугл подсказал примерно следующее.

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



&НаСервере
Процедура ПечатьНаСервере()
    // Вставить содержимое обработчика.
    ТабДокумент = Новый ТабличныйДокумент;
    Макет = ПолучитьМакетНаСервере();
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьДанные  = Макет.ПолучитьОбласть("Данные");
    ОбластьПодвал  = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапки.Параметры.ДокументПоступления = Строка(ДокументПоступления);
    
    ТабДокумент.Вывести(ОбластьШапки);
    ТабДокумент.Показать();
КонецПроцедуры


&НаКлиенте
Процедура Печать(Команда)
    ПечатьНаСервере();
КонецПроцедуры

Но данный код не выполняется, выдается ошибка

{Форма.Форма.Форма(139)}: Ошибка при вызове метода контекста (Показать)
    ТабДокумент.Показать();
по причине:
Метод недоступен на сервере

Вопрос, есть ли ссылке по теме?? С радостью почитал бы документацию или посмотрел бы примерчик.

Где выполняется печать?? На сервере  или Наклиенте?
1 Cyberhawk
 
01.09.15
13:59
Серверную процедуру замени на функцию, возвращающую ТабДок. Показывай его на клиенте
2 Cyberhawk
 
01.09.15
14:00
А на вопрос "Где выполняется печать?? На сервере  или Наклиенте?" отвечу "Печать выполняется на принтере"
3 tabarigen
 
01.09.15
14:13
Парни извиняюсь, за нубский вопрос.

Как то так, получаться начало.


&НаСервере
Функция ПолучитьМакетНаСервере()
    Табдок = новый ТабличныйДокумент;
    ТекОбъект = РеквизитФормыВЗначение("Объект");  
    Макет = ТекОбъект.ПолучитьМакет("Макет");
    
    ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
    ОбластьДанные = Макет.ПолучитьОбласть("Данные");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    //Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    
    ОбластьШапки.Параметры.ДокументПоступления = Строка(ДокументПоступления);
    
    ТабДок.Вывести(ОбластьШапки);
    Возврат Табдок;
КонецФункции

&НаКлиенте
Процедура Печать(Команда)
    ТабДок = ПолучитьМакетНаСервере();
    ТабДок.Показать();
КонецПроцедуры
4 tabarigen
 
01.09.15
14:14
(1) Так и сделал
5 tabarigen
 
01.09.15
14:53
Ребят помогите добить обработку.
При выводе строк  выводится  только последняя строка.

&НаСервере
Функция ПолучитьМакетНаСервере()
    Табдок = новый ТабличныйДокумент;
    ТекОбъект = РеквизитФормыВЗначение("Объект");  
    Макет = ТекОбъект.ПолучитьМакет("Макет");
    
    ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    //Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    
    ОбластьШапки.Параметры.ДокументПоступления = Строка(ДокументПоступления);
    ОбластьШапки.Параметры.Входящийномер = Строка(ДокументПоступления.НомерВходящегоДокумента);
    ОбластьШапки.Параметры.Организация = Строка(ДокументПоступления.Организация);
    ОбластьШапки.Параметры.Менеджер = ПолучитьТекущегоПользователя() ;
    ТабДок.Вывести(ОбластьШапки);
    
    ОбластьДанные = Макет.ПолучитьОбласть("Данные");
    
    Для Каждого СтрокаТЧ ИЗ Объект.Товары Цикл
        ОбластьДанные.Параметры.Номер = СтрокаТЧ.Номер;
        ОбластьДанные.Параметры.Номенклатура = СтрокаТЧ.Номенклатура;
        ОбластьДанные.Параметры.Количество = СтрокаТЧ.Количество;
        //ОбластьДанные.Параметры.КоличествоФакт = СтрокаТЧ.КоличествоФакт;
        //ОбластьДанные.Параметры.Отклонение = СтрокаТЧ.Количество - СтрокаТЧ.КоличествоФакт;
    КонецЦикла;    
    
    ТабДок.Вывести(ОбластьДанные);
    Возврат Табдок;
КонецФункции
6 Kondarat
 
01.09.15
14:56
ТабДок.Вывести(ОбластьДанные); - вставь в цикл
7 tabarigen
 
01.09.15
15:14
(6) упс.. Первую форму делаю, потому и наступаю на все грабли, которые быть могут.

Ну и наверное последний вопрос.
На данный момент я вывожу данные ТЧ Объект.Товары.
В этой ТЧ содержатся данные Документа поступления.

Мне же нужно вывести данные ТЧ расположенные на форме, которая также содержит реквизиты введенные пользователями КоличествоПоФакту.
8 tabarigen
 
01.09.15
17:47
Ну помогите народ, насколько я понял мне нужно  передать данные с клиента на сервер (данные с формы), и потом обратно вывести на клиент?
9 Мимохожий Однако
 
01.09.15
17:58
Убери комментарий у строки
//ОбластьДанные.Параметры.КоличествоФакт = СтрокаТЧ.КоличествоФакт;
10 tabarigen
 
01.09.15
19:14
(9)
{Форма.Форма.Форма(139)}: Поле объекта не обнаружено (КоличествоФакт)
        ОбластьДанные.Параметры.КоличествоФакт = СтрокаТЧ.КоличествоФакт;
11 tabarigen
 
01.09.15
19:18
Упс.. Реквизит в ТЧ назывался КоличествоПоФакту, а в на форме просто КоличествоФакт, от того  и была ошибка.

Тема закрыта, всем спасибо.