Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: 1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую  (Прочитано 17177 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alexmyt
Гость
« : 27-06-2005 06:57 » 

Из 1С формируется документ Word на основе шаблона. Имеется таблица, в первой ячейке которой находится текст с форматированием. Остальные ячейки пустые. Необходимо скопировать текст из первой ячеки в остальные, не теряя форматирование.

Познания VB минимальные, решить проблему с наскока не получилось. Пытался сделать так (из 1С):

Table = Документ.Tables(Документ.Tables.Count);
Table.Cell(1,1).Select();
Text = Word.Selection.Range.FormattedText;

... // Цикл по строка и столбцам
Table.Cell(Row,Column).Range.FormattedText = Text;
... // КонецЦикла


В результате на последнем операторе ошибка:
Цитата
Microsoft Word: Не удается скопировать содержимое между двумя этими диапазонами.

Помогите, пожалуйста, решить проблему.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 27-06-2005 09:51 » 

alexmyt

при копировании ячейки в ячейку, сохраняется форматирование копируемой ячейки

Код:
Public Function MyCopy()
    Dim tbl As Table
    Set tbl = ThisDocument.Tables(1)
    'копируем нужную ячейку
    tbl.Cell(1, 1).Select
    Selection.Copy

    For i = 1 To 5
        'вставляем данные
        tbl.Cell(2, i).Range.Paste
    Next i
End Function
« Последнее редактирование: 20-12-2007 17:52 от Алексей1153++ » Записан

I Have Nine Lives You Have One Only
THINK!
DDD2006
Гость
« Ответ #2 : 04-10-2006 08:23 » 

Может нужно новую тему открыть, но решил задать вопрос в эту?
Пытаюсь сделать шаблон договора в Word 2003
пишу в 1С

Процедура Договор()
   
   WordApp=СоздатьОбъект("Word.Application");
   NewDoc=WordApp.Documents;           
   //Открітие файла
   Док=NewDoc.Add("d:\Тест.doc");
   //Заполнение текстового поля
   Док.FormFields("ТекстовоеКонтрагент").Result =СокрЛП(Контрагент.ПолнНаименование);
   Док.FormFields("ДатаДоговора").Result=СокрЛП(Договор.Наименование);
   Док.FormFields("ДатаВозникновенияДог").Result=СокрЛП(Формат(Договор.ДатаВозникновенияОбязательства,"Д (0)ДДММММГГГГ"));
   Док.FormFields("СокрФИО").Result=СокрЛП(ФИОКотраогент(Контрагент.ПолнНаименование));
   
   Док.FormFields("НомерПаспорт").Result=СокрЛП(Контрагент.ДокументНомер);       
   Док.FormFields("СерияПаспорта").Result=СокрЛП(Контрагент.ДокументСерия);
   
   Док.FormFields("ДатаВыдач").Result=СокрЛП(Контрагент.ДокументДатаВыдачи);
   Док.FormFields("ДокВыдан").Result=СокрЛП(Контрагент.ДокументКемВыдан);
   
   //WordApp.Documents.Open("d:\Тест.doc");
   Док.Save();
   //   Док.SaveAs("d:\"+ТекущаяДата()+" "+Контрагент.Наименование+".doc",0);
   Док.SaveAs("d:\"+Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ") +" "+Контрагент.Наименование+".doc",1);
   Док.Documents.Open("d:\"+Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ") +" "+Контрагент.Наименование+".doc");
   Док.Close();
   Док.Application.Quit();
   WordApp.Quit();
КонецПроцедуры

Но работает что-то он через раз и криво, не открывает этот заполненный договор, при открытии Ворда там 2 а то и более зависит от того сколько раз нажали документов... как можно исправить это?

Как можно записать уже в созданный файл?

Где можно скачать по VB хорошую документацию на русском?
Записан
Polundra_Pi
Гость
« Ответ #3 : 05-10-2006 07:12 » new

Я конечно не большой специалист по ВБА, но запись
 Док.Application.Quit();
   WordApp.Quit();
  есть масло маслянное,ведь достаточно записи WordApp.Quit(), которая завершает текущий процесс Ворда.
Не записывает в уже созданную заготовку возможно из-за того, что у файла поставлен атрибут только чтение.
И два раза сохранять информацию, не стоит, хотябы в самом файле заготовки, тоесть есле Вы используете метод
SaveAs, то Save не стоит применять, загразняя файл заготовки.
Хелп и есть неплохая, хоть и не самая лучшая документация, документация, не знаю есть он в русском переводе, но есть и другие книги.

Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines