Имя: Пароль:
1C
1С v8
перенос встроенной печ формы во внешнюю из УПП
,
0 manti
 
11.05.12
11:44
Доброго всем времени! УПП стоит 1.3.22.
Есть документа корректировка реализации, есмть его встроенная печ. форма. Делаю из встроенной внешнюю. Дошел до следующего момента

УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетФактураВыданный", ИмяМакета, ПараметрКоманды, Неопределено);

И далее понеслись вызовы встроенных функций и процедур Процедура  ВыполнитьКомандуПечатиНаПринтер, из нее Процедура СформироватьПечатныеФормыДляБыстройПечатиОбычноеПриложение, Процедура СформироватьПечатныеФормыДляБыстройПечати, Процедура СформироватьПечатныеФормы, Функция МенеджерОбъектаПоПолномуИмени, Функция РазложитьСтрокуВМассивПодстрок.
И все эти вызовы идут ради Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода), которая вызывается из Процедура СформироватьПечатныеФормы.
Проблема вся в том, что если я оставлю эту цепочку всю как есть, то вызывается функции из глобальных модулей, а мне нужно чтобы эта печать шла из моей внешней обработки. Как моэно решить эту проблему?
1 Cube
 
11.05.12
11:47
(0) "А ты думаешь нам, царям, легко?" (с) Иван Васильевич меняет профессию.

Перенести нужные куски кода в модуль обработки не предлагать?
2 Галахад
 
гуру
11.05.12
11:48
Чо-та не понял. Разве плохо "вызывается функции из глобальных модулей"?
В чем проблема-то?
3 manti
 
11.05.12
11:50
тоесть после  УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.СчетФактураВыданный", ИмяМакета,ПараметрКоманды,Неопределено); должна пойти

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
   
   ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
   
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактура") Тогда
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактура", "Счет фактура", ПечатьСчетаФактурыММ(МассивОбъектов, ОбъектыПечати));
   КонецЕсли;
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактура283") Тогда
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактура283", "Счет фактура", ПечатьСчетаФактурыММ(МассивОбъектов, ОбъектыПечати));
   КонецЕсли;
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактура84")  Тогда
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактура84", "Счет фактура", ПечатьСчетаФактурыММ(МассивОбъектов, ОбъектыПечати));
   КонецЕсли;
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактура575") Тогда
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетФактура575", "Счет фактура", ПечатьСчетаФактурыММ(МассивОбъектов, ОбъектыПечати));
   КонецЕсли;
КонецПроцедуры
а как параметры в нее передать, минуя столько процедур?
4 manti
 
11.05.12
11:51
(2) в печати вызывается  ПечатьСчетаФактурыММ - там у меня запрос переделан под нужды
5 Рыжий Лис
 
11.05.12
11:54

Функция Печать() Экспорт
   
   ОбъектыПечати =    Новый СписокЗначений;
   
   МассивОбъектов = Новый Массив;
   МассивОбъектов.Добавить(СсылкаНаОбъект);
   
   УниверсальныеМеханизмы.НапечататьДокумент(ПечатьМоейПечатнойФормы(МассивОбъектов, ОбъектыПечати), 1, Ложь, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект), СсылкаНаОбъект);
   
   Возврат Неопределено;
   
КонецФункции
6 Cube
 
11.05.12
11:55
(4) Чо-чо, ПечатьСчетаФактурыМММ?!)) Гламурненько))
7 strange2007
 
11.05.12
11:59
Много форм вынес во внешние. С корректировкой реализации не бодался. Реально алгоритм всегда одинаковый: основную проц-у печати выношу в обработку. При необходимости макет тоже переношу. Все вызовы из проц-ры как правило идут к экспортным проц-м. Если используются локальные, не экспортные, то переношу их тоже в обработку, но этого уже год не наблюдал
8 manti
 
11.05.12
12:10
(5) у меня вместо СсылкаНаОбъект выражение ВнОбработка.СсылкаНаОбъект, принимающий тип ДокументСсылка.СчетФактураВыданный, значение Счет-фактура выданный ПЕ-00000763 от 04.05.2012 8:28:20.
В итоге когда идет ПечатьМоейПечатнойФормы(МассивОбъектов, ОбъектыПечати) ругается Поле объекта недоступно для записи (Ссылка) Для каждого Ссылка Из МассивОбъектов Цикл
9 Рыжий Лис
 
11.05.12
12:14
(8) Переименуйте Ссылку во что либо иное
10 manti
 
11.05.12
13:04
(9) спасибо большое заработала. Теперь проблема в выхове с сервера

Ошибка при вызове метода контекста (ПредставлениеСерий)
Строчка.НаименованиеТовара = СокрЛП(Строчка.НаименованиеТовара) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(Строчка);
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ПредставлениеСерий ().
В конфе не ругается а во внешней обработке уже не работает.
11 aspirant
 
11.05.12
13:35
я с мутабельными боролся, перенося эти процедуры тоже во внешнюю форму.
12 manti
 
11.05.12
13:53
(11) да так и сделал, всем спасибо)
13 Рыжий Лис
 
11.05.12
20:03
(11)(12) Для таких случаев есть модуль ФормированиеПечатныхФорм без слова Сервер.
Закон Брукера: Даже маленькая практика стоит большой теории.