8.х Как подключить word документ в 1С:8.1

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем black22, 4 июн 2008.

  1. TopicStarter Overlay
    black22
    Offline

    black22

    Регистрация:
    4 июн 2008
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Здравствйте Уважаемые форумчане.

    Подскажите пожалуйста как подключить/загрузить документ Microsoft Word
    в 1С:Предпритие 8.1, читал, читал, но ничего не могу понять.((

    Загрузка вордовского документа необходима, с целью дальнейшего поиска, выделения необходимых данных в документе и дальнейшим формированием отчета по этим данным.

    Заранее благодарю за помощь.
  2. dlednev
    Offline

    dlednev Опытный в 1С

    Регистрация:
    23 апр 2008
    Сообщения:
    86
    Симпатии:
    0
    Баллы:
    26
    помедитируй на функцией "ПолучитьCOMОбъект". Для начала поищи ее в синтакспопощнике ну и дальше по ходу вопросы задавай
  3. observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Давай я тебе подскажу!
    А то думаю фраза помедитируй на функцией "ПолучитьCOMОбъект" ни чего тебе не скажет! :unsure:
    Вот пример.
    1. добавляй макет Active document. Пустой или заполненный вордовский файл.
    2. Вот тебе основные примеры...

    Код:
        Расписка=ПолучитьМакет("МакетСправка");
    MSWord=Расписка.Получить();
    Попытка
    Документ=MSWord.Application.Documents(1);
    Документ.Activate();
    
    Замена=Документ.Content.Find;
    Замена.Execute("",Ложь,Истина,Ложь,,,Истина,,Ложь,""+Лево(ТекущаяДата(),10));
    
    Замена=Документ.Content.Find;
    Замена.Execute("",Ложь,Истина,Ложь,,,Истина,,Ложь,""+Дата);
    
    MSWord.Application.Visible=Истина;
    MSWord.Activate();
    Исключение
    Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();
    КонецПопытки;
    
    
    тут я думаю понятно, по принципу замены он в в ворде строчку <ДатаПриказа> заменяет на то что у тебя к программе является Дата
    ******************************************************************

    Более сложный пример.....

    Код:
    АктивныйДокумент = ПолучитьМакет("Макет");
    КомОбъект = АктивныйДокумент.Получить();
    КомОбъект.GoTo(2, 1, 1, "").Select();
    КомОбъект.Application.Selection.MoveDown(5,1);
    //**********************************************************
    
    //Верхний колонтитул
    КомОбъект.Sections(1).Headers(1).Range.Text = "************ "+Формат(ТекущаяДата(),"ДЛФ=DDT");
    //Нижний колонтитул
    КомОбъект.Sections(1).Footers(1).Range.Text = "*******************";    
    //Номера страниц
    КомОбъект.Sections(1).Footers(1).PageNumbers.Add(1);    
    //************************************************************************        
    
    Для Каждого стр Из Таб Цикл
    
    КомОбъект.Application.Selection.TypeText(" "+символы.ПС);
    КомОбъект.Application.Selection.Font.Size = 14;
    КомОбъект.Application.Selection.Font.Bold = False;
    КомОбъект.Application.Selection.TypeText(" "+сокрлп(шифра)+" "+сокрлп(стр.Специальность)+" "+дополнение+" "+символы.ПС+" "+сокрлп(стр.ФормаОбучения)+" "+сокрлп(ссрок)+символы.ПС);
    Спец=стр.Специальность;
    ФОбучения=стр.ФормаОбучения;
    Ступ=стр.Ступень;
    КомОбъект.Application.Selection.Font.Name = "Arial";
    КомОбъект.Application.Selection.Font.Size = 12;
    КомОбъект.Application.Selection.TypeText(""+число+". "+сокрлп(стр.ФИО)+символы.ПС);
    
    Конеццикла;
    
    КомОбъект.Application.Selection.Font.Name = "Arial";
    КомОбъект.Application.Selection.Font.Size = 12;
    КомОбъект.Application.Selection.TypeText(""+символы.ПС+" Всего - "+всеговdbf+" "+символы.ПС);
    
    //***********************************************************
    КомОбъект.Application.Selection.HomeKey(6);
    КомОбъект.ActiveWindow.Visible = Истина;
    КомОбъект.Fields.Update();
    КомОбъект = 0;
    
    
    немного не понятно под редактировал, ну я думаю разобраться можно
    Ну это только очень маленький кусочек, если что спрашивай, мы по ворду не много поднялись в знаниях B) Потом у тебя много вопросов возникнет как и у меня. :D
  4. TopicStarter Overlay
    black22
    Offline

    black22

    Регистрация:
    4 июн 2008
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    2 observer

    Спасибо за примеры! - буду сидеть разбираться))

    Не подкинешь еще советов по поиску данных в тексте и формированием отчета :)
  5. observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Подскажи что тебя именно интересует?
    Я сейчас домой уже пойду, а завтра посмотрю топик, и если смогу помочь в твоих вопросах то отвечу.
    Я сам долго с вордом колупался, самый путёвый способ познать 1С+Word - это макросы в ворде. Я немного логику понял и стал колупать и эксперементировать. Так что вперед и только вперед. :unsure:
  6. TopicStarter Overlay
    black22
    Offline

    black22

    Регистрация:
    4 июн 2008
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Короче говоря задача заключается в следующем
    имеются документы отчетности word:
    содержание:
    таблицы Владельцы - расходы

    -необходимо сформировать отчет по документу
    который будет содержать имя владельца и итого расходов

    проще говоря автоматизировать анализ документа с выделением полей имени владельцев и итого по их расходам и формированием отчета

    а дальше уже подключить это к справочнику, номенклатуре и.т.д ну эт вобщем уже другие заботы
    :unsure:
  7. observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    :unsure: Немного не понятно!
    Попробуй по другому обьяснить!
  8. Yoda
    Offline

    Yoda Опытный в 1С

    Регистрация:
    5 сен 2008
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Подскажи пожалуйста, как сделать такой же поиск-замену значения в колонтитуле ворда?
  9. Yoda
    Offline

    Yoda Опытный в 1С

    Регистрация:
    5 сен 2008
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Замена=Документ.Sections(1).Footers(1).Range.Find;
    Замена.Execute("<НомерДок>" , Ложь, Истина, Ложь, , , Истина, , Ложь, НомерДоговораСПрефиксом);
    Спасибо. Всё просто....как всегда

Поделиться этой страницей