|   |   | 
| 
 | Печать табличной части внешней обработки | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Упс.. Реквизит в ТЧ назывался КоличествоПоФакту, а в на форме просто КоличествоФакт, от того  и была ошибка.
 Тема закрыта, всем спасибо. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |