Внешняя печатная форма в Word
12.08.2013
09:19
#1
Ситуация следующая. Есть намерение создать ВПФ в формате Word. Привязка пойдет к документу Счет (в БП). Все вроде бы получается, вот только не знаю как сделать, чтобы табличная часть из документа формировалась. Если кто знает, будьте любезны кусочек кода. А то я чего-то ничего не нагуглил.
12.08.2013
10:57
#2
"Примерно так:
//Пусть в шаблоне-заготовке есть шапка таблицы и пока нет ни одной строки."
//Все таблицы в документе Word объединены в коллекцию Tables, элементы которой нумеруются от 1 до Документ.Tables.Count()
СчетчикСтрок=1; //строки нумеруются с 1 и в первой строке у нас шапка таблицы
Для Каждого СтрокаТабличнойЧасти Из Товары Цикл
СчетчикСтрок+=1;
Документ.Tables(НужныйНомерТаблицы).Rows.Add();
Документ.Tables(НужныйНомерТаблицы).Cell(СчетчикСтрок,1).Range.Text=СокрЛП(СтрокаТабличнойЧасти.Номенклатура.Наименование);
Документ.Tables(НужныйНомерТаблицы).Cell(СчетчикСтрок,2).Range.Text=Строка(СтрокаТабличнойЧасти.Количество);
...
КонецЦикла;
13.08.2013
11:12
#4
Отправил.
Для тех кому не видно
Рассматриваются два вопроса:
1. Как в шаблон документа MS Word вставить таблицу.
2. Как сделать так, чтобы для точки входа документа MS Word именованной определенным образом, например [НомерДоговора] и встречающейся в документе много раз значения проставились сразу во все места.
Ответы:
1. Обычно в шаблоне уже есть шапка таблицы и нужно всего лишь к ней добавлять строки и в ячейки вписывать значения. Если же нужно рисовать всю таблицу программно, то нужно в шаблоне как то обозначить место, куда ее нужно вписать. Но проще по первому пути.
2. Точки входа в документе MS Word надо описать через коллекцию Fields с типами полей = wdFieldDocVariable. После этого можно будет извне применять такой программный ход, который проставит значения везде сразу:
Document.Variables("НомерДоговора").Value = "тест"
Document.Fields.Update
О том что такое Fields и с чем их едят:
Для тех кому не видно
Рассматриваются два вопроса:
1. Как в шаблон документа MS Word вставить таблицу.
2. Как сделать так, чтобы для точки входа документа MS Word именованной определенным образом, например [НомерДоговора] и встречающейся в документе много раз значения проставились сразу во все места.
Ответы:
1. Обычно в шаблоне уже есть шапка таблицы и нужно всего лишь к ней добавлять строки и в ячейки вписывать значения. Если же нужно рисовать всю таблицу программно, то нужно в шаблоне как то обозначить место, куда ее нужно вписать. Но проще по первому пути.
2. Точки входа в документе MS Word надо описать через коллекцию Fields с типами полей = wdFieldDocVariable. После этого можно будет извне применять такой программный ход, который проставит значения везде сразу:
Document.Variables("НомерДоговора").Value = "тест"
Document.Fields.Update
О том что такое Fields и с чем их едят:
13.08.2013
11:24
#5
Так вроде бы тема печати договоров из 1С еще со времен 7.7 обсуждается и все решения уже 100500 раз найдены. На "мисте" наверняка есть уже готовые решения. Не скейтборд ли вы ребята изобретаете?
13.08.2013
11:30
#6
Первый раз сталкиваюсь с совместимостью 1с и Word. То, что нарыл в Интернете, не все у меня корректно работает. Отправил обработку Володе, может наставит он меня на путь истинный. Умный бу-у-у-ду!
)
14.08.2013
16:42
#7
Короче, господа, вопрос решен.
Благодаря, в первую очередь, Трувору, а во-вторых, мне, солнцеликому.
)
Если кому-то вдруг потребется решение по данному вопросу - пишите.
Благодаря, в первую очередь, Трувору, а во-вторых, мне, солнцеликому.
Если кому-то вдруг потребется решение по данному вопросу - пишите.
Читают тему
(гостей: 1)