Имя: Пароль:
1C
1С v8
Как отлаживать внешнюю печатную форму под УФ
0 Admin_Net_1C
 
21.03.12
14:10
Народ, подскажите плиз, как отлаживать внешнюю печатную форму под управляемыми формами (конкретно конфигурация УТ 11.0.7.18, но интересует в целом методика)?
1 Лирик
 
21.03.12
14:17
Лепишь в обработку форму и вызывешь из нее процедуры формирующие ПФ.
2 mikecool
 
21.03.12
14:18
а чем отличается от обычных?
3 Admin_Net_1C
 
21.03.12
14:23
Направление понял, УФ только начинаю осваивать, функционал формирования самой печатной форме реализован в Модуле объекта внешней печатной формы. Создал форму для обработки на ней разместил поле для выбора документа и кнопку для вызова процедуры печати. Вопрос: каким образом из процедуры Модуля формы вызвать функцию модуля объекта, формирующую Табличный документ для вывода на печать?
4 Zombi
 
21.03.12
14:25
(3) Печать();
не?
5 Admin_Net_1C
 
21.03.12
14:27
(3) поясню
в Модуле объекта:

[CODE]
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Справка к ТТН") Тогда
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
                    "Справка к ТТН", "Справка к ТТН",
                    СформироватьПечатнуюФорму("РеализацияТоваровУслуг", МассивОбъектов, ОбъектыПечати));
   КонецЕсли;
КонецПроцедуры // Печать()

Функция СформироватьПечатнуюФорму(Тип, МассивОбъектов, ОбъектыПечати)
...
Возврат ТабличныйДокумент;
   
КонецФункции // СформироватьПечатнуюФорму()

[/CODE]

В Модуле формы:

[CODE]
&НаКлиенте
Процедура ПечатьСправки(Команда)
 
  //Как здесь вызвать функцию формирования Табличного документа????

КонецПроцедуры
[/CODE]
6 Лирик
 
21.03.12
14:27
Засунь основной реквизит формы в значение и через точку.
РеквизитФормыВЗначение("Объект").Печать()
7 Admin_Net_1C
 
21.03.12
14:28
(4) просто Печать(...)?
{Форма.Форма.Форма(4,3)}: Процедура или функция с указанным именем не определена (Печать)
    <<?>>Печать(); (Проверка: Тонкий клиент)
8 Лирик
 
21.03.12
14:28
Только эта конструкция должна быть в серверной процедуре формы
9 Лирик
 
21.03.12
14:30
&НаКлиенте
Процедура ПечатьСправки(Команда)
 
  //Как здесь вызвать функцию формирования Табличного документа????
  ПечатьСправкиНаСервере();

КонецПроцедуры

&НаСервере
Процедура ПечатьСправкиНаСервере()
 
  //Как здесь вызвать функцию формирования Табличного документа????
  А = РеквизитФормыВЗначение("Объект").Печать();


КонецПроцедуры
10 Лирик
 
21.03.12
14:31
Печать не функция, "А = " ненадо :)
11 Admin_Net_1C
 
21.03.12
14:33
(8)(9) понял, спасибо
Подскажи еще один момент плиз, как передать в процедуру печать ссылку на текущий документ (в процедуре печати есть запрос к движениям документа)?
12 Лирик
 
21.03.12
14:39
На форме сделай реквизит этого типа и выбирай нужный документ.
13 Admin_Net_1C
 
21.03.12
14:44
(12) на форме создал реквизит "СсылкаДок" типа "ДокументСсылка.РеализацияТоваровУслуг"

&НаКлиенте
Процедура ПечатьСправки(Команда)
   ПечатьСправкиНаСервере(СсылкаДок);
КонецПроцедуры

&НаСервере
Процедура ПечатьСправкиНаСервере(Ссылка)
   
   РеквизитФормыВЗначение("Объект").Печать(Ссылка);
   
КонецПроцедуры


ругается:

{Форма.Форма.Форма(4,25)}: Переменная не определена (СсылкаДок)
   ПечатьСправкиНаСервере(<<?>>СсылкаДок); (Проверка: Тонкий клиент)
14 Admin_Net_1C
 
21.03.12
14:49
(13) разобрался
ПечатьСправкиНаСервере(Объект.СсылкаДок);

Лирик, сенкс за пинок в нужном направлении ))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший