Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
1

Вывод данных в существующую таблицу Word

22.12.2015, 10:07. Просмотров 3903. Ответов 7
Метки нет (Все метки)

Всем привет. Что-то я запуталась с выводом таблиц в ворд. В шаблоне у меня есть готовая шапка, нужно вывести строки таблицы и в конце итог, при чем кол-во столбцов итога отличается от количества столбцом всей таблицы.
Что-то я вообще не нахожу инфу по выводу в существующую таблицу.
Что я делала: ставила метку в начале таблицы. В строке для каждого столбца прописывала текст, который потом при нахождении и установке позиции на метке заменяла нужной информацией. В результате чушь какая-то и замена не происходит, плюс столбцы все уезжают куда-то.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    ТекДок.Bookmarks("Tabl1").Range.Select();
    Табл = Word.Selection;
    Word.Application.Selection.MoveDown();
    Word.Application.Selection.SelectRow();
    Word.Application.Selection.Copy();
    Счетчик = 1;    
    Для Каждого ТекСтр Из Объект.Оборудование Цикл
        
        //Заменяем значения
        Word.Application.Selection.Find.Execute("Номер" ,,,,,,,,,Счетчик,2);
        Word.Application.Selection.Find.Execute("Номенклатура" ,,,,,,,,,Строка(ТекСтр.Номенклатура),2);
                ...
        Word.Application.Selection.MoveDown();
        Word.Application.Selection.Paste();
 
        Word.Application.Selection.MoveUp();
        Word.Application.Selection.SelectRow();
        Счетчик = Счетчик + 1;
        КонецЦикла;
Пробовала заполнять пустую строку через разделить "*" и в конце Табл.ConvertToTable("*")-в результате заполняются только столбцы с номером, остальное - пусто:
1C
1
2
3
4
5
6
7
8
9
    ТекДок.Bookmarks("Tabl1").Range.Select();
    Табл = Word.Selection;
    Счетчик = 1;    
    Для Каждого ТекСтр Из Объект.Оборудование Цикл
     Табл.InsertAfter(Строка(Счетчик)+"*"+Строка(ТекСтр.Номенклатура)+"*"+Строка(ПолучитьЗначениеРеквизитаНаСервере(ТекСтр.Номенклатура, "ЕдиницаИзмерения")));
        Табл.InsertParagraphAfter();
        Счетчик = Счетчик + 1;
    КонецЦикла;
    Табл.ConvertToTable("*");
В чем проблема?
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2015, 10:07
Ответы с готовыми решениями:

Подстановка данных в Word и вывод на печать
Так и не могу понять ,как сделать подстановку данных в документ. Надо сделать через "двоичные...

Word: вставка данных в существующую таблицу
Всем Добрый День! Word.Application w = new Word.Application(); w.Visible = false; ...

Вывод данных из DBrida в уже существующую таблицу Excel
Здравствуйте, подскажите(хотя понимаю в Инете куча инфы, только я ничего подходящего не нашел...),...

Вставка строки в уже существующую таблицу в Word
Добрый день. Ломаю голову над казалось бы элементарной задачей. В документе Word существует...

Импорт данных их xls в существующую таблицу
Здравствуйте. Помогите реалиовать задумку. Есть таблица в excel (Колонка А: 1, 2, 3.... Колонка...

7
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
22.12.2015, 13:56  [ТС] 2
Что-то я снова: сама спросила - сама ответила) Просто вчера ночью надо было ложиться спать...
Все вышло: сделала вывод строк через замену текста с нахождением закладки, установленной в первом столбце готовой шапки таблицы, итог - через заполнение переменных. С заменой текста надо быть аккуратнее: у меня были повторяющиеся слова в заменяемом тексте "Сумма".
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
ТекДок.Bookmarks("Tabl1").Range.Select();
    Счетчик = 1;    
 
        ТекДок.Application.Selection.MoveDown();
    ТекДок.Application.Selection.SelectRow();
    ТекДок.Application.Selection.Copy();
 
        Для Каждого ТекСтр Из Объект.Оборудование Цикл
        
        //Заменяем значения
        ТекДок.Application.Selection.Find.Execute("Номер" ,,,,,,,,,Счетчик,2);
        ТекДок.Application.Selection.Find.Execute("Номенклатура" ,,,,,,,,,Строка(ТекСтр.Номенклатура),2);
        ТекДок.Application.Selection.Find.Execute("ЕдИзм" ,,,,,,,,,Строка(ТекСтр.ЕдИзм),2);
        ТекДок.Application.Selection.Find.Execute("Колво" ,,,,,,,,,Строка(ТекСтр.Количество),2);
        ТекДок.Application.Selection.Find.Execute("Цена" ,,,,,,,,,Строка(ТекСтр.Цена),2);
        ТекДок.Application.Selection.Find.Execute("Сумма" ,,,,,,,,,Строка(ТекСтр.СуммаВсего-ТекСтр.СуммаНДС),2);
        ТекДок.Application.Selection.Find.Execute("Ставка" ,,,,,,,,,Строка(ТекСтр.СтавкаНДС),2);
        ТекДок.Application.Selection.Find.Execute("НДС" ,,,,,,,,,Строка(ТекСтр.СуммаНДС),2);
        ТекДок.Application.Selection.Find.Execute("Всего" ,,,,,,,,,Строка(ТекСтр.СуммаВсего),2);
        
        ТекДок.Application.Selection.MoveDown();
        ТекДок.Application.Selection.Paste();
        ТекДок.Application.Selection.MoveUp();
        ТекДок.Application.Selection.SelectRow();
        Счетчик = Счетчик + 1;
    КонецЦикла; 
    
    //Вырезаем лишнюю строку
    ТекДок.Application.Selection.Cut();
        
    ТекДок.Variables("Kolvo").Value = Строка(Объект.Оборудование.Итог("Количество"));
    ТекДок.Variables("SummaVsego").Value = Строка(Объект.Оборудование.Итог("СуммаВсего")-Объект.Оборудование.Итог("СуммаНДС"));
    ТекДок.Variables("SummaNDS").Value = Строка(Объект.Оборудование.Итог("СуммаНДС"));
    ТекДок.Variables("SummaSNDS").Value = Строка(Объект.Оборудование.Итог("СуммаВсего"));
1
Миниатюры
Вывод данных в существующую таблицу Word   Вывод данных в существующую таблицу Word  
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
23.12.2015, 20:46  [ТС] 3
И снова вопрос на тему заполнения таблиц в ворде. У меня теперь новый шаблон с картинкой и двумя строками, которые нужно копировать и вставлять. Собственно вопрос: можно ли сразу выделить две строки и скопировать их в буфер для дальнейшей вставки? И каким образом лучше вставлять картинки? Я пока сделала закладку в этом месте, но не представляю, что будет с закладкой при копировании строки...
0
Миниатюры
Вывод данных в существующую таблицу Word  
Dethmontt
Модератор
Эксперт 1С
2643 / 2436 / 415
Регистрация: 10.03.2011
Сообщений: 8,699
Записей в блоге: 1
Завершенные тесты: 1
24.12.2015, 03:01 4
GreenkO, вообще, я думаю этот вопрос больше к VBA...

Цитата Сообщение от GreenkO Посмотреть сообщение
можно ли сразу выделить две строки и скопировать их в буфер для дальнейшей вставки?
Тебе в этом должен помочь section
Цитата Сообщение от GreenkO Посмотреть сообщение
И каким образом лучше вставлять картинки?
Вставка изображения в таблицу в WORD
И вот тут еще посмотри
http://catalog.mista.ru/public/68072/

Как сделать без сохранения изображения в темп, я в гугле не нашел, да и сам никогда не пробовал...
http://forum.infostart.ru/forum26/topic130622/
1
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,781
26.12.2015, 22:49  [ТС] 5
Dethmontt, спасибо, порылась в типовых, нашла много полезных процедур в общих модулях печати.
Есть вопрос: можно ли из 1с программно узнать об окончании страницы ворда? В частности это надо для корректного отображения данных таблицы (вывод информации об одном товаре должен быть на одной странице).
0
Gokusa
Заблокирован
27.12.2015, 21:43 6
я думаю вряд ли имеется такой тег или способ узнать о конце страницы.
так как- что такое конец страницы- я например не понимаю
м.б. мона прописать че нить невидимое, слеш какой - нить
з.ы. недавно пришел файл вордовский в нем было 159 м.б чисто текста, полезной инфы 19 м.б, остальные 15 600 000 пустые строки
0
Dethmontt
Модератор
Эксперт 1С
2643 / 2436 / 415
Регистрация: 10.03.2011
Сообщений: 8,699
Записей в блоге: 1
Завершенные тесты: 1
28.12.2015, 10:49 7
GreenkO, анализируй количество страниц при каждом выводе.
В Word проанализировать момент окончания страницы
0
tramvai
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 36
28.03.2016, 11:59 8
Понимаю, что уже поздно, но я делал вывод информации в таблицу ворд с готовой шапкой вот так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// заполняем приложение 1
    ВордТаблица1 = Word.ActiveDocument.Tables(1); //Выбрали первую таблицу в макете (параметр в скобке номер таблицы в макете)
    а=1;
    Для Каждого СтрокаТабличнойЧасти Из Услуги Цикл         
            ВордТаблица1.Rows.Add();
            ВордТаблица1.Range.Font.Bold = 0;// убираем жирный шрифт
            ВордТаблица1.Range.Font.Name = "Times New Roman";
            ВордТаблица1.Range.Font.Size = 10;      
            ВордТаблица1.Cell(а+1,1).Range.text = СтрокаТабличнойЧасти.НомерСтроки;
            ВордТаблица1.Cell(а+1,2).Range.text = СтрокаТабличнойЧасти.Услуга.Наименование;
            ВордТаблица1.Cell(а+1,3).Range.text = СтрокаТабличнойЧасти.Услуга.Обоснование;
            ВордТаблица1.Cell(а+1,4).Range.text = СтрокаТабличнойЧасти.Услуга.БазоваяЕдиницаИзмерения.Наименование;
            ВордТаблица1.Cell(а+1,5).Range.text = Формат(СтрокаТабличнойЧасти.Коэффициент, "ЧДЦ = 3");
            ВордТаблица1.Cell(а+1,6).Range.text = Формат(СтрокаТабличнойЧасти.Частота, "ЧДЦ = 2");
            ВордТаблица1.Cell(а+1,7).Range.text = СтрокаТабличнойЧасти.КоэффициентУдаленности;
            ВордТаблица1.Cell(а+1,8).Range.text = Формат(СтрокаТабличнойЧасти.Цена, "ЧДЦ = 2");
            ВордТаблица1.Cell(а+1,9).Range.text = Формат(СтрокаТабличнойЧасти.Сумма, "ЧДЦ = 2");
            а=а+1;      
    КонецЦикла;
Ну и итоговую сумму, по другому
0
28.03.2016, 11:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2016, 11:59

Добавление срок в таблицу Word при заполнении документа Word из данных Excel
Всем привет! Я новичок в этом деле и нужна помощь. Есть таблица Excel с данными на основании...

Вывод из базы в таблицу на word
Друзья нужна ваша помощь в доработке проекта. Есть таблица в базе sqlite в ней несколько полей,...

Вставить существующую таблицу JSP
Есть страница jsp на которой надо выводить таблицу всех юзеров в БД. Моя идея такова, что у меня в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru