Как в Word открыть окно вопроса? #437372


#0 by 253670489
Можно ли в Ворде открыть окно вопроса? Есть начало, а что дальше? MsOffice = Новый COMОбъект("Word.Application"); MsgBox(prompt[, buttons] [, title] [, helpfile, context]) а как это вызвать в 1С?
#1 by Stim
попробуй через помощника
#2 by 253670489
Не совсем понял, какого помощника? Если имеется ввиду синтакс-помощник, то там ничего нет!
#3 by НЕА123
Вопрос
#4 by 253670489
Вопрос это вызывается окно вопроса в 1С:Преприятие, а мне нужно открыть окно вопроса в Вореде.
#5 by also
Ну и попробуй в VB задать через Execute
#6 by 253670489
а можно немного поподробнее как это сделать?
#7 by Stim
нет. Через помощника в Ворде, агента в 1С. В ворде это скрепка, например
#8 by Stim
+7 агент выскакивает поверх всех окон и управление идет через 1С. Правда, это не совсем подходит для деловой документации:)
#9 by План счетов
#10 by План счетов
И еще можно почитать:
#11 by smaharbA
Зачем ?(с)
#12 by 253670489
справка по Ворду мне также не помогла.
#13 by Stim
я про
#14 by smaharbA
что хотел то - точно можешь сказать, что за вопрос ?
#15 by 253670489
ясно, но помощник был в MSOffice только до 2000 верси, в 2007 его уже нет. А пользователь всегда может использовать новейшие версии. , мне при сохранении документа Word, который был открыт, нужно задать вопрос, и при его ответе сделать соответствующие действия в 1С.
#16 by 253670489
(9, 10) При создании макроса и его выполнении непосредственно в Ворде я в 1С не получу результата, который вернулся при ответе пользователя на вопрос.
#17 by План счетов
дак ты из ворда запускай 1С по ОЛЕ и отправляй туда параметры.
#18 by 253670489
Пожалуйста не подскажите как это сделать? Как именно передать параметр и как его значение потом получить после выполнения макроса?
#19 by 253670489
я из 1С запускаю Ворд, и по Вашей ссылке создаю в нем макрос, но как получить результат выполнения макроса не знаю!
#20 by Stim
ну что, разобралсо?
#21 by 253670489
пока нет!
#22 by План счетов
когда запускаешь ворд - он и работает сам по себе. Пропиши в макросах параметры базы из которой ты запустил ворд. Пользователь в ворде сделает необходимые действия и ворд запустит 1С и передаст туда что тебе надо - например внесет изменения в константе. а как из ворда передать параметр в 1С - я не делал но думаю не особо сложно: 1S = CreateObject("V77.Application") и т.д.
#23 by Stim
ага.. но только в ворде нет процедры ПриЗакрытии :)
#24 by План счетов
как нету? а Private Sub Document_Close End Sub
#25 by План счетов
Надо делать так. Из 1С делаешь файл ворда с нужными данными и макросами. сохраняешь его и потом открываешь из 1С так ЗапуститьПриложение(<?>); RunApp(<?>); Пример: Замечание: Если необходимо дождаться завершения программы и получить ее код возврата (что требуется, например, при запуске внешних архиваторов) лучше использовать метод run системного объекта WScript.Shell. Пример: это для 7-ки, для 8-ки думаю тоже такое есть.
#26 by 253670489
Понятно спасибо, Но мне нужно было открыть Ворд, и вылавливать у него событие перед сохранением (DocumentBeforeSave), что я и делаю. Перед сохранением Ворда у меня в 1С вызывается процедура ОбработкаСобытияДокумента, где я должен был спросить пользователя что он дальше хочет делать (но вопрос должен задаваться не в программе 1С, а в Ворде) и дальше выполнить необходимые действия в Базе 1С. я думал что это будет примерно так: Процедура ОбработкаСобытияДокумента(Doc, SaveAsUI, Cancel) Но оказалось не все так просто как я думал, и из ворда запускать заново приложение 1С у меня нет возможности (не известно какие параметры будут у 1С);
#27 by smaharbA
все гораздо просче и от макроса в 1С ответ легко получается, но можно и без макроса
#28 by План счетов
продолжайте
#29 by 253670489
Очень интересно
#30 by smaharbA
В модуль дока ворд В класс Вот и отлавливай эту вариаблу
#31 by 253670489
А как такой макрос вставить в ворд? И как их разделить одну часть в модуль документа Вор, а вторую в класс(я не понял что такое класс).Так не получается? И как на счет второго варианта? Без макросов?
#32 by 253670489
Хотелось бы конечно без макросов, а то пользователю придется включить исполнение макросов и ставить галочку "Доверять доступ к обектной модели проектов VBA". Что не каждый пользователь сделает!
#33 by smaharbA
С макросами примерно так
#34 by 253670489
С использованием макроса я разобрался у меня получилось так: Вот так вроде работает, но нужно еще удалять созданный макрос (иначе при закрытии Ворда предлагается сохранить его в формате dotm, а этого не надо). И вообще нужно переделывать чтоб не использовались макросы (если это вообще возможно!). А то пользователи не знают и не хотят включать возможность исполнения макросов и ставить галочку "Доверять доступ к обектной модели проектов VBA".
#35 by smaharbA
тогда можно и вариаблы не пользовать
#36 by 253670489
Это тоже хорошо, но все равно это будет роботать если только у пользователя стоит разрешение на исполнение макросов. А нужно без этого! Но все равно огромное спасибо!
#37 by Parti
когда это сделаешь, добавляй статью в КЗ
#38 by 253670489
Обязательно
#39 by План счетов
Может получится пописать макрос или сделать его внешним:
#40 by План счетов
пописать = подписать
#41 by smaharbA
Вообще то можно и без подписания а вариант без макросов до тупости прост :)
#42 by 253670489
ВСЁ РАБОТАЕТ!!!! Спасибо smaharbA. Действительно все просто! Чувство было, что должно быть не так всё сложно, но незнание не дало найти рациональное решение! Всем спасибо за помощь!
#43 by 253670489
А что-нибудь бодобное WordBasic для Excel есть?
#44 by ДенисЧ
Есть. VBA
#45 by 253670489
как я уже говорил VBA не подойдет, т.к. пользователю придется включить исполнение макросов и ставить галочку "Доверять доступ к обектной модели проектов VBA". Что не каждый пользователь сделает!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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