|
1C (клиент-сервер) и Word | ☑ | ||
---|---|---|---|---|
0
akhmadey
06.08.15
✎
09:56
|
Платформа 8.3.6.2014. Конфигурация УТ 11.1.10.131. У документа есть печатная форма, макет которой имеет тип Active document (файл Word). Поскольку это печатная форма, то все телодвижения происходят в модуле менеджера, НО получить такой макет мы можем только на клиенте.
Макет = ПолучитьМакет("Макет"); Word = Макет.Получить(); На второй строке печать вылетает с ошибкой. Как это обойти, учитывая, что печатная форма должна формироваться по кнопке Печать. |
|||
1
ДенисЧ
06.08.15
✎
10:01
|
Я не стану угадывать ошибку с трёх попыток!
|
|||
2
akhmadey
06.08.15
✎
10:05
|
(1) Ошибка при вызове метода контекста (Получить). Из-за того, что вызов метода происходит на сервере. Но как в модуль менеджера воткнуть клиентскую процедуру - не представляю.
|
|||
3
Ник080808
06.08.15
✎
10:09
|
(2) через хранилище значений, не?
|
|||
4
Остап Сулейманович
06.08.15
✎
10:09
|
(0) "Поскольку это печатная форма, то все телодвижения происходят в модуле менеджера"
Очень спорное утверждение. Никто не мешает заполнить еЯ на клиенте. Только неустановленный MSO. |
|||
5
akhmadey
06.08.15
✎
10:13
|
(3) С этого места по-подробнее, плз
|
|||
6
vhl
06.08.15
✎
10:30
|
(0) ты хочешь сказать в типовой конфе не работает печатные формы?
|
|||
7
akhmadey
06.08.15
✎
10:31
|
(6) Если макет - табличный документ, то конечно все ровно получается, а тут совсем другой механизм.
|
|||
8
vhl
06.08.15
✎
10:36
|
(7) где "тут"? Ты внешнюю печатную форму цепляешь?
|
|||
9
akhmadey
06.08.15
✎
10:38
|
(8) Нет. Все в модуле менеджера документа, поскольку он самописный.
|
|||
10
gigi789
06.08.15
✎
10:39
|
(4) очень спорно печатать такие вот доки массово
|
|||
11
Ник080808
06.08.15
✎
10:49
|
(5) хранить макет не активдокументом, а через двоичные данные и записывать файл на клиенте. Не?
|
|||
12
vhl
06.08.15
✎
10:52
|
(9) сделай внешним - там процедура печати вызывается из формы, а форма - это клиент. И конфу лопатить не надо
|
|||
13
akhmadey
06.08.15
✎
10:53
|
(11) Я пробовал актив документ сохранять на диске, а потом цеплять как ком-объект, но тогда не работает вот это Замена = Документ.Content.Find
|
|||
14
akhmadey
06.08.15
✎
11:47
|
(12) Тоже не подойдет. Если именно как печатную форму делать, то форма не используется, а вызов процедуры печати непосредственно из модуля обработки. Там же и будет вылетать.
|
|||
15
akhmadey
07.08.15
✎
06:42
|
up
|
|||
16
akhmadey
07.08.15
✎
13:54
|
Разобрался. Если есть необходимость формировать печатные формы в Word или Open Office по фен-шую, то есть по кнопке Печать, как и обычные формы, то нужно в модуле менеджера в процедуре ДобавитьКомандыПечати указать, что форма начинает формироваться не в менеджере, а в общем модуле, который работает на клиенте. Например,
КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Обработчик = "ОбщийМодульКлиент.СформироватьПечатнуюФормуMSWord"; КомандаПечати.МенеджерПечати = ""; КомандаПечати.Идентификатор = "ФормаMSWord"; КомандаПечати.Представление = "Форма (MS Word)"; А дальше можно у же обращаться к процедурам и функциям менеджера для, например, получения данных. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |