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

Тема в разделе "1C и всё что с ней связано", создана пользователем sarenod, 30 авг 2014.

  1. sarenod

    sarenod New Member

    Регистрация:
    30 авг 2014
    Сообщения:
    3
    Симпатии:
    0
    В общем я в этой сфере совсем недавно, так что я многого не знаю :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;

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


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

    RZX Active Member

    Регистрация:
    3 ноя 2009
    Сообщения:
    42
    Симпатии:
    0
    На самом деле в твоем конкретном случае поменяется мало чего:

    Код ( (Unknown Language)):
       
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Ворд = Новый 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-соединение
    КонецПроцедуры
     
  3. sarenod

    sarenod New Member

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

    evgenyatam Well-Known Member

    Регистрация:
    7 сен 2007
    Сообщения:
    175
    Симпатии:
    0
    ТекДокВорд = ДокВорд.Open(СокрЛП("G:\111.doc"));
    Надо заменить "G:\111.doc" на путь к реальному файлу - шаблону. ковычки оставить.
     
  5. sarenod

    sarenod New Member

    Регистрация:
    30 авг 2014
    Сообщения:
    3
    Симпатии:
    0
    Путь естественно поменял) я так понял мне нужно ссылку со справочника Контрагенты делать.
     
  6. RZX

    RZX Active Member

    Регистрация:
    3 ноя 2009
    Сообщения:
    42
    Симпатии:
    0
    Естественно, нужно указать, чьи конкретно реквизиты хочешь вывести в документ MS Word.
     
  7. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    - Ты суслика видишь?
    - Нет.
    - Я и "Нет". А он есть
    х/ф "ДМБ"

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

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

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    http://www.microsoft.com/en-us/download/de...s.aspx?id=40326 - справка по ВБА

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

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Доброго времени суток.

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

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