Пример внешней печатной формы для вывода отчета в MS WORD из конфигурации ЗУП 3, работает как в файловом, так и в клиент-серверном варианте работы 1С.
В обработке реализован пример печати в word из конфигурации ЗУП 3. Печатается макет «Лист ознакомления работников» из документа «Прием на работу».
Макет реализован с помощью ActiveDocument, его можно редактировать непосредственно в конфигураторе с помощью интерфейса word.
Код сделан максимально простым, комментарии присутствуют.
Для работы отчета в клиент-серверном варианте работы, необходимо наличие установленного MS WORD на сервере 1С
{ВнешняяОбработка.ЛистОзнакомленияВWORD.Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221005(0x800401F3): Недопустимая строка с указанием класса
Платформа 8.3.8.1933
(1) DMak,
проверил на 8.3.8.2027, Зарплата и управление персоналом, редакция 3.1 (3.1.1.61), и Word 2007 у меня работает,
Для работы отчета у Вас должен быть установлен Word
ЗУП КОРП 3.1.1.95 (клиент-серверный):
{ВнешняяОбработка.ЛистОзнакомленияВWORD.Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221005(0x800401F3): Недопустимая строка с указанием класса
В локальной базе все и норм, а в клиент-серверном варианте ошибка.
Ошибка возникает в момент получения МакетВорд:
Тестирование с правами доступа на сервере, лучше сохранять во временный каталог (к нему обычно права у пользователей есть):
Суть проблемы кроется в следующем:
1. Создается путь к файлу на диске C:\r
2. Файл сохраняется на сервере
3. Локальный компьютер не может получить данный файл с сервера
4. Ошибка
Предположу, что передавать файл с сервера на клиент лучше через хранилище (но какой-то долгий путь выходит, пусть даже всего 5-8 строк кода добавится).
Предвижу вопрос про Word на сервере 🙂 Нормальные (или очень злые) админы, никакое ПО кроме серверного на файловый сервер не ставят. От силы могут разрешить Word Viewer от MS установить. Но он не спасет положение. А вот через передачу посредством временного хранилища все заработало. Пока не тестировал на терминальном сервере, для удаленных пользователей, но как минутка появится проверю и там.
(4) Amras, обработка выложенная здесь работает и на локальной базе и на клиент-серверной, но только на сервере, по поводу работы на терминальном сервере или по сети я менял обработку с передачей файла с клиента сервер:
до строчки
вставлял следующий код:
Показать
(наличие установленного на сервере ворда обязательно)
Если есть другие варианты просьба поделитесь пожалуйста
(5) у меня такая же ошибка при получении СОМ объекта — {Форма.Форма.Форма(12)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221005(0x800401F3): Недопустимая строка с указанием класса
Платформа — 8.3.7.2008
ЗУП — 3.0.25.144
и странный механизм печати внешнего макета — открытие формы обработки и оттуда печать, раньше ведь все было в модуле обработки и сразу выводилось на печать… это я так понял и связано с тем что СОМ объект не доступен на сервере, но тут еще какая то проблема с указанием класса, не подскажете как с ней бороться?
Столкнулся с проблемой, механизм работает через вставка замена в ворд, но пока документ ворд активный, как только какая-то программа перехватывает активность, в моем случае скайп, вываливается ошибка! =) ни кто не сталкивался???пытаюсь разобраться..пока решений не нашел..