Имя: Пароль:
1C
Админ
Результат запроса - таблица, вывод в word
0 наГайКа
 
27.01.14
09:19
Добрый день!
Результат запроса может быть пустой, а может быть таблица из 1 строки и более.
Подскажите, пожалуйста, как вывести в word всё, что получилось в запросе.
1 Wobland
 
27.01.14
09:21
зачем?
2 наГайКа
 
27.01.14
09:30
Знаю, что лучше сделать в табличном документе. Но изначально печатная форма настроена в word. Переписывать не охота. Ну и интересно, ведь если правильно понимаю, возможность такая есть.
3 alexei366
 
27.01.14
09:34
(2) А до этого у вас как заполнялось, как понимаю просто ключевые слова заменялись?
4 наГайКа
 
27.01.14
09:37
(3) Ни как не выводилось. Сейчас стало нужно вывести периоды, не включаемые во время оплачиваемой работы за последний год. Это к примеру отпуск по уходу за ребёнком до 1,5 лет.
5 alexei366
 
27.01.14
09:41
(4) Ну я свою процедуру заполнения ворда объектом базы писал, там и экранирование спец символов сделал и заполнение таб части (если нет строк то и из ворда удаляет).
В типовых тоже есть,. но как там у них с таб частями я не в курсах)
6 наГайКа
 
27.01.14
09:46
(5) А подробнее можно? =)
7 fmrlex
 
27.01.14
09:54
(6) В интернете полно примеров вывода информации в word.
8 наГайКа
 
27.01.14
10:26
(7) то, что мне нужно пока не нашла.
9 alexei366
 
27.01.14
10:32
(6) блин там толпа кода и функций, ну я в общих чертах идеологию рассказать могу если хочешь)
10 fmrlex
 
27.01.14
10:36
11 applix
 
27.01.14
10:38
12 ptiz
 
27.01.14
10:39
Создаем заранее в шаблоне таблицу из шапки и одной строки и, например:

            ТаблицаВорд = Документ.Content.tables.item(1);
            ТаблицаВорд.Rows(2).Select();
            Если ДанныеТаблицы.Количество() > 1 Тогда
                MSWord.Selection.InsertRowsBelow(ДанныеТаблицы.Количество() - 1);
            КонецЕсли;
            
            Для каждого СтрокаТЗ Из ДанныеТаблицы Цикл
            
                НомерСтроки = (ДанныеТаблицы.Индекс(СтрокаТЗ) + 1);
                ТаблицаВорд.Cell(НомерСтроки + 1, 1).Range.Text = НомерСтроки;
                ТаблицаВорд.Cell(НомерСтроки + 1, 2).Range.Text = СтрокаТЗ.КонтрагентСтрокой;
13 наГайКа
 
27.01.14
11:02
(10) Благодарю.
14 наГайКа
 
27.01.14
11:16
(9) Конечно хочу =)
15 alexei366
 
27.01.14
12:50
(14) Значит у меня такая религия:
В шаблоне ворда могут использоваться след спец. символы:
1) "{" и "}" что обозначает начало и конец параметра
2) "[" и "]" - начало и конец выполнения подсчета некоторого значения
3) "<" и ">" - обозначает множественную часть (закрытие обозначается "<\НекаяТаблица>")
4) "\" - предназначен для экранирования спец символов

Есть основная функция которая проходиться по каждому символу документа ворд, экранируя спец. символы, заменяя выражения "{}", вычисляя выражения "[]", создавая строки в таблице или копирует обозначенный "<>" участок столько раз сколько нужно (или удаляет если таблица объекта пуста). Причем можно строить конструкции типа "таблица в таблицу в таблице в таблице".
В макете как ты уже поняла можно использовать вычисляемые выражения для подстановки как в 1с77.
Для заполнения, вычисления и т.д. я использую объект обработка
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан