Word activate 1с не работает

Обновлено: 06.07.2024

Как из 1С по средствам OLE в документ word вложить объект "Лист книгиExcel"?

Если делать из word`а, то через вставку объекта и тип объекта "Лист Microsoft Excel".

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Word 2003 пролистивает документ и открывает пустой лист
Привет всем :) Только-что зарегался на вашем форуме так как очень нужно решить возникшую проблему.

Можно ли связанный (или внедренный) OLE объект прокрутить на форме в OLE контейнере?
Динамически связанный OLE объект (документ Word) не помещяется целиком в форме. Можно ли связанный.

Вставить в html документ атрибут по средствам jqury
Добрый день! Мне нужно вставить в html документ атрибут с помощью jqury, но так чтобы после.

отсыпь :blink:
А потом сходи на форум по VBA и спроси:
"Как (из Access) по средствам OLE в документ word вложить объект "Лист книгиExcel"?"
То, что в скобочках можно убрать, т.к. к сути вопроса отношения не имеет.
Мы не путаем форумы? отсыпь
А потом сходи на форум по VBA и спроси:
"Как (из Access) по средствам OLE в документ word вложить объект "Лист книгиExcel"?"
То, что в скобочках можно убрать, т.к. к сути вопроса отношения не имеет.
Мы не путаем форумы?

Как из 1С по средствам OLE в документ word вложить объект "Лист книгиExcel"?

Если делать из word`а, то через вставку объекта и тип объекта "Лист Microsoft Excel".

Именно лист Ехеля нада или данные из этого листа.

Именно лист Ехеля нада или данные из этого листа.

Как данные вытащить из листа Ехеля и вставить в ворд - это уже элементарные вещи.
Нужно вставить сам лист Ехеля.

Word=СоздатьОбъект("Word.Application");
Word.Documents.Add();
Document=Word.ActiveDocument;
Document.Select();
Selection = Word.Selection;
Selection.InlineShapes.AddOLEObject("Excel.Sheet.8");
Word.Visible=1;
Word.Activate()

с тебя ящик пива

Как можно запустить текстовый документ без OLE
Я сделал инсталлер и в разделе описание нужно нажать на кнопку описания. Я хочу чтобы с нажатием на.

Как узнать открыт ли данный Excel документ в OLE
Здравствуйте. С помощью свойства OlePropertyGet можно подключиться к книге.

Как послать документ Word из Word на заданный email
Попытался написать макрос на VBA, используя свойство SendMail, но при этом автоматически не.

Как открыть OLE объект?
В БД Access в таблице есть поле Adress_R типа OLE , содержащее word-файлы , как их запустить из.

Как запустить импортированный OLE объект?
Как активировать содержимое OleContainer из программы? если это например вордовский файл или.

ВНИМАНИЕ! При использовании кодов описанных ниже, уберите символ _
Давайте рассмотрим на примерах как это делается! =) Мне известно 2 способа:
1. Путем замены шаблонного текста в макете Wordа.
2. Путем вставки текста с помощью закладок в Wordе,

В первом случае сразу скажу, что длина строки передаваемая в функцию замены, довольно небольшая  255 символов, да и расстановка шаблонных выражений в макете Word занимает довольно много времени. Через процедуру Content.Find.Execute.

Во втором случае длина, насколько мне известно неограниченна, также воськаться с закладками намного быстрее и удобнее, чем расставлять шаблонный текст. Используя Bookmarks().S_elect(). Поэтому давайте на коде рассмотрим второй пример.

И так, для начала необходимо добавить Word макет к документу. Добавляем макет с помощью конструктора макетов указав Active document и выбрав соответствующий макет.

Называем его Акт. Открываем макет в 1Ске, ставим курсор в нужном месте, переходим в меню Вставка закладка нажимаем добавить закладку к примеру у меня это НарушенияТекст

Теперь кидаем на форму документа кнопку Сформировать и по нажатию на нее пишем код который открывает наш макет Word ищем закладку по имени и вставляет туда текст:
Код 1C v 8.х
Это пример вывода множества строчек из табличной части  одной строкой, если нужно просто выгрузить какой-то реквизит то можно пропустить часть 2 и перейти к части 3.

Для выгрузки табличной части в форме таблицы можно использовать функцию автоформата, примеру код выгрузки табличной части документа Предписание:
Код 1C v 8.х
Ну вот и все =)
Автор: saylolpls

Еще способ Active document
В Конфигураторе Макеты - правый клик - Добавить
Тип макета: Active document
Создать новый - Документ Microsoft Word

Меню Вставка - Поле - Автоматизация - DocVariable
Написать имя поля в графе "Новое имя:" ДатаПриказа

В модуле формы документа создаем кнопку, и в ее обработчике пишем:
Код 1C v 8.х

2) добавляем не поле, а Закладку
Меню Вставка - Закладка и далее указываем ее имя ("ИмяЗакл")
Код 1C v 8.х

Код 1C v 8.2 УП

Метод ПолучитьМакет работает только на сервере. Методы работы или заполнения Word-а работают как на клиенте, так и на сервере. Показывать пользователю документ (Visible = Истина; Activate();) нужно на клиенте. Получается, нам нужно получить документ на сервере и передать его на клиент, чтобы показать. В данной статье будет рассмотрено 2 способа передачи с сервера на клиент. 1 способ для ActiveDocument, второй для ДвоичныеДанные.

Немного об ActiveDocument

Что пишет о ActiveDocument 1С:

Технология ActiveDocument предназначена для редактирования документов внешними по отношению к 1С:Предприятию 8 редакторами.
Эта технология позволяет редактировать документы визуально (например, Word или Excel) непосредственно в окне 1С:Предприятия 8, при этом элементы пользовательского интерфейса (меню, панели команд и т.д.) заменяются на предоставляемые редактором. Документы могут быть предварительно отредактированы и сохранены в макетах конфигурации, а затем макеты могут использоваться пользователями как основы для создания окончательных версий документов.
Следует заметить, что использование макетов ActiveDocument в режиме Предприятия осуществляется только программно - визуальное редактирование возможно только на этапе создания и редактирования конфигурации.
Эта технология применяется в случае, когда в конфигурации необходимо хранить данные, редактируемые другим приложением - такие, например, как шаблоны для факсов или деловых писем, созданные в Microsoft Word, или шаблоны прайс-листов в Microsoft Excel. Такая необходимость возникает, как правило, при регламентировании формата документов (как во внутреннем документообороте, так и при обмене документами со сторонними организациями и клиентами), однако при отсутствии ограничений на формат документа рекомендуется использовать существующие в 1С:Предприятии 8 возможности по оформлению электронных и печатных документов.

Другими словами: в ДвоичныеДанные вы можете только «Загрузить из файла» и «Выгрузить в файл»


А ActiveDocument можно прямо в конфигураторе редактировать в привычном интерфейсе Microsoft Word. Выглядит это так:


Я писал базу с нуля, где было много шаблонов Word, которые постоянно приходилось переписывать. Было очень удобно в конфигураторе открывать фактически Word, редактировать, перезапускать отладку и смотреть, что получилось. Если у вас шаблон не так часто меняется, то можно в принципе использовать «Двоичные данные».

Передача ActiveDocument с сервера на клиент

Просто получить ActiveDocument на сервере и передать его на клиент не получится. Но можно документ полностью заполнить на сервере, на клиент передать уже полностью готовый документ, и на клиенте его просто запустить.
Пример кода:

При использовании этого кода на сервере должен быть установлен офисный пакет. Представленный код является шаблоном (примером) для дальнейшего программирования. Краткий анализ кода:

1. НаКлиенте мы просто получаем файл в виде двоичных данных с сервера, записываем во временную папку и открываем оттуда файл.
2. НаСервере мы получаем макет, его заполняем (дан пример заполнения через метод Find. Execute), сохраняем во временную папку (это будет папка на сервере вида: C:\Users\<Имя пользователя, под которым запущена служба 1С>\AppData\Local\Temp\v8_F0FB_7f3.docx), переводим файл в двоичные данные и передаём на клиент. Для сохранения документа можно использовать методы Передача макет Word (Двоичные данные) с сервера на клиент

В случае передачи двоичных данных представлю практически весь код.

Краткий анализ кода:
Своим кодом я внедрился в СтандартныеПодсистемы.Печать. На форме документа 2 кнопки: «Письмо на оплату» (печать в табличный документ) и «Письмо на оплату (Word)» (печать в Word).
1. НаКлиенте на форме я получаю из модуля менеджера (функция ПечатьПисьма) структуру всех параметров. Далее получаю Word из макета (двоичные данные) и заполняю его на клиенте
2. Задача функции ПечатьПисьма модуля менеджера предназначена только для сбора сведений, которыми потом заполнится Word на клиенте.

Замечание: если вам адрес во временном хранилище нужен не сразу и единожды (как у меня), то корректней помещать во временное хранилище с уникальным идентификатором, дабы значение не удалилось пока не закрыли форму:

2. Можно сохранить файл Word в общую папку и с клиента его просто получать. Главное, чтобы файл никто не удалил.

Из другого приложения (DIRECTUM) открываю форму справочника 1С следующим образом:

Форма открывается, но в неактивном окне, то есть под вызывающей формой. Каким образом можно сделать окно 1С активным (что бы оно было на самом верхнем уровне)?

P.S.
1С:Предприятие 8.2 (8.2.17.169), УПП редакция 1.2 (1.2.25.1 (UC08.86))

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Открытие Word из другого приложения
Учебники предлагают такой классический вариант. НО! При возникновении ошибки в строке 4 переменная.

Открытие файла Excel из другого приложения
Не могу открыть, точнее запустить Excel с нужным файлом. Пример записи Shell ('C:Program.

Qt qml - открытие другого приложения в основном окне
Подскажите, как можно в основном окне (main.qml) открыть стороннюю программу *.exe , чтоб она.


Открытие формы из другого потока
Как сделать чтобы форма появлялась поверх главной формы. TopMost не помогает, а для MessageBox .

Форма открывается, но в неактивном окне, то есть под вызывающей формой

Выполняется дальше! Т.е. активность возвращается в вызывающий код

Не знаю, есть ли в ИСбилде возможность отложенного запуска функции.

Выполняется дальше! Т.е. активность возвращается в вызывающий код

Ещё есть одна странность:
Не удаётся открыть форму в обычном режиме. Если заменить DoModal() на Open(), то вообще ничего не открывается.

Не удаётся открыть форму в обычном режиме. Если заменить DoModal() на Open(), то вообще ничего не открывается. Потому что переменная скорее всего локальная и умирает после выполнения кода

Ну так вот построен механизм, что он отстукивает что окно было открыто и нужно ожидать возврат значения
После закрытия модального окна, продолжает выполнять код ис-билда

Добавлено через 1 минуту

Ну так вот построен механизм, что он отстукивает что окно было открыто и нужно ожидать возврат значения

Это происходит не явно и повлиять на это вы не можете.

Добавлено через 57 секунд
В ис-билде есть отложенный вызов ?

Ну так вот построен механизм, что он отстукивает что окно было открыто и нужно ожидать возврат значения
После закрытия модального окна, продолжает выполнять код ис-билда Это происходит не явно и повлиять на это вы не можете.

По моим наблюдениям Директум всегда ждёт завершения и только после этого переходит к выполнению следующей команды. Может быть как-то неявно и передаётся управление .

За это предположение говорит и то, что аналогичная ситуация с Вордом. Но из неё удалось выйти с помощью сворачивания и разворачивания окна (последние 2 команды):

Но у Application 1С нет таких команд.

Есть функция ExecuteProcess() для запуска внешних приложений в которой можно задать ждать/не ждать завершения. Можно с помощью неё попробовать запустить отдельный процесс Директум .

Ещё пришла идея - можно с помощью параметров командной строки запустить 1С и сразу задать открытие формы?

Можно из cmd отрыть 1С ку с запуском внешней обработки

Добавлено через 24 секунды
А во внешней обработке прописать открытие формы

Добавлено через 55 секунд
Только появиться сложность туда передать переменную ДоговорГУИД

Добавлено через 22 минуты
Есть ли в is-bilde что нибудь типа 1С овского AttachIdleHandler ?

Есть ли в is-bilde что нибудь типа 1С овского AttachIdleHandler ?

Пока решили остановится на достигнутом.

P.S. В первых постах ошибка в коде. Visible должно быть True, а метода Activate у 1С нету. Вот в таком варианте форма открывается вместе с интерфейсом и мигает в панели задач. Если пользователю повезёт, то он увидит кусочек формы из под других окон

Есть! Но он тебе не поможет, ты же форму МОДАЛЬНО открываешь!

Добавлено через 1 минуту
СергейР, есть возможность переменную V8App объявить глобальной?

Добавлено через 2 минуты
Типа:

Есть! Но он тебе не поможет, ты же форму МОДАЛЬНО открываешь!

Я имел ввиду что у объекта Application в 1С нет метода Activate. Такой метод есть у объекта Application в Word (заставляет мигать значок в панели задач).

СергейР, есть возможность переменную V8App объявить глобальной? В Директум нет глобальных переменных. Есть возможность передавать значения через окружение, но вряд ли это подойдёт в данном случае. Я имел ввиду что у объекта Application в 1С нет метода Activate. Такой метод есть у объекта Application в Word (заставляет мигать значок в панели задач). В Директум нет глобальных переменных. Есть возможность передавать значения через окружение, но вряд ли это подойдёт в данном случае. 1С как ком сервер живет только пока жива переменная, содержащая указатель на этот ком сервер.
Я имел ввиду что у объекта Application в 1С нет метода Activate. DIRECTUM не знаю, но в Фоксе, например, можно оговорить своё родное активное окно и в нём что-то открыть.

Решение

DIRECTUM не знаю, но в Фоксе, например, можно оговорить своё родное активное окно и в нём что-то открыть.

Фокс - это FoxPro?
Это же низкоуровневая система с массой соответствующих возможностей. А DIRECTUM - это резко упрощённая надстройка, заточенная под определённые задачи.

Добавлено через 13 минут
В общем я их (1С и Директум) домучил. Из формы Директума запускаю сценарий Директум как внешнее приложение (окно - максимизировать, завершения выполнения не ждать) и открывается форма 1С в поверх всех окон, хотя по прежнему неактивина - в панели задач активным выделено запускающее окно Директума. Фокус ввода вообще неизвестно где - на нажатие клавиш не реагирует ни окно Директума, ни форма 1С. На мышку нажимаешь - окно формы 1С становится активным. Вот код:

Читайте также: