1C (клиент-сервер) и Word #749995


#0 by akhmadey
Платформа 8.3.6.2014. Конфигурация УТ 11.1.10.131. У документа есть печатная форма, макет которой имеет тип Active document (файл Word). Поскольку это печатная форма, то все телодвижения происходят в модуле менеджера, НО получить такой макет мы можем только на клиенте. Макет = ПолучитьМакет("Макет"); На второй строке печать вылетает с ошибкой. Как это обойти, учитывая, что печатная форма должна формироваться по кнопке Печать.
#1 by ДенисЧ
Я не стану угадывать ошибку с трёх попыток!
#2 by akhmadey
Ошибка при вызове метода контекста (Получить). Из-за того, что вызов метода происходит на сервере. Но как в модуль менеджера воткнуть клиентскую процедуру - не представляю.
#3 by Ник080808
через хранилище значений, не?
#4 by Остап Сулейманович
"Поскольку это печатная форма, то все телодвижения происходят в модуле менеджера" Очень спорное утверждение. Никто не мешает заполнить еЯ на клиенте. Только неустановленный MSO.
#5 by akhmadey
С этого места по-подробнее, плз
#6 by vhl
ты хочешь сказать в типовой конфе не работает печатные формы?
#7 by akhmadey
Если макет - табличный документ, то конечно все ровно получается, а тут совсем другой механизм.
#8 by vhl
где "тут"? Ты внешнюю печатную форму цепляешь?
#9 by akhmadey
Нет. Все в модуле менеджера документа, поскольку он самописный.
#10 by gigi789
очень спорно печатать такие вот доки массово
#11 by Ник080808
хранить макет не активдокументом, а через двоичные данные и записывать файл на клиенте. Не?
#12 by vhl
сделай внешним - там процедура печати вызывается из формы, а форма - это клиент. И конфу лопатить не надо
#13 by akhmadey
Я пробовал актив документ сохранять на диске, а потом цеплять как ком-объект, но тогда не работает вот это Замена = Документ.Content.Find
#14 by akhmadey
Тоже не подойдет. Если именно как печатную форму делать, то форма не используется, а вызов процедуры печати непосредственно из модуля обработки. Там же и будет вылетать.
#15 by akhmadey
up
#16 by akhmadey
Разобрался. Если есть необходимость формировать печатные формы в Word или Open Office по фен-шую, то есть по кнопке Печать, как и обычные формы, то нужно в модуле менеджера в процедуре ДобавитьКомандыПечати указать, что форма начинает формироваться не в менеджере, а в общем модуле, который работает на клиенте. Например, КомандаПечати = КомандыПечати.Добавить; А дальше можно у же обращаться к процедурам и функциям менеджера для, например, получения данных.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С