Имя: Пароль:
1C
1С v8
Нет информации для вывода на печать
,
0 n0nsense
 
05.04.18
10:15
Доброго дня, бояре.
Впервые столкнулся с глупой проблемой при печати внешней печатной формой.
Конфа УНФ 1.6.13.60, платформа 8.3.10.2699
ВПФ собственной печатной формы, но сделана по всем канонам.
В модуле объекта

Перем Имя, Синоним;

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    ОбъектыПечати    =    Новый СписокЗначений;
    ПараметрыПечати    =    Новый Структура;
    ПараметрыВывода    =    Новый Структура;
    ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно", Истина);
    ПараметрыВывода.Вставить("ПараметрыОтправки", Новый Структура("Получатель, Текст, Тема", Неопределено, "", ""));
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, Имя) Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
            КоллекцияПечатныхФорм,
            Имя,
            Синоним,
            СформироватьПечатнуюФормуУдостоверения(МассивОбъектов, ОбъектыПечати, ПараметрыПечати));    
    КонецЕсли;
    УправлениеНебольшойФирмойСервер.ЗаполнитьПараметрыОтправки(ПараметрыВывода.ПараметрыОтправки, МассивОбъектов, КоллекцияПечатныхФорм);    
КонецПроцедуры

Функция СформироватьПечатнуюФормуУдостоверения(МассивОбъектов, ОбъектыПечати, ПараметрыПечати) Экспорт
Перем Ошибки, ПервыйДокумент, НомерСтрокиНачало;
    
    УстановитьПривилегированныйРежим(Истина);
        
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
    ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Удостоверение_ВнешняяПортрет";
    Макет    =    ПолучитьМакет("Макет");
    
    Для Каждого ДокументОбъект Из МассивОбъектов Цикл
            *ВЖУХ* *магия*
        КонецЦикла;
        Возврат ТабличныйДокумент;
КонецФункции
Функция СведенияОВнешнейОбработке() экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РасходнаяНакладная");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", Синоним);
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.6.13");
    ПараметрыРегистрации.Вставить("Информация", ЭтотОбъект.Метаданные().Комментарий);
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, Синоним, Имя, "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

Имя        =    ЭтотОбъект.Метаданные().Имя;
Синоним            =    ЭтотОбъект.Метаданные().Синоним;

//
Собветвенно проблема : при печати одного документа из списка все работает прекрасно - появляется стандартный диалог печати и предпросмотра, а вот при попытке печати нескольких выделенных документов - происходит всё то же самое, кроме одного - при попытке нажать на "Печать" появляется ошибка "Нет информации для вывода на печать".
Забавно, что если в этом окне просто нажать Ctrl-P или просто вызвать еще один предпросмотр "лупой" - то так печать работает.
https://clip2net.com/clip/m267999/f0d8e-clip-206kb.jpg
1 Cyberhawk
 
05.04.18
10:29
Бывает, держись там
2 n0nsense
 
05.04.18
10:37
(1) Дельный совет, бро :)
3 DrShad
 
05.04.18
10:39
это значит что ни одного ТД не сформировано
4 n0nsense
 
05.04.18
10:44
(3) в чем разница  между печатью 1 документа и печатью 1+ ?
В обоих случаях я получаю на выходе один ТД.
Просто при 1+ документах на этот ТД выведена инфа с нескольких объектов. ТД один, документы разделены стандартными
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();)
5 n0nsense
 
05.04.18
10:47
Миль пардон, господа, нашёл косяк.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДокументОбъект.Ссылка);
вот это гадство всё портило(вызывалось в конце каждого документа).
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.