Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 20:01

Добавить строку в ТЧ word

Автор bestname, 29 апр 2016, 15:35

0 Пользователей и 1 гость просматривают эту тему.

bestname

Здравствуйте. Формирую word файл. Никак не могу добавить строки из табличной части документа в word. Все получается, только если в ТЧ документа одна строка. Если больше, то получаю ошибку:

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(3000)}: Ошибка при вызове метода контекста (Cell): Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует

Я так понимаю, что я обращаюсь к ячейке еще не созданной строки. Но я вроде как ее создаю. Наверное неправильно создаю.


        Договор = ПолучитьМакет("Макет");
MSWord = Договор.Получить();

Попытка
Doc = MSWord.Application.Documents(1);
Doc.Activate();

//Товары
ТекСтрока = ЭлементыФормы.Товары.ТекущаяСтрока;
Для Каждого ТекСтрока Из Товары Цикл

    НомерСтроки = ТекСтрока.НомерСтроки + 1;
    //Добавляем новую строку таблицы
    Doc.Tables(2).Rows.Add();

    Doc.Tables(2).Cell(НомерСтроки, 1).Range.Text = ТекСтрока.НомерСтроки;
    Doc.Tables(2).Cell(НомерСтроки, 2).Range.Text = ТекСтрока.Номенклатура.НаименованиеПолное;
    Doc.Tables(2).Cell(НомерСтроки, 3).Range.Text = ТекСтрока.ЕдиницаИзмерения.Наименование;
    Doc.Tables(2).Cell(НомерСтроки, 4).Range.Text = ТекСтрока.Количество;
    Doc.Tables(2).Cell(НомерСтроки, 5).Range.Text = ТекСтрока.Цена;
    Doc.Tables(2).Cell(НомерСтроки, 6).Range.Text = ТекСтрока.Сумма;
КонецЦикла;

    MSWord.Application.Visible = Истина;
    MSWord.Activate();
Исключение
    Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();   
КонецПопытки;   

возврат 0;
   

Что я делаю неправильно?

Rasty

Doc.Tables(2).Cell(НомерСтроки,)<---- нет такого элемента
Добавлено: 29 апр 2016, 15:50


т.е. по данному номеру строки не может найти элемент
Добавлено: 29 апр 2016, 15:54


по идеи Doc.Tables(2).Rows.Add() должно вернуть вам строку
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

bestname

Короче я понял. Строка добавляется в конце таблицы. А мне нужно с определенного места(со второй строки). Я так понимаю, что в
Doc.Tables(2).Rows.Add(); мне нужно передать параметры?
Пишу
Doc.Tables(2).Rows.Add(2);
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2993)}: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Неверный параметр

Вот как выглядит макет моей таблицы:

Добавлено: 05 мая 2016, 11:54


Вообщем получилось, строка добавилась после второй строки. Но добавилась, когда я снял объединение ячеек. Вот такая команда:

Doc.Tables(2).Rows(2).Select();
MSWord.Application.Selection.InsertRowsBelow(1);


Но поскольку у меня некоторые ячейки объеденены, то вылазит ошибка:

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2994)}: Ошибка при вызове метода контекста (Rows): Произошла исключительная ситуация (Microsoft Word): Отсутствует доступ к отдельным строкам, поскольку таблица имеет ячейки, объединенные по вертикали

Может кто подскажет?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск