Клиент-сервер, ОболочкаActiveDocument, метод Получить() не срабатывает. Помогите пожалуйста...
В файловом варианте работает код:
В серверном - метод Получить() не отрабатывает... в мануале написано что работает только в толстом клиенте. Чем можно заменить? РеквизитФормыВЗначение - пробовала, не помогает....
ТабДокумент = Новый ТабличныйДокумент;
АктивныйДокумент = Документы.ИсполнительноеПроизводство.ПолучитьМакет("МакетЗаявленийНаВозбуждениеУККом");
КомОбъект = АктивныйДокумент.Получить();
ПоказатьВ серверном - метод Получить() не отрабатывает... в мануале написано что работает только в толстом клиенте. Чем можно заменить? РеквизитФормыВЗначение - пробовала, не помогает....
Найденные решения
Делаю так:
&НаСервере
Функция ПолучитьМакетКонвертаНаСервере()
мОбъект = РеквизитФормыВЗначение("Объект");
Макет = мОбъект.ПолучитьМакет("ПочтовыйКонвертКонтрагенту");
//записываем макет
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("doc");
Макет.Записать(ИмяВременногоФайла);
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
АдресФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ЭтаФорма.УникальныйИдентификатор);
УдалитьФайлы(ИмяВременногоФайла);
Возврат АдресФайла;
КонецФункции
&НаКлиенте
Процедура ПечатьКонвертаКонтрагенту(Команда)
АдресФайла = ПолучитьМакетКонвертаНаСервере();
//получим файл с сервера на клиент
Оповещение = Новый ОписаниеОповещения("ПослеПолученияФайловЗавершение", ЭтотОбъект);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("doc");
ПолучаемыеФайлы = Новый Массив;
ПолучаемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(ИмяВременногоФайла, АдресФайла));
НачатьПолучениеФайлов(Оповещение, ПолучаемыеФайлы,, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПолученияФайловЗавершение(ПолученныеФайлы, ДополнительныеПараметры) Экспорт
СтруктураКонверта = ПолучитьСтруктуруКонвертаНаСервере();
Если СтруктураКонверта = Неопределено Тогда
Возврат;
КонецЕсли;
Описание = ПолученныеФайлы[0];
Word = Новый COMОбъект("Word.Application");
WordApplication = Word.Application;
WordApplication.Documents.Add(Описание.Имя);
СсылкаМакет = WordApplication.Documents(1);
СсылкаМакет.Activate();
СсылкаМакет.Bookmarks("Кому").Select();
СсылкаМакет.Application.Selection.TypeText(СтруктураКонверта.АдресКому);
СсылкаМакет.Bookmarks("Куда").Select();
СсылкаМакет.Application.Selection.TypeText(СтруктураКонверта.АдресКуда);
Word.Application.Visible = Истина;
Word.Application.WindowState = 2;
Word.Application.WindowState = 1;
Word.Activate();
УдалитьФайлы(Описание.Имя);
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Делаю так:
&НаСервере
Функция ПолучитьМакетКонвертаНаСервере()
мОбъект = РеквизитФормыВЗначение("Объект");
Макет = мОбъект.ПолучитьМакет("ПочтовыйКонвертКонтрагенту");
//записываем макет
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("doc");
Макет.Записать(ИмяВременногоФайла);
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
АдресФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ЭтаФорма.УникальныйИдентификатор);
УдалитьФайлы(ИмяВременногоФайла);
Возврат АдресФайла;
КонецФункции
&НаКлиенте
Процедура ПечатьКонвертаКонтрагенту(Команда)
АдресФайла = ПолучитьМакетКонвертаНаСервере();
//получим файл с сервера на клиент
Оповещение = Новый ОписаниеОповещения("ПослеПолученияФайловЗавершение", ЭтотОбъект);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("doc");
ПолучаемыеФайлы = Новый Массив;
ПолучаемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(ИмяВременногоФайла, АдресФайла));
НачатьПолучениеФайлов(Оповещение, ПолучаемыеФайлы,, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПолученияФайловЗавершение(ПолученныеФайлы, ДополнительныеПараметры) Экспорт
СтруктураКонверта = ПолучитьСтруктуруКонвертаНаСервере();
Если СтруктураКонверта = Неопределено Тогда
Возврат;
КонецЕсли;
Описание = ПолученныеФайлы[0];
Word = Новый COMОбъект("Word.Application");
WordApplication = Word.Application;
WordApplication.Documents.Add(Описание.Имя);
СсылкаМакет = WordApplication.Documents(1);
СсылкаМакет.Activate();
СсылкаМакет.Bookmarks("Кому").Select();
СсылкаМакет.Application.Selection.TypeText(СтруктураКонверта.АдресКому);
СсылкаМакет.Bookmarks("Куда").Select();
СсылкаМакет.Application.Selection.TypeText(СтруктураКонверта.АдресКуда);
Word.Application.Visible = Истина;
Word.Application.WindowState = 2;
Word.Application.WindowState = 1;
Word.Activate();
УдалитьФайлы(Описание.Имя);
КонецПроцедуры
Показать
(23) да, спсасибо, постаралось предусмотреть... храню всё в 1 папке, и пути относительные прописываю.
А не подскажете что нафеячить чтобы ещё и в веб-интерфейсе доки формировались? сейчас она мне пишет что использование модальных окон в этой версии запрещено, хотя в настройках конфы у меня Режим использования модальности - использовать. Или это сам браузер не может модальное окно открыть?
А не подскажете что нафеячить чтобы ещё и в веб-интерфейсе доки формировались? сейчас она мне пишет что использование модальных окон в этой версии запрещено, хотя в настройках конфы у меня Режим использования модальности - использовать. Или это сам браузер не может модальное окно открыть?
(24) Почитайте тут https://forum.mista.ru/topic.php?id=834825
И вообще погуглите. Сам подсказать не могу
И вообще погуглите. Сам подсказать не могу
&НаКлиенте
Процедура РаботаСШаблономВорд()
Попытка
ПутьКФайлуНаКлиенте = "Путь к вашему файлу Ворд.docx";
ОбъектВорд = Новый COMОбъект("Word.Application");
ОбъектВорд.Documents.Add(ПутьКФайлуНаКлиенте);
ШаблонВорд = ОбъектВорд.ActiveDocument;
Для каждого ЗакладкаВорд Из ШаблонВорд.Bookmarks Цикл
Сообщить(ЗакладкаВорд.Name);
КонецЦикла;
ШаблонВорд.Bookmarks("НаименованиеВашейЗакладкиВВорде").Select();
ШаблонВорд.Application.Selection.TypeText("ТекстВставки");
ОбъектВорд.Application.Visible = Истина;
ОбъектВорд.Activate();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
(1)
Процедура РаботаСШаблономВорд()
Попытка
ПутьКФайлуНаКлиенте = "Путь к вашему файлу Ворд.docx";
ОбъектВорд = Новый COMОбъект("Word.Application");
ОбъектВорд.Documents.Add(ПутьКФайлуНаКлиенте);
ШаблонВорд = ОбъектВорд.ActiveDocument;
Для каждого ЗакладкаВорд Из ШаблонВорд.Bookmarks Цикл
Сообщить(ЗакладкаВорд.Name);
КонецЦикла;
ШаблонВорд.Bookmarks("НаименованиеВашейЗакладкиВВорде").Select();
ШаблонВорд.Application.Selection.TypeText("ТекстВставки");
ОбъектВорд.Application.Visible = Истина;
ОбъектВорд.Activate();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
(1)
Добрый день!
1. Если конфигурация на УФ (типа "Такси") почему бы вам не закинуть во внешние формы и не использовать ее там? А саму обработку формы уже сможете и макет использовать и все остальное.
2. Или закинуть в шаблоны (опять же для УФ типа "Такси") и вызывать для заполнения оттуда?
1. Если конфигурация на УФ (типа "Такси") почему бы вам не закинуть во внешние формы и не использовать ее там? А саму обработку формы уже сможете и макет использовать и все остальное.
2. Или закинуть в шаблоны (опять же для УФ типа "Такси") и вызывать для заполнения оттуда?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот