Имя: Пароль:
1C
1С v8
значение не является значением объектного типа (показать)
0 GF
 
31.01.19
08:59
Где-то туплю, помогите, пожалуйста.Вылетает ошибка значение не является значением объектного типа (показать). Как преобразовать к объекту, метод получитьОбъект() не срабатывает, программа на него ругается.
&НаКлиенте
Процедура ПечатьПакетаДокументов(СразуНаПринтер = Ложь)

Для Каждого Стр Из Объект.Отгрузка Цикл
  Если ЗначениеЗаполнено(Стр.Реализация) Тогда
  ТабДок = ПечататьУПД(Стр.Реализация);

   Если СразуНаПринтер Тогда  ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
    Иначе    ТабДок.Показать("Универсальный Передаточный Документ");
   КонецЕсли;

Иначе     Сообщить("Нельзя печатать УПД, если не создана реализация");
КонецЕсли;

Стр.Реализация = Это ДокументССылка. Никак не соображу как в обработке сделать так, чтобы если не нужно было сразу печатать, то показывал бы этот  документ.
Процедура ПечататьУПД(Стр.Реализация); выглядит так

&НаСервере
Функция ПечататьУПД(РеализацияСсылка)
    
    МассивОбъектов = Новый Массив;
    ПараметрыПечати = Новый Структура;
    ПараметрыПечати.Вставить("ПечатьВВалюте", Ложь);
    КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
    КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
    КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
    КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
    КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
    КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
    НоваяСтрока = КоллекцияПечатныхФорм.Добавить();
    //Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ПФ_MXL_УниверсальныйПередаточныйДокумент981");
    НоваяСтрока.ИмяМакета = "ПФ_MXL_УниверсальныйПередаточныйДокумент981";
    НоваяСтрока.ИмяВРЕГ = "УПД";
    НоваяСтрока.Экземпляров = 2;
    МассивОбъектов.Добавить(РеализацияСсылка);
    ОбъектыПечати = Новый СписокЗначений;
    ОбъектыПечати.Добавить(Неопределено, "ДоступныеЗначения");
    ПараметрыВывода = Новый Структура("ДоступнаПечатьПоКомплектно, ПараметрыОтправки");
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Ложь;
    ПараметрыВывода.ПараметрыОтправки = Новый Структура("Получатель, Текст, Тема");
    ПараметрыВывода.ПараметрыОтправки.Текст = "";
    ПараметрыВывода.ПараметрыОтправки.Тема = "";
    
       Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    Возврат КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент;
    
КонецФункции
1 ДенисЧ
 
31.01.19
09:15
Отладчик упёрся рогом и упорно не желает показывать, что у тебя возвращается из функции?
2 Повелитель
 
31.01.19
09:19
(1) В отладчике можно за 3 минуты решить, а поговорить то хочется с кем то)))
3 Михаил Иванович
 
31.01.19
09:20
(0) Про отладчик уже говорили?
4 ДенисЧ
 
31.01.19
09:21
(2) Ну поговорить - это нужно наливать... А тут нельзя...
5 Михаил Иванович
 
31.01.19
09:22
(4) И говорить об этом тоже нельзя....
6 GF
 
31.01.19
09:22
А что отладчик!?Отладчик говорит, что это документссылка, а я не знаю как сделать так, чтоб показать документ перед печатью.Метод получитьОбъект не отрабатывает. Как еще можно!?
7 ZDenis
 
31.01.19
09:22
А мне кажется ТС хочет не то, что вы подумали. Зачем упомянуто "метод получитьОбъект() не срабатывает"?
8 ZDenis
 
31.01.19
09:24
(6) "показать документ перед печатью"
Печатную форму или локумент "Реализация"?
9 GF
 
31.01.19
09:24
При чем в ут 11 этот кусок кода прекрасно отрабатывает, а в унф посылает меня...не могу понять почему, дайте какую нить умную мысль куда смотреть
10 GF
 
31.01.19
09:24
Печатную форму
11 Михаил Иванович
 
31.01.19
09:25
(8) Документ он хочет показать. Написано.
12 ДенисЧ
 
31.01.19
09:27
а) если ты хочешь показать сам документ, то надо использовать ОткрытьФорму()
б) если ты хочешь показать табличный документ, то он у тебя не возвращается. Вот тут отладчик и пригодится
13 ZDenis
 
31.01.19
09:27
(10) Тогда какая связь с "получитьОбъект()" и отладчик в руки и смотреть что находится в ТабДок перед Показать()
14 GF
 
31.01.19
09:28
В табДок находится документссылка на документ расходная накладная
15 Галахад
 
гуру
31.01.19
09:29
Так не покатит?
РежимИспользованияДиалогаПечати.Использовать
16 Михаил Иванович
 
31.01.19
09:30
(14) И? Тебе это ни о чем не говорит?
17 ZDenis
 
31.01.19
09:30
(14) Откуда она там взялась? Согласно коду, представленному выше там должен быть табличный документ
18 GF
 
31.01.19
09:31
Для Каждого Стр Из Объект.Отгрузка Цикл
Объект.Отгрузка -это ДанныеФормыКоллекция.

Вот в том то и дело, что должен быть табдокумент
19 sieben
 
31.01.19
09:33
(18) Попробуй спросить у автора процедуры Печать?
20 GF
 
31.01.19
10:26
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    Перем Ошибки;
    
    //ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, Обработки.ПечатьАктаОбОказанииУслуг.ИдентификаторПечатнойФормы(Ложь, Ложь));
            
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_MXL_УниверсальныйПередаточныйДокумент982") Тогда
        
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПФ_MXL_УниверсальныйПередаточныйДокумент982", "Универсальный передаточный документ", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "УниверсальныйПередаточныйДокумент", ПараметрыПечати));
        
    КонецЕсли;
            
    Если Ошибки <> Неопределено Тогда
        
        ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(Ошибки);
        
    КонецЕсли;
    
    // параметры отправки печатных форм по электронной почте
    УправлениеНебольшойФирмойСервер.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);
    
КонецПроцедуры
21 catena
 
31.01.19
10:50
(20)Ну и? Пройтись отладчиком и посмотреть, после какого вызова КоллекцияпечатныхФорм.Получить(0).ТабличныйДокумент становится тыквой.
22 stix2010
 
31.01.19
14:10
(21) ну это легко, но мы не ищем легких путей.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс