Имя: Пароль:
1C
 
Как вызвать внешнюю печатную форму из внешней обработки?
0 Kashton
 
27.01.11
09:29
Как вызвать внешнюю печатную форму из внешней обработки?
1 lxs
 
27.01.11
09:31
а точнее?
2 Нуф-Нуф
 
27.01.11
09:31
вызов = новый ВызовПечатнойФормыИзВнешнейОбработки;
Вызов.ПридиКоМне();
3 Kashton
 
27.01.11
09:33
Имеется внешняя обработка (она же печатная форма). вот как вызвать ее из другой внешней обработки?
4 Kashton
 
27.01.11
09:33
(2) Спс. Сейчас попробую
5 lxs
 
27.01.11
09:34
Обработка.Печать();
6 lxs
 
27.01.11
09:35
У тебя же Печать() - экспортная функция в модуле объекта.
7 Axel2009
 
27.01.11
09:36
подглядеть как это делает 1с.. там все глобально
8 MaxS
 
27.01.11
09:39
Функция Печать() Экспорт
   
   СсылкаОбработка = Справочники.ВнешниеОбработки.НайтиПоКоду(КодОбработки);
   
   ИмяФайла = ПолучитьИмяВременногоФайла();
   ДвоичныеДанные = СсылкаОбработка.ХранилищеВнешнейОбработки.Получить();
   ДвоичныеДанные.Записать(ИмяФайла);
   
   Обработка = ВнешниеОбработки.Создать(ИмяФайла);
   Обработка.СсылкаНаОбъект = СсылкаНаОбъект;
   
   // Передать внешней обработке дополнительные параметры
   Если ДополнительныеПараметры <> Неопределено Тогда
       
       // Если у внешней обработки есть реквизит для дополнительных параметров, присвоить ему значение
       Если НЕ Обработка.Метаданные().Реквизиты.Найти("ДополнительныеПараметры") = Неопределено Тогда
           Обработка.ДополнительныеПараметры = ДополнительныеПараметры;
       Иначе
           Обработка.ДополнительныеПараметры = Новый ("Имя",ДополнительныйПараметрИмя);
       КонецЕсли;
       
   КонецЕсли;
   
   ТабДокумент = Обработка.Печать();
   УдалитьФайлы(ИмяФайла);
   
   Возврат ТабДокумент;
   
   
КонецФункции // Печать()

КодОбработки = "000000016"; // Т9  - там несколько печатных форм в одной обработке
ДополнительныйПараметрИмя = "Т10а";
9 MaxS
 
27.01.11
09:43
Применительно в коду (8), при регистрации обработки, в колонке "Параметры обработки" нужно добавить параметр
Имя = "Имя"
Значение = "Т10а"
10 MaxS
 
27.01.11
09:45
для полноты картины, функция из обработки в которой несколько печатных форм:

Функция Печать() Экспорт
   
   Ссылка = СсылкаНаОбъект;
   ВыборкаПоШапкеДокумента = СформироватьЗапросПоШапке().Выбрать();
   Если ВыборкаПоШапкеДокумента.Следующий() Тогда
       
       Организация = ВыборкаПоШапкеДокумента.Организация;
       Дата = ВыборкаПоШапкеДокумента.Дата;
       
       Если ТипЗнч(ДополнительныеПараметры)=Тип("Структура") Тогда
           Если ДополнительныеПараметры.Свойство("Имя") Тогда
               ИмяПечатнойФормы = ДополнительныеПараметры.Имя;
               ТабДокумент = Неопределено;
               Выполнить("ТабДокумент = Печать"+ИмяПечатнойФормы+"("""+ИмяПечатнойФормы+""");");
               Возврат ТабДокумент;
           КонецЕсли;
       КонецЕсли;
       Возврат ПечатьТ9("Т9");
       
   КонецЕсли;
   
КонецФункции // Печать
11 Kashton
 
27.01.11
10:49
(8) Спасибо, друг, все получилось