Имя: Пароль:
1C
1C 7.7
v7: Работа с Word.Application - какая коллекция содержит в себе схему документа?
0 Zhuravlik
 
11.07.13
14:52
Добрый день. Просто устал уже в доке копаться, которой куча и в основном по-нерусски....
Хочу вытянуть из .doc схему документа, т.е. ссылки в оглавлении, в тз.

Начинал так:
   Word= СоздатьОбъект("Word.Application");
   //Видимость его
   Word.Visible=1;
   //добавляем новый док
   Word.Documents.Add("D:\МойДок.doc");
   //активный док
   Док=Word.ActiveDocument();

Дальше у меня сгенериралсь als-ка и интелы, все кучеряво так, с подсказками, но у этого объекта столько всего, что я потерялся просто.
Может кто развернет в сторону верного решения?

Я думаю нужно просто обойти циклом некую коллекцию, и повытягивать оттуда что мне надо, а где она лежит?
1 UnoMomento
 
11.07.13
16:20
Может это поможет ....
Функция   WORD_УстановитьСвязь (ПолноеИмяФайла)Экспорт
   
   Результат = 0;
   Состояние("Идет установка связи, ждите.....");
   
   Попытка
       Результат = СоздатьОбъект("СписокЗначений");
       Результат.УдалитьВсе();
                           
       BaseOLE = СоздатьОбъект("Word.Application");
       BaseOLE.ScreenUpdating = 0;  
       BaseOLE.Visible = 0;

       Результат.Установить("WORD", BaseOLE);
                         
       WORDФайл = BaseOLE.Documents.Add(ПолноеИмяФайла);
       Результат.Установить("WORDФайл", WORDФайл);
                               
       МассивПеременныхДокумента =  СоздатьОбъект("СписокЗначений");
       МассивПеременныхДокумента.УдалитьВсе();  
                                       
       КоличествоПеременных = WORDФайл.Fields.Count;
       Для е = 1 по КоличествоПеременных Цикл         //Result  Code
           ИмяПеременной = "";
           ЗнПоля = СокрЛП(WORDФайл.Fields(е).Code.text);
           Если ВРег(Лев(ЗнПоля,11)) = "DOCVARIABLE" Тогда
               ЗнПоля = СокрЛП(Сред(ЗнПоля, 12));
               ИмяПеременной = СокрЛП(Лев(ЗнПоля, ?(Найти(ЗнПоля, " ") <> 0,Найти(ЗнПоля, " "),СтрДлина(ЗнПоля))));
           КонецЕсли;
           
           Если ИмяПеременной <> "" Тогда
               МассивПеременныхДокумента.ДобавитьЗначение(ИмяПеременной);
           КонецЕсли;
       КонецЦикла;
       
       Результат.Установить("Переменные", МассивПеременныхДокумента);

   Исключение
       Результат = 0;
       Сообщить("Ошибка создания обьекта Microsoft Word" + ОписаниеОшибки());
   КонецПопытки;
   
   Возврат Результат;
КонецФункции
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс