Имя: Пароль:
1C
1С v8
Помогите с внешней печатной формой, пожалуйста!
,
0 Zanzarchik
 
14.08.12
00:39
Здравствуйте, волшебники 1С! Помогите, пожалуйста, разобраться с ActiveDocument. Такая вот ситуация у меня: создаю внешнюю печатную форму, н-р, для перемещения товаров (неважно). Макет этой печатной формы я создаю на основе шаблона Excel через ActiveDocument. Вот код, прописанный в модуле объекта моей внешней обработки:
/////////////////////////////////////////////////////////////

перем ДокументДляЭксэль Экспорт;
+ Code
перем АктивныйДокумент Экспорт;
Функция Печать()Экспорт
  Объект = СсылкаНаОбъект.ПолучитьОбъект();
  ТЧ = Объект.Товары;
  НашаОрганизация = Объект.Организация.Наименование;
 
  АктивныйДокумент = ПолучитьМакет("Макет");
  ДокументДляЭксэль = АктивныйДокумент.Получить();
   
  ЯчейкаОрганизация = ДокументДляЭксэль.worksheets(1).Range("Организация");
  ЯчейкаОрганизация.Value = НашаОрганизация;
     
  ОбластьСтроки = ДокументДляЭксэль.worksheets(1).Range("Строка");
  Строка = 1;
  Для каждого Стр Из ТЧ Цикл
       
  ОбластьСтроки.Cells(Строка,1).Value = Стр.НомерСтроки;
  ОбластьСтроки.Cells(Строка,11).Value = Стр.Количество;
  ОбластьСтроки.Cells(Строка,15).Value = Стр.ЦенаВРознице;
  ОбластьСтроки.Cells(Строка,18).Value = Стр.ЦенаВРознице*Стр.Количество;
  Строка = Строка + 1;    
 
  КонецЦикла;
  ДокументДляЭксэль.Application.Visible = true;
  ДокументДляЭксэль.Application.Workbooks(1).Windows(1).Visible = true;
  ДокументДляЭксэль.Activate();
  Возврат Неопределено;
 
КонецФункции

/////////////////////////////////////////////////////////////


Когда я использую просто внешнюю обработку - все работает, документ выводится на экран с заполненными параметрами. Если я подцепляю эту печатную форму к документу, то Excel открывается и сразу же закрывается. На этом форуме есть подобные темы, н-р: v8: Не получается открыть Active document Excel
Только предложенные там решения мне не помогли. Поэтому вопрос: как сделать так, чтобы печатная форма показывалась и не закрывалась?
1 sanja26
 
14.08.12
00:53
Ексель = ДокументДляЭксэль.Application;
Ексель.Quit();
2 sanja26
 
14.08.12
01:00
Quit() в конце конечно

ну еще можно через файл
может не будут ругать за ссылку, там про ворд, но аналогично
3 sanja26
 
14.08.12
01:01
4 Zanzarchik
 
14.08.12
01:28
Спасибо, sanja26! Попробую - отпишусь!
5 Zanzarchik
 
14.08.12
01:36
Попробовал, с Excel так не получается. При подключении формы к документу, эта форма начинает открываться и сразу же закрываться.
6 iceman2112
 
14.08.12
05:45
1) зачем excel?
2)функция печать, насколько я знаю должна возвращать табличный документ. Я думаю если создать кнопку в непосредетвенно в документе, куда вставить вашу процедуру Печать(), то всё будет работать. Если это так, то вывод очевиден.
7 Wobland
 
14.08.12
06:17
>Объект = СсылкаНаОбъект.ПолучитьОбъект();
объект тут для на зачем?

и ексель вообще тут на зачем?
8 Бубр
 
14.08.12
06:19
(0) посмотри сколько процессов excel открыто
9 iceman2112
 
14.08.12
06:40
Автор что то покурил
10 Zanzarchik
 
14.08.12
09:17
Всем спасибо за участие в решении моей проблемы!!!!

(8) - процессов Ексэль запускается 1 и сразу же закрывается.
(7) - Объект = СсылкаНаОбъект.ПолучитьОбъект() - это не так важно, мне просто в дальнейшем нужен именно объект. Ексель здесь для того, чтобы руками не рисовать макет, я его через АктивДокумент делаю. Знаю есть обработка xls в mxl, но все же охота разобраться с данной проблемой.
(6) - Функция Печать() может и не возвращать табличный документ, можно вообще ТабДокумент.Показать(). Но у АктивДокумента такого метода нет. С Вордом все получается нормально, т.е. макет открывается и не закрывается. Кнопку тоже не вариант размещать, т.к. это уже изменение конфы, а я делаю через внешнюю печатную форму.