1

Тема: Как передать данные в другой столбец таблицы WORD

делаю передачу данный из 1С в шаблон договора в word

Процедура ПечатьПоШаблону()
   //WD = СоздатьОбъект("Word.Application");
   Попытка
      WD = СоздатьОбъект("Word.Application");
   Исключение
      Сообщить(ОписаниеОшибки(),"!!!");
      Сообщить("Возможно, MS Word не установлен на этом компьютере.");
      Возврат;
   КонецПопытки; 
   НовыйДокумент = WD.Documents;
   ТД = НовыйДокумент.Add (КаталогИБ()+"\shablon\УдостоверениеКачество.dot");
   WD.Visible = 1; 
   ТД.Variables("ППроизОбъединение").Value = СокрЛП(ПроизОбъединение.ПолнНаименование);
   ТД.Variables("ПЛаборатория").Value = СокрЛП(Лаборатория.ПолнНаименование);
   ТД.Variables("ПНомерНакладной").Value = СокрЛП(НомерНакладной);
   ТД.Variables("ПДатаНакладной").Value = СокрЛП(ДатаНакладной);
   ТД.Variables("ПДатаНакладной").Value = СокрЛП(ДатаНакладной);
   ТД.Variables("ПАвто").Value = СокрЛП(ВидТранспорта);
   ТД.Variables("ППлательщик").Value = СокрЛП(Плательщик.ПолнНаименование);
   ТД.Variables("ПАдрес").Value = глПредставлениеАдреса(ПроизОбъединение.ПочтовыйАдрес);

Тут заполняю таблицу
проблема в том что у меня в таблице 7 столбцов
программа заполняет только первый столбец

как сменить столбец?


    ТД.Fields.UpDate();
        ВыбратьСтроки();
        Таблица = ТД.Tables.Item(2);
        Ном = 0;
      НомПартии = 0;
        Пока ПолучитьСтроку() = 1 Цикл
            
            Ном = Ном + 1;
            
            ТД.Tables(2).Rows.Add();
            Таблица.Cell(Ном + 1,1).Select();
            ТД.ActiveWindow.ActivePane.Selection.ParagraphFormat.Alignment = 1; // выравнивание по центру
         Если ПустоеЗначение(НомерПартии) =1 Тогда
            НомПартии = НомПартии +1;
            НомерПартии = НомПартии;
         КонецЕсли;
            ТД.ActiveWindow.ActivePane.Selection.TypeText(СокрЛП(НомерПартии));
        КонецЦикла;

2

Re: Как передать данные в другой столбец таблицы WORD

уже разобрался вопрос снят

3

Re: Как передать данные в другой столбец таблицы WORD

Очень хорошо, что разобрались, но раз уж Вы создали тему с вопросом и сами нашли на него ответ, то будет правильно если вы ответом поделитесь, хоть он и лежит на поверхности

Лучше день потерять — потом за пять минут долететь!

4

Re: Как передать данные в другой столбец таблицы WORD

Хорошо, пошел таким путем

2 столбец

          Таблица.Cell(Ном + 1,2).Select();
      ТД.ActiveWindow.ActivePane.Selection.TypeText(СокрЛП(НомерПартии));

3 столбец

          Таблица.Cell(Ном + 1,3).Select();
      ТД.ActiveWindow.ActivePane.Selection.TypeText(СокрЛП(НомерПартии));

5

Re: Как передать данные в другой столбец таблицы WORD

Всё правильно, только можно сделать это не выделяя ячейку:

Таблица.Cell(Ном + 1,2).Range.Text = СокрЛП(НомерПартии);
Лучше день потерять — потом за пять минут долететь!

6

Re: Как передать данные в другой столбец таблицы WORD

напиши как лучше
и как выровнять по центру по горизонтали и вертикали?
и как выровнять по горизонтали  по левому краю и вертикали по центру?

ТД.ActiveWindow.ActivePane.Selection.ParagraphFormat.Alignment = 1; // выравнивание по центру
выравнивает только по центру и прижимает к верху столбца

7

Re: Как передать данные в другой столбец таблицы WORD

Насколько я понял, WD это у тебя экземпляр Word

//Выровнять по центру по горизонтали:
Таблица.Cell(Ном + 1,3).Range.ParagraphFormat.Alignment = WD.wdAlignParagraphCenter;
//Выровнять по левому краю:
Таблица.Cell(Ном + 1,3).Range.ParagraphFormat.Alignment = WD.wdAlignParagraphLeft;
//Выровнять по правому краю:
Таблица.Cell(Ном + 1,3).Range.ParagraphFormat.Alignment = WD.wdAlignParagraphRight;

Вертикальное выравнивание в ячейке:

//По центру
Таблица.Cell(Ном + 1,3).VerticalAlignment=WD.wdCellAlignVerticalCenter;
//По низу
Таблица.Cell(Ном + 1,3).VerticalAlignment=WD.wdCellAlignVerticalBottom;
//По верху
Таблица.Cell(Ном + 1,3).VerticalAlignment=WD.wdCellAlignVerticalTop;
Лучше день потерять — потом за пять минут долететь!

8

Re: Как передать данные в другой столбец таблицы WORD

спасибо но к 1С увы это не подошло, буду думать....

9

Re: Как передать данные в другой столбец таблицы WORD

Пробуйте вместо последних приведенных констант другие цифры, кроме единицы, у каждой константы есть и числовое значение.
и еще - может вам поможет вот этот адрес:
внешняя ссылка
а также:

// ИНИЦИАЛИЗАЦИЯ ВОРДОВЫХ КОНСТАНТ
 
False = 0;
True = 1;
 
wdAlignParagraphLeft = 0; // по правому краю
wdAlignParagraphCenter = 1; //по центру
wdAlignParagraphRight = 2; //по правому краю
wdAlignParagraphJustify = 3; //по ширине обычно применимое
wdAlignParagraphDistribute = 4; //по ширине ах_енно некомпактно, последняя строка вообще в жопе
wdAlignParagraphJustifyMed = 5; //по ширине средней компактности
wdAlignParagraphJustifyHi = 7; //по ширине очень разреженно
wdAlignParagraphJustifyLow = 8; //по ширине очень компактно
 
wdWord9TableBehavior = 0;
wdAutoFitFixed = 1; // Автоматически корректировать ширину (размер)
 
wdBorderBottom = -3;// Нижняя грань таблицы
wdBorderLeft = -2; // Левая грань таблицы
wdBorderRight = -4; //Правая
wdBorderTop = -1; // нижняя
wdBorderVertical = -6; //Вертикальная (видимо смежная)
 
wdLineStyleNone = 0; //Граница таблицы не отображается
wdLineStyleSingle = 1;
 
wdLine = 5; //Используется в MoveDown (строка вниз/вниз)
wdCharacter = 1; //Используется в MoveRight (смещение на количество символов,)
 
wdActiveEndPageNumber = 3; //обращение к текущей строке Information
wdNumberOfPagesInDocument = 4; //обращение к общему количеству строк в Information
 
wdPageBreak = 7; //вставка разрыва страницы (используется в InsertBreak(...))
 
wdCellAlignVerticalBottom = 3;
wdCellAlignVerticalCenter = 1;
wdCellAlignVerticalTop = 0;

Взято отсюда: внешняя ссылка

Отредактировано andrkar (09.06.2010 15:30:42)