|   |   | 
| 
 | MS Word. Метод или свойство SelectRow недоступны | ☑ | ||
|---|---|---|---|---|
| 0
    
        Ilnazio 02.02.21✎ 14:26 | 
        Произошла исключительная ситуация (MS): Метод или свойство SelectRow недоступны, потому что некоторые или все объекты не ссылаются на таблицу.
 Что выяснил: При заполнении из 1с таблицы в ворде курсор переходит на следующую страницу, так как не хватает место для таблицы. И код ругается не найдя по всей видимости таблицу. Ругается на последнюю строку в цикле Если Документ.Bookmarks.Exists("Таблица2") Тогда Документ.Bookmarks("Таблица2").Select(); //Перемещаемся вниз, выделяем строку таблицы и копируем ее в буфер обмена Документ.Application.Selection.MoveDown(); Документ.Application.Selection.SelectRow(); Документ.Application.Selection.Copy(); Для Сч = 0 по ДанныеДляЗаполненияТаблицы.Количество()-1 Цикл Документ.Application.Selection.Find.Execute("{НомП}" ,,,,,,,,,Строка(Сч+1),2); Документ.Application.Selection.Find.Execute("{НаименованиеП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Номенклатура),2); Документ.Application.Selection.Find.Execute("{СтоимостьП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Цена)*Строка(ДанныеДляЗаполненияТаблицы[Сч].Количество),2); Документ.Application.Selection.Find.Execute("{СрокП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Номенклатураxyz_СрокОказания),2); //Перемещаемся вниз, вставляем из буфера обмена строку Документ.Application.Selection.MoveDown(); Документ.Application.Selection.Paste(); //Перемещаемся вверх и выделяем строку для замены значений Документ.Application.Selection.MoveUp(); Документ.Application.Selection.SelectRow(); КонецЦикла; //Вырезаем лишнюю строку Документ.Application.Selection.Cut(); //Скрываем обязательную закладку начала таблицы Документ.Bookmarks("Таблица2").Select(); Документ.Application.Selection.TypeText(" "); КонецЕсли; Кто сталкивался помогите пожалуйста | |||
| 1
    
        Ilnazio 02.02.21✎ 14:26 | 
        Если Документ.Bookmarks.Exists("Таблица2") Тогда
 //ДанныеДляЗаполненияТаблицы = ПолучитьДанныеДляТаблицы1(СсылкаНаЗаказВМассиве); Документ.Bookmarks("Таблица2").Select(); //Перемещаемся вниз, выделяем строку таблицы и копируем ее в буфер обмена Документ.Application.Selection.MoveDown(); Документ.Application.Selection.SelectRow(); Документ.Application.Selection.Copy(); Для Сч = 0 по ДанныеДляЗаполненияТаблицы.Количество()-1 Цикл Документ.Application.Selection.Find.Execute("{НомП}" ,,,,,,,,,Строка(Сч+1),2); Документ.Application.Selection.Find.Execute("{НаименованиеП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Номенклатура),2); Документ.Application.Selection.Find.Execute("{СтоимостьП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Цена)*Строка(ДанныеДляЗаполненияТаблицы[Сч].Количество),2); Документ.Application.Selection.Find.Execute("{СрокП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Номенклатураxyz_СрокОказания),2); //Перемещаемся вниз, вставляем из буфера обмена строку Документ.Application.Selection.MoveDown(); Документ.Application.Selection.Paste(); //Перемещаемся вверх и выделяем строку для замены значений Документ.Application.Selection.MoveUp(); Документ.Application.Selection.SelectRow(); КонецЦикла; //Вырезаем лишнюю строку Документ.Application.Selection.Cut(); //Скрываем обязательную закладку начала таблицы Документ.Bookmarks("Таблица2").Select(); Документ.Application.Selection.TypeText(" "); КонецЕсли; | |||
| 2
    
        Ilnazio 04.02.21✎ 15:33 | 
        up     | |||
| 3
    
        МихаилМ 04.02.21✎ 15:43 | 
        это методика работы с таблицами word для word2000. перепишите без Selection и Bookmarks     | |||
| 4
    
        Ilnazio 04.02.21✎ 16:16 | 
        (3) Спасибо за ответ, попробую. Однако встречал статьи именно с таким оформлением кода. Подкиньте пожалуйста соответствующую литературу     | |||
| 5
    
        МихаилМ 04.02.21✎ 17:32 | ||||
| 6
    
        Ilnazio 05.02.21✎ 09:24 | 
        (5) Спасибо     | |||
| 7
    
        Ilnazio 12.02.21✎ 09:14 | 
        Временное решение - костыль.
 Для Сч = 0 по ДанныеДляЗаполненияТаблицы.Количество()-1 Цикл Если Сч <>0 Тогда Документ.Application.Selection.MoveDown(); Документ.Application.Selection.Paste(); Документ.Application.Selection.MoveUp(); КонецЕсли; Документ.Application.Selection.Find.Execute("{НомП}" ,,,,,,,,,Строка(Сч+1),2); Документ.Application.Selection.Find.Execute("{НаименованиеП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Номенклатура),2); Документ.Application.Selection.Find.Execute("{СтоимостьП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Цена)*Строка(ДанныеДляЗаполненияТаблицы[Сч].Количество),2); Документ.Application.Selection.Find.Execute("{СрокП}" ,,,,,,,,,Строка(ДанныеДляЗаполненияТаблицы[Сч].Номенклатураxyz_СрокОказания),2); Если Сч = 0 Тогда Документ.Application.Selection.MoveDown(); КонецЕсли; КонецЦикла; | |||
| 8
    
        Ilnazio 12.02.21✎ 09:14 | 
        вопрос закрыт     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |