Имя: Пароль:
1C
1С v8
Создание колонтитула в вордовом файле через 1с
0 Простенький вопросик
 
24.08.12
07:51
Подскажите, как это правильно сделать?
1 AndyD
 
24.08.12
07:55
вот так колонтитул с номером страницы добавляется, например

   Word=Новый COMОбъект("Word.Application");
   Word.Documents.Add();
   Док=Word.ActiveDocument();
   
   Док.Sections(1).footers(1).PageNumbers.Add(true,false);
2 MSII
 
24.08.12
07:56
+(1) А если нужен верхний колонтитул, то Headers
3 Простенький вопросик
 
24.08.12
07:59
а как задать туда параметр. Например, как написать, чтобы в колонтитул передавалась переменная "СотрудникФио"+"___________"?
4 MSII
 
24.08.12
08:02
(3) Обычно документ предварительно заполняют параметрами, в процедуре подготовки документа к выводу заменяют параметры на нужные значения.
Например, так:
       
Замена=Документ.Sections(1).Footers(1).Range.Find;
Замена.Execute("<#ФИОСотра#>" , Ложь, Истина, Ложь, , , Истина, , Ложь, Сотрудник.Наименование + "___________");
5 Простенький вопросик
 
24.08.12
08:03
спасибо
6 Простенький вопросик
 
24.08.12
08:12
Блин, что то не получается. Смотрите, у меня такой текст. Все простые вордовые переменные меняются. А такая же переменная, нарисованная в нижнем колонтитуле не меняется. Остается как есть [сотрудникСПР]

       Заменить = Документ.Content.Find;
       Заменить.Execute("[ДатаДог]", Ложь, Истина, Ложь, , , Истина, , Ложь, ДатаДогЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[Организация]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОрганизацияЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[Сотрудник]", Ложь, Истина, Ложь, , , Истина, , Ложь, СотрудникФИО+",");
       //Заменить = Документ.Content.Find;
       //Заменить.Execute("[ПодразделениеСпр]", Ложь, Истина, Ложь, , , Истина, , Ложь, ПодразделениеЗапрос+",");
       Заменить = Документ.Content.Find;
       Заменить.Execute("[АдресОрг]", Ложь, Истина, Ложь, , , Истина, , Ложь, АдресОРГЗапрос+",");
       Заменить = Документ.Content.Find;
       Заменить.Execute("[Должность]", Ложь, Истина, Ложь, , , Истина, , Ложь, ДолжностьЗапрос+",");
       
       Заменить = Документ.Content.Find;
       Заменить.Execute("[Организация1]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОрганизацияЗапрос);
       //Заменить = Документ.Content.Find;
       //Заменить.Execute("[Тариф]", Ложь, Истина, Ложь, , , Истина, , Ложь, ТарифЗапрос);
       //Заменить = Документ.Content.Find;
       //Заменить.Execute("[Уральские]", Ложь, Истина, Ложь, , , Истина, , Ложь, УральскиеЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[Сотрудник1]", Ложь, Истина, Ложь, , , Истина, , Ложь, СотрудникФИО+",");
       Заменить = Документ.Content.Find;
       Заменить.Execute("[ПаспортСерия]", Ложь, Истина, Ложь, , , Истина, , Ложь, СерияЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[ПаспортНомер]", Ложь, Истина, Ложь, , , Истина, , Ложь, НомерЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[ПаспортДата]", Ложь, Истина, Ложь, , , Истина, , Ложь, ДатаЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[ПаспортВыдан]", Ложь, Истина, Ложь, , , Истина, , Ложь, ВыданЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[АдресПрописки]", Ложь, Истина, Ложь, , , Истина, , Ложь, АдресЗапрос);
       Заменить = Документ.Content.Find;
       Заменить.Execute("[СтраховойНомер]", Ложь, Истина, Ложь, , , Истина, , Ложь, СтраховойНомерЗапрос);
       
        //================================колонтитул тест
         Замена=Документ.Sections(1).Footers(1).Range.Find;
Замена.Execute("[СотрудникСпр]" , Ложь, Истина, Ложь, , , Истина, , Ложь, СотрудникФИО + "___________");
        //================================колонтитул тест
7 andrewks
 
24.08.12
08:24
Замена=Документ.Sections(1).Footers(1).Item(1).Find;
8 Wobland
 
24.08.12
08:25
ооо, с заменой в колонтитулах я долго любовью занимался. но сейчас быстро не найду
9 Простенький вопросик
 
24.08.12
08:26
(7)
не проканало
10 Wobland
 
24.08.12
08:27
+(8) кстати, решил самостоятельно с помощью гуглов и головы. автор, решение есть, ищи!
11 andrewks
 
24.08.12
08:28
(9) не может быть
12 Wobland
 
24.08.12
08:28
(11) да у него поди нужный айтем не 1
13 andrewks
 
24.08.12
08:30
так тебе какой колонтитул нужен - верхний, или нижний?
14 andrewks
 
24.08.12
08:30
(12) да вроде не может там быть более 1
15 Простенький вопросик
 
24.08.12
08:30
(13)
нижний
16 andrewks
 
24.08.12
08:30
тогда (11)
17 andrewks
 
24.08.12
08:34
(12) а вот Section может быть и не первой...
18 andrewks
 
24.08.12
08:36
Документ.Sections.Count чему равно?
19 Простенький вопросик
 
24.08.12
08:50
Извиняюсь за свою невнимательность, код по замене не в то место вставил.
Изначальный вариант работает правильно, то есть правильно
         Замена=Документ.Sections(1).Footers(1).Range.Find;
Замена.Execute("[СотрудникСпр]" , Ложь, Истина, Ложь, , , Истина, , Ложь, СотрудникФИО + "___________");

(7) выдает ошибку
20 andrewks
 
24.08.12
08:50
вот так вот - придут, напустят тумана, и в кусты
21 Простенький вопросик
 
24.08.12
10:40
Я еще раз извиняюсь, но у меня еще один вопрос возник. Мне надо напечатать колонтитул на всех страницах, кроме последней. Как это настроить?
22 Wobland
 
24.08.12
10:44
(21) последнюю переставить вперёд, и сказать, что колонтитул везде, кроме первой
23 Простенький вопросик
 
24.08.12
10:46
(22)
ну у меня текствовый файл изначально по страницам не разбит, в зависимости от принтеров страницы могут меняться. Иначе я бы собственно не заморачивался с колонтитулами.
24 Wobland
 
24.08.12
10:47
(23) в ворде руками сумеешь изобразить?
25 Простенький вопросик
 
24.08.12
10:50
(24)
Ну фамилии разных длин, предприятия разных, адреса разные. Не получится строго страницы расположить в ворде.
26 Wobland
 
24.08.12
10:51
(25) я про колонтитул
27 Простенький вопросик
 
24.08.12
10:56
(26)
а как руками, есть только галки для первой страницы, четных и нечетных страниц?
28 Wobland
 
24.08.12
10:57
(27) ну вот как сможешь, сразу пиши макрос и смотри, как это выглядит на языке ;)
Независимо от того, куда вы едете — это в гору и против ветра!