Помогите Разобраться С Кодом

sarenod

New Member
30.08.2014
3
0
#1
В общем я в этой сфере совсем недавно, так что я многого не знаю :D
Мне нужно чтобы в word'е прописывались реквизиты контрагента. Решил сделать через поиск и замену, так как нашел готовый код. Только вот одна проблемка, он для семерки. Я же работаю на 8.2 ;)


Процедура Кнопка1Нажатие(Элемент)

Ворд=СоздатьОбьект("Word.Application");

Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(СокрЛП("С:\вафывс.dotx")); //путь к шаблону
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute("[ИНН]",0,0,,,,,,,Строка(СокрЛП("ИНН")),1);
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute("[БИК]",0,0,,,,,,,Строка(СокрЛП("БИК")),1);
Содержание=ТекДокВорд.Content;

КонецПроцедуры


Заранее большое спасибо!
 

RZX

Active Member
03.11.2009
42
0
Брест
#2
На самом деле в твоем конкретном случае поменяется мало чего:

Код:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Ворд = Новый COMОбъект("Word.Application"); // ------- !!!!!! ------- используем COMConnector
Ворд.Visible = 1;
ДокВорд = Ворд.documents;
ТекДокВорд = ДокВорд.Open(СокрЛП("G:\111.doc")); //путь к шаблону 
Содержание = ТекДокВорд.Content;
Содержание.Find.Execute("[ИНН]",0,0,,,,,,,Строка(СокрЛП("ИНН")),1);
Содержание = ТекДокВорд.Content; 
Содержание.Find.Execute("[БИК]",0,0,,,,,,,Строка(СокрЛП("БИК")),1);
Содержание = ТекДокВорд.Content; 
Ворд = 0; // я на всякий случай еще закрываю COM-соединение
КонецПроцедуры
 

sarenod

New Member
30.08.2014
3
0
#3
Спасибо) а вот у меня еще такой вопрос я создаю кнопку в реализации товаров и услуг и вставляю в его модуль этот код, но на деле в документе ничего не происходит. Может нужно что-то еще вписать? Справочник_контрагент.ИНН и так далее? как все это прописать и в каком виде? Если не трудно напишите пожалуйста
 

evgenyatam

Well-Known Member
07.09.2007
175
0
43
#4
ТекДокВорд = ДокВорд.Open(СокрЛП("G:\111.doc"));
Надо заменить "G:\111.doc" на путь к реальному файлу - шаблону. ковычки оставить.
 

sarenod

New Member
30.08.2014
3
0
#5
Путь естественно поменял) я так понял мне нужно ссылку со справочника Контрагенты делать.
 

Дайнеко

Well-Known Member
19.11.2009
951
0
53
Минск
#7
... но на деле в документе ничего не происходит.
- Ты суслика видишь?
- Нет.
- Я и "Нет". А он есть
х/ф "ДМБ"

Все происходит, но Вы просто не видите. Ворд открылся в памяти (см. Дипсетчер задач), что надо сделал. Потом 1С закрыла его. Но все не на экране, а внутрях.
В указанном коде не хватает команд:
Код:
ТекДокВорд.Save; // сохранить в этот-же файл 
или
ТекДокВорд.SaveAs; // сохранить в новый файл 
или
ТекДокВорд.Visible = 1; // показать на экране. Пусть юзер сам решает что с ним делать.
Если поставить Visible в начал, после открытия, то все изменения будут делаться прямо на глазах. Если в конце, то увидите уже готовый файл.
Методы пишу предположительно. Параметры не указываю, уточните.

Важное замечание: на исходном файле установите с признак "Только чтение". Иначе затрут к чертям.
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#8
http://www.microsoft.com/en-us/download/de...s.aspx?id=40326 - справка по ВБА

поиск строк - это не всегда это не всегда хорошо - будет например у гендиро отчество Иннокентиевич - получится 1122234565757окентиевич. На регистр закладываться надо. Я когда-то делал поименованные области и обращался к ним.
 

Darlock

Well-Known Member
04.01.2008
560
1
Москва
#9
Доброго времени суток.

Присоединяюсь к совету от puh14. Могу добавить только, что второй вариант - использовать закладки (bookmarks).