Имя: Пароль:
1C
1С v8
Размер колонок для таблицы в DOC средствами 1С
,
0 MAPATNK2
 
naïve
07.11.19
13:54
Всем доброго дня. Программно формирую таблицу, но не могу ширину колонок проставить. Подскажите, как это можно сделать? Пишу так:

Table = Документ.Tables.Add(Position, 1, 9, 1, 2);
                // Устанавливаем ширину колонок
                Table.Columns(1).PreferredWidth=2;
                Table.Columns(2).PreferredWidth=4;
                Table.Columns(3).PreferredWidth=12;
                Table.Columns(4).PreferredWidth=5;
                Table.Columns(5).PreferredWidth=5;
                Table.Columns(6).PreferredWidth=5;
                Table.Columns(7).PreferredWidth=5;
                Table.Columns(8).PreferredWidth=5;
                Table.Columns(9).PreferredWidth=5;
                //Table.AutoFitBehavior (2);
                //Table.AutoFitBehavior (0);

                // Задаем заголовки колонок
                Row1=Table.Rows(1);
                Row1.Cells(1).Range.Text="№";
                Row1.Cells(2).Range.Text="Артикул";
                Row1.Cells(3).Range.Text="Товары (работы, услуги)";
                Row1.Cells(4).Range.Text="Кол-во";
                Row1.Cells(5).Range.Text="Ед.";
                Row1.Cells(6).Range.Text="Цена";
                Row1.Cells(7).Range.Text="Сумма без скидки";
                Row1.Cells(8).Range.Text="Скидка (наценка)";
                Row1.Cells(9).Range.Text="Сумма";
                Row1.Range.Font.Bold = 9999998;
                Row1.Range.Font.Size = 11;
                Row1.Range.Font.Name = "Times New Roman";
                Row1.Range.ParagraphFormat.Alignment = 1;
Но получаю колонки, которые все равны. Подскажите, почему так?
https://yadi.sk/i/nYyLJB4cAD-W1w
1 MAPATNK2
 
naïve
07.11.19
13:56
2 MAPATNK2
 
naïve
07.11.19
14:02
В версии Worf 2008 года, все работало. Поставили 2017 года, т.к. новый сервер старые версии не запускает ииии пробелма...
3 бегинер
 
07.11.19
14:19
1) запиши макрос в ворде 2017 на изменение ширины и сравни со своим кодом. сделай как в макросе
2) запусти свой исходный код не из 1с а из макроса vba - проверь будет ли работать
4 MAPATNK2
 
naïve
07.11.19
14:58
(3) Я пытался разобраться, как макрос записывать, но он не дает записывать движения мышки. XD
5 sqr4
 
07.11.19
15:02
Вроде нужно указывать не PreferredWidth а просто Width
6 MAPATNK2
 
naïve
07.11.19
15:08
Selection.MoveDown Unit:=wdLine, Count:=2
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveUp Unit:=wdLine, Count:=22
    Selection.MoveLeft Unit:=wdCharacter, Count:=11
    Selection.MoveLeft Unit:=wdItem
    Selection.MoveRight Unit:=wdItem
    Selection.MoveLeft Unit:=wdItem
    Selection.MoveRight Unit:=wdItem
    Selection.OMaths.Add Range:=Selection.Range
    Selection.OMaths(1).Remove
    Selection.OMaths.Add Range:=Selection.Range
    Selection.OMaths(1).Remove
    Selection.OMaths.Add Range:=Selection.Range
    Selection.OMaths(1).Remove
    Selection.OMaths.Add Range:=Selection.Range
    Selection.OMaths(1).Remove
    Selection.Paragraphs.OutlineDemote


Что с этим делать макросом теперь?
7 sqr4
 
07.11.19
15:10
ааа нулевой пост сломал мисту)
8 mikecool
 
07.11.19
15:12
начиная с какой то версии, наверное 2010, таблицы все с признаком адаптивной ширины по содержимому
в параметрах есть такая галочка, может ее программно надо снять?
9 MAPATNK2
 
naïve
07.11.19
15:19
Как макросы то переводить в код 1с?
10 sqr4
 
07.11.19
15:19
(9) путем копирования)
11 MAPATNK2
 
naïve
07.11.19
15:31
(10) Так не работает
12 sqr4
 
07.11.19
16:06
(5) а так?
13 бегинер
 
07.11.19
16:11
твой код работает и с PreferredWidth:
Set MyRange = ActiveDocument.Content
Set Table = ActiveDocument.Tables.Add(MyRange, 1, 9, 1, 2)
Table.Columns(1).PreferredWidth = 2
14 бегинер
 
07.11.19
16:12
проверь запусти макрос:
Sub add_table()
    Set MyRange = ActiveDocument.Content
    Set Table = ActiveDocument.Tables.Add(MyRange, 1, 9, 1, 2)
    Table.Columns(1).PreferredWidth = 2
    Table.Columns(1).PreferredWidth = 50
End Sub
15 бегинер
 
07.11.19
16:22
Программист всегда исправляет последнюю ошибку.