|   |   | 
| 
 | УТ11. Внешняя печатная форма(продолжение) | ☑ | ||
|---|---|---|---|---|
| 0
    
        pessok 01.09.11✎ 12:58 | 
        Итак, я почти разобрался с тем, как вызвать на печать ВПФ из ВО.
  Код вызова: Процедура НапечататьРеестр(СсылкаНаОбъект) ВнешняяПФорма = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Реестр для отгрузки построчный"); ОбработкаОбъект = ВнешняяПФорма.ПолучитьОбъект(); ДанныеОбработки = ОбработкаОбъект.ХранилищеОбработки.Получить(); АдресХранилищаОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки); ИмяОбработки = Строка(ВнешняяПФорма.Ссылка.УникальныйИдентификатор()); Подключение = ВнешниеОбработки.Подключить(АдресХранилищаОбработки, ИмяОбработки , Истина); Отчет = ВнешниеОбработки.Создать(Подключение); НМакет = Новый ТаблицаЗначений; НМакет.Колонки.Добавить("ИмяВРЕГ"); НМакет.Колонки.Добавить("ТабличныйДокумент", Новый ОписаниеТипов("Строка")); НМакет.Колонки.Добавить("СинонимМакета", Новый ОписаниеТипов("Строка")); НМакет.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Строка")); НМакет.Колонки.Добавить("ПолныйПутьКМакету", Новый ОписаниеТипов("Строка")); Стр = НМакет.Добавить(); Стр.ИмяВРЕГ = ВРег("ПечатнаяФорма"+ИмяОбработки); Стр.ТабличныйДокумент = Неопределено; Стр.СинонимМакета = Неопределено; Стр.Картинка = Неопределено; Стр.ПолныйПутьКМакету = Неопределено; Отчет.Печать(СсылкаНаОбъект, НМакет, ,); КонецПроцедуры Процедура Печать() написана согласно БСП Данные передаются корректно, запрос в процедуре СформироватьПечатнуюФорму() возвращает правильное значение, что видно из скрина... Вот только печатная форма не выводится... Скрин: http://rghost.ru/20088161.view Собственно на скрине: задний фон - результат выполнения обработки ВПФ непосредственно из документа реализации передний фон - обработка пакетной печати, где выбран тот же документ. Поле запроса Документ возвращается одинаково для обоих вариантов, из чего я сделал вывод, что данные переданы и обработаны правильно. Сам запрос в процедуре обрабатывается, соответственно. По причине того, что процедура СформироватьПечатнуюФорму() вызывается вообще я делаю вывод, что УправлениеПечатью.НужноПечататьМакет <> Неопределено, иначе бы не вызвалось. Опять таки СформироватьПечатнуюФорму() нормально возвращает ТабличныйДокумент. Однако печатная форма так и не выводится... Я уже отчаился... Помогите, люди добрые... | |||
| 1
    
        pessok 01.09.11✎ 13:00 | 
        Кстати, в догонку. Желательно сразу посылать документ на принтер, без предпросмотра. Это лучше прописать в ВПФ, или есть методы по БСП?     | |||
| 2
    
        pessok 01.09.11✎ 13:45 | 
        ну чтож такое то? никто не знает, или никто помочь не хочет?     | |||
| 3
    
        pessok 01.09.11✎ 14:25 | 
        ап...     | |||
| 4
    
        pessok 01.09.11✎ 15:18 | 
        ап еще раз...     | |||
| 5
    
        Kerk 01.09.11✎ 15:21 | 
        Блин. Сделай ТабличныйДокумент.Показать();     | |||
| 6
    
        pessok 01.09.11✎ 15:28 | 
        (5) в СформироватьПечатнуюФорму()?     | |||
| 7
    
        pessok 01.09.11✎ 15:32 | 
        уже вот так сделал:
  Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ТД = СформироватьПечатнуюФорму(МассивОбъектовНазначения, ОбъектыПечати); ТД.Показать(); Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды()) Тогда ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектовНазначения, ОбъектыПечати); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды(), ЭтотОбъект.Метаданные().Синоним, ТабличныйДокумент ); КонецЕсли; КонецПроцедуры не помогает... | |||
| 8
    
        pessok 01.09.11✎ 16:08 | 
        так и не выводится     | |||
| 9
    
        Kerk 01.09.11✎ 16:36 | 
        Ищи где вызывается внешние печатные формы в конфигурации. Тут явно, чего-то не хватает...     | |||
| 10
    
        pessok 01.09.11✎ 17:45 | 
        да я в курсе, а вот найти не могу :) вроде быб всего хватает...     | |||
| 11
    
        Lenka_Boo 01.09.11✎ 19:13 | 
        Помню, у меня была плюха при вызове внешней печатной формы из документа. Ошибка чисто по невнимательности. Не на ту строчку тыкнула при выборе типа реквизита.
  "СсылкаНаОбъект" имела тип "ДокументОбъект", а нужно "ДокументСсылка" | |||
| 12
    
        pessok 01.09.11✎ 19:31 | 
        (11) сейчас проверю :)     | |||
| 13
    
        pessok 01.09.11✎ 19:32 | 
        +(12) хотя СсылкаНаОбъект в УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер передается нормально     | |||
| 14
    
        pessok 01.09.11✎ 19:38 | 
        Да нет. ДокументСсылка, все ок     | |||
| 15
    
        pessok 01.09.11✎ 19:43 | 
        Подключение = ВнешниеОбработки.Подключить(АдресХранилищаОбработки, ИмяОбработки , Истина);
  Отчет = ВнешниеОбработки.Создать(Подключение); а не ВнешниеОтчеты тут надо использовать, кстати? | |||
| 16
    
        pessok 01.09.11✎ 20:02 | 
        да вроде бы как нет...
  чтож делать то? *бьеца головой ап стену* | |||
| 17
    
        pessok 01.09.11✎ 21:11 | 
        может с таблицей команд еще как-то енто связано?     | |||
| 18
    
        pessok 01.09.11✎ 22:16 | 
        так параметры печати в табличного документа тоже нормально передаются...
  ПАРАМЕТРЫ_ПЕЧАТИПечатнаяФорма0c506179-0402-11e0-a874-002586ee26e4 | |||
| 19
    
        pessok 01.09.11✎ 22:49 | 
        Добавлю еще кое-что... Я прям в шоке - ТабличныйДокумент.Записать() - РАБОТАЕТ! И правильно пишет документ! А вот показывать не хочет... Что за хрень?
  ТабличныйДокумент.Показать() - тишина, ТабличныйДокумент.Записать() - вполне себе нормальный файл с нужными данными... ЧЯДНТ?! | |||
| 20
    
        pessok 01.09.11✎ 23:01 | 
        Скорее всего надо толи форму как-то получить, толи хз...     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |