Имя: Пароль:
1C
1С v8
Как показать табличный документ из реквизита управляемой формы?
0 aptomilov
 
31.10.22
22:35
Записываю в Реквизит с типом хранилище  файлик табличного документа

потом при

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    ИмяВременногоФайла = КаталогВременныхФайлов()+"ттн.mxl";
    ДвоичныеДанные = ТекущийОбъект.ттн.Получить();
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    ТабДок.Прочитать(ИмяВременногоФайла);
КонецПроцедуры

я его записываю в реквизит формы

потом пытаюсь его просто показать

&НаКлиенте
Процедура ПечатьТТН(Команда)
    табДок.Показать();
КонецПроцедуры

такая вот ошибочка вылазит

{Документ.Взвешивание.Форма.ФормаДокумента.Форма(18)}: Ошибка при вызове метода контекста (Показать): Недопустимая операция для реквизита формы
1 aptomilov
 
31.10.22
22:36
я подозреваю что надо как то выцыганить у табдока  прям таб документ и уже показывать только как
2 aptomilov
 
31.10.22
22:41
Хотя ТабДок.Напечатать()   почему то замечательно отрабатывает и его не смущает уже что это реквизит ))
3 aptomilov
 
31.10.22
22:55
вышел из ситуации вот так
но все равно хочется разобраться почему показать () не работает


    // создадим коллекцию печатных форм, в которую надо будет добавить нужный нам табличный документ
    КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("МакетТест");    
    // Добавляем в коллекцию (тип массив) сформированный Табличный документ
    КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДок;
    // если требуется устанавливаем параметры печати
    КоллекцияПечатныхФорм[0].Экземпляров=1;
    КоллекцияПечатныхФорм[0].СинонимМакета = "ТТН";  // используется для формирования имени файла при сохранении из общей формы печати документов
    // .. и выводим стандартной процедурой БСП
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм,Неопределено,ЭтаФорма);
4 RomanYS
 
31.10.22
23:06
(3) не ищешь ты лёгких путей, хотя показать в форме печати может и лучше чем просто показать ТД.
А так вроде стандартный обход ситуации:
НовыйТД = Новый ТабличныйДокумент;
НовыйТД.Вывести(ТвойТД_РеквизитФормы);
НовыйТД.Показать();
AdBlock убивает бесплатный контент. 1Сергей