|
8.2 Не открывает внешняя печатная форма | ☑ | ||
---|---|---|---|---|
0
pessok
31.08.11
✎
18:04
|
Уже начинал эту тему, казалось бы задача решена, ан нет
Итак, хочу вывести из внешней обработки внешнюю печатную форму документа. В обработке пишу код вызова ВПФ Процедура НапечататьРеестр(СсылкаНаОбъект) ВнешняяПФорма = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Реестр для отгрузки построчный"); ОбработкаОбъект = ВнешняяПФорма.ПолучитьОбъект(); ДанныеОбработки = ОбработкаОбъект.ХранилищеОбработки.Получить(); АдресХранилищаОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки); ИмяОбработки = Строка(ВнешняяПФорма.Ссылка.УникальныйИдентификатор()); Подключение = ВнешниеОбработки.Подключить(АдресХранилищаОбработки, ИмяОбработки , Истина); Отчет = ВнешниеОбработки.Создать(Подключение); Макет = Новый ТаблицаЗначений; Макет.Колонки.Добавить("ИмяВРЕГ"); Стр = Макет.Добавить(); Стр.ИмяВРЕГ = "Макет"; Отчет.Печать(СсылкаНаОбъект, Макет, Неопределено, Неопределено); КонецПроцедуры СсылкаНаОбъект - элемент массива, как положено. процедура печати вроде как стандартизирована для внешних обработок, но всеже приведу и ее Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды()) Тогда ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектовНазначения, ОбъектыПечати); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды(), ЭтотОбъект.Метаданные().Синоним, ТабличныйДокумент ); КонецЕсли; КонецПроцедуры Вывода печтаного документа не происходит, как и ошибок.. Подозреваю, что ошибка в параметрах процедуры Печать(), но вот нигде не смог найти как их правильно задать... |
|||
1
Arseny
31.08.11
✎
18:09
|
Это что за конфа?
|
|||
2
pessok
31.08.11
✎
18:17
|
(1) УТ11
|
|||
3
pessok
31.08.11
✎
19:47
|
ап...
|
|||
4
Lenka_Boo
31.08.11
✎
20:06
|
Отладчик в руки.
И начинай со строки: ВнешняяПФорма = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Реестр для отгрузки построчный"); - находит? получает? УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды()) -Истина? |
|||
5
pessok
31.08.11
✎
20:10
|
(4) процедура серверная, а сервер не в режиме отладки, не выйдет отладчиком пройтись
|
|||
6
pessok
31.08.11
✎
20:16
|
+(5) точнее выйдет, я врубил отладку, но для этого надо всех выгонять, а это не выйдет :(
|
|||
7
Lenka_Boo
31.08.11
✎
20:23
|
Тогда добавь строки "сообщить()" в подозрительных местах.
|
|||
8
pessok
31.08.11
✎
20:24
|
(7) мгм, ну в принципе да
|
|||
9
pessok
31.08.11
✎
20:28
|
(7) УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды()) по ходу ложь...
|
|||
10
pessok
31.08.11
✎
20:29
|
хотя сейчас еще проверю...
|
|||
11
pessok
31.08.11
✎
20:30
|
+(9) угу, ложь
|
|||
12
pessok
31.08.11
✎
20:38
|
вот только куда дальше то курить?
|
|||
13
pessok
31.08.11
✎
20:47
|
А курить надо в ОбъектыПечати, собственно, которые формируются из УправлениеПечатью.ЗадатьОбластьПечатиДокумента()... Вот только фиг знает что дальше...
|
|||
14
pessok
31.08.11
✎
20:57
|
или хз... Нароооооод, неужели никто не делал такого? :)
|
|||
15
Lenka_Boo
31.08.11
✎
21:00
|
Смотри дальше в
"УправлениеПечатью.НужноПечататьМакет(..)" что у тебя должно быть в: "КоллекцияПечатныхФорм" "УникальныйИдентификаторКоманды()" |
|||
16
Denizzz
31.08.11
✎
21:01
|
БСП покури
|
|||
17
pessok
31.08.11
✎
21:04
|
(15) - массив/элемент массив
- ПечатнаяФорма"+ЭтотОбъект.Метаданные().Имя; (16) нету под рукой БСП |
|||
18
pessok
31.08.11
✎
21:07
|
+(17) точнее ТЗ с названиями печатных форм в первом
|
|||
19
Lenka_Boo
31.08.11
✎
21:13
|
У меня нет УТ под рукой.
Насколько у тебя данные отличаются от тех, которые требуются функции НужноПечататьМакет(..), чтоб вернула "истину"? |
|||
20
pessok
31.08.11
✎
21:37
|
(19) тут вот как интересно получается. Если из документа использовать печатную формуЮ то УникальныйИдентификаторКоманды() = "ПечатнаяФормаРеестрДляОтгрузкиПострочный"
а если создавать ее в обработке, то нечто такого типа 0c506179-0402-11e0-a874-002586ee26e4 |
|||
21
pessok
31.08.11
✎
21:44
|
+(20) вру.
ПечатнаяФорма0c506179-0402-11e0-a874-002586ee26e4 ПечатнаяФорма0c506179-0402-11e0-a874-002586ee26e4 Должно истину возвращать, а оно возвращает ложь... |
|||
22
pessok
31.08.11
✎
21:55
|
Кажется я забыл про ВРЕГ()... нафига это надо только? Сейчас буду проверять
|
|||
23
pessok
31.08.11
✎
22:02
|
Да, затык в в Врег()... Это плюс. Теперь вылетает ошибка -
{ОбщийМодуль.УправлениеПечатью.Модуль(106)}: Поле объекта не обнаружено (ТабличныйДокумент) Стр.ТабличныйДокумент = ТабличныйДокумент; танцы с бубном продолжаются :) |
|||
24
pessok
31.08.11
✎
22:08
|
ага, я недозаполнил ТЧ. Сейчас сделаем и проверим :)
|
|||
25
pessok
31.08.11
✎
22:08
|
ТЗ
|
|||
26
pessok
31.08.11
✎
22:39
|
ВнешняяПФорма = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Реестр для отгрузки построчный");
ОбработкаОбъект = ВнешняяПФорма.ПолучитьОбъект(); ДанныеОбработки = ОбработкаОбъект.ХранилищеОбработки.Получить(); АдресХранилищаОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки); ИмяОбработки = Строка(ВнешняяПФорма.Ссылка.УникальныйИдентификатор()); Подключение = ВнешниеОбработки.Подключить(АдресХранилищаОбработки, ИмяОбработки , Истина); Отчет = ВнешниеОбработки.Создать(Подключение); НМакет = Новый ТаблицаЗначений; НМакет.Колонки.Добавить("ИмяВРЕГ"); НМакет.Колонки.Добавить("ТабличныйДокумент"); НМакет.Колонки.Добавить("СинонимМакета"); НМакет.Колонки.Добавить("Картинка"); НМакет.Колонки.Добавить("ПолныйПутьКМакету"); Стр = НМакет.Добавить(); Стр.ИмяВРЕГ = ВРег("ПечатнаяФорма"+ИмяОбработки); Стр.ТабличныйДокумент = Неопределено; Стр.СинонимМакета = Неопределено; Стр.Картинка = Неопределено; Стр.ПолныйПутьКМакету = Неопределено; Отчет.Печать(СсылкаНаОбъект, НМакет, ,); Снова ничего не выводится... Теперь уже ощущение, что не передался объект... |
|||
27
pessok
31.08.11
✎
22:50
|
и массив ссылок передается. блин, куда еще копать, народ?!
|
|||
28
pessok
01.09.11
✎
10:02
|
задача так и не решена :(
|
|||
29
Kerk
01.09.11
✎
10:52
|
Честно про УТ не знаю, но в БП внешние печатный формы возвращали табличный документ, который уже в конфе выводился на экран...
|
|||
30
pessok
01.09.11
✎
12:47
|
(29) оно и возвращает печатный документ
|
|||
31
Kerk
01.09.11
✎
13:36
|
(30) эээ... где? У тебя процедуры в примерах...
У тебя ТабличныйДокумент получается в процедуре Печать, потом "ВывестиТабличныйДокументВКоллекцию" и всё... |
|||
32
pessok
01.09.11
✎
13:57
|
(31) в процедуре печать ВПФ он получается, он есть, отладчиком видится, он правильно передается в ВывестиТабличныйДокументВКоллекцию(), тоже отладчиком смотрю, все ок. А вот выводиться - не выводиться. Глянь, плз
v8: УТ11. Внешняя печатная форма(продолжение) я там более подробно конкретно этого вопроса коснулся |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |