Имя: Пароль:
1C
 
При выгрузке из 1с в Word Ошибка - Метод объекта не обнаружен.
0 AlexBor
 
naïve
06.06.16
15:16
База самописная 8.2.  Заходим по rdp.  При выгрузке документа в WORD выскакивает ошибка - метод объекта не обнаружен (insertafter)

КомОбъект.Bookmarks("Цель").Ranger().insertafter(Цель);

Примичательно, что если выгрузить на рабочей станции ошибку не показывает или по rdp зайти почистить кэш и снова выгрузить то все нормально выгружает и хватает на некоторое время или просто даже закрыть документ выйти из базы и зайти снова то выгружает нормально. Что могла случиться с базой и из-за чего такая ошибка?
1 AlexBor
 
naïve
06.06.16
16:10
???
2 AlexBor
 
naïve
06.06.16
16:34
АктивныйДокумент = ПолучитьМакет("Распоряжение");
    КомОбъект = АктивныйДокумент.Получить();
    КомОбъект.Application.Visible=1;
    
    Если Плановая=1 Тогда
        СтрБуфер="плановой"
    Иначе
        СтрБуфер="внеплановой"
    КонецЕсли;  
    КомОбъект.FormFields("Мероприятие").Result = СтрБуфер;

    Если Документарная=1 Тогда
        СтрБуфер="документарной"
    Иначе
        СтрБуфер="выездной"
    КонецЕсли;  
    //Даты
    КомОбъект.FormFields("Число").Result = Лев(Дата,2);  
    КомОбъект.FormFields("Месяц").Result = Сред(Дата,4,2);
    КомОбъект.FormFields("Год").Result = Сред(Дата,7,4);
    КомОбъект.FormFields("Число1").Result = Лев(Дата1,2);  
    КомОбъект.FormFields("Месяц1").Result = Сред(Дата1,4,2);
    КомОбъект.FormFields("Год1").Result = Сред(Дата1,9,2);
    КомОбъект.FormFields("Число2").Result = Лев(Дата2,2);  
    КомОбъект.FormFields("Месяц2").Result = Сред(Дата2,4,2);
    КомОбъект.FormFields("Год2").Result = Сред(Дата2,9,2);
    //****
    КомОбъект.FormFields("форма").Result = СтрБуфер;
    КомОбъект.FormFields("НомерПроверки").Result = Номер;
    КомОбъект.FormFields("Вотношении").Result = В_Отношение.ПолноеНазвание;
    КомОбъект.FormFields("ИНН").Result = В_Отношение.ИНН;
    КомОбъект.FormFields("ОГРН").Result = В_Отношение.рег_номер;
    КомОбъект.FormFields("р_адрес").Result = Адрес.Наименование;
    КомОбъект.FormFields("Г").Result = Адрес.Город.Наименование;
    КомОбъект.FormFields("юр_адрес").Result = В_Отношение.Адрес;
    КомОбъект.FormFields("Сотрудник").Result = Должностное_лицо.Наименование;
    КомОбъект.FormFields("Должность").Result = Должностное_лицо.Должность;
    КомОбъект.Bookmarks("Цель").Range().InsertAfter(Цель);
    КомОбъект.FormFields("Задача").Result = Задачи;
    КомОбъект.Bookmarks("Правовые_основания").Range().InsertAfter(Правовые_основания.Полное_наименование);
    КомОбъект.FormFields("Д").Result = Руководитель.Должность;
    КомОбъект.FormFields("ФИО").Result = Руководитель.ПолноеНаименование();
    КомОбъект.Bookmarks("М").Range().InsertAfter(Мероприятия.Полное_наименование);
    КомОбъект.FormFields("Сотрудник1").Result = Должностное_лицо.Наименование;
    КомОбъект.FormFields("Должность1").Result = Должностное_лицо.Должность;
    КомОбъект.Bookmarks("АР1").Range().InsertAfter(АР1.Текст);
    КомОбъект.Bookmarks("АР2").Range().InsertAfter(АР2.Текст);
    
    Если  ТабличнаяЧасть1.Количество()=1 Тогда     
    КомОбъект.FormFields("K1").Result = ТабличнаяЧасть1[0].ЗапрашиваемыМатериалы.Наименование;
    КонецЕсли;
    Если  ТабличнаяЧасть1.Количество()=2 Тогда     
    КомОбъект.FormFields("K1").Result = ТабличнаяЧасть1[0].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K2").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КонецЕсли;

    Если  ТабличнаяЧасть1.Количество()=3 Тогда     
    КомОбъект.FormFields("K1").Result = ТабличнаяЧасть1[0].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K2").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K3").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КонецЕсли;

    Если  ТабличнаяЧасть1.Количество()=4 Тогда     
    КомОбъект.FormFields("K1").Result = ТабличнаяЧасть1[0].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K2").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K3").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K4").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КонецЕсли;

    Если  ТабличнаяЧасть1.Количество()=5 Тогда     
    КомОбъект.FormFields("K1").Result = ТабличнаяЧасть1[0].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K2").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K3").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K4").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КомОбъект.FormFields("K5").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    КонецЕсли;
    
    //КомОбъект.FormFields("K2").Result = ТабличнаяЧасть1[1].ЗапрашиваемыМатериалы.Наименование;
    //КомОбъект.FormFields("K3").Result = ТабличнаяЧасть1[2].ЗапрашиваемыМатериалы.Наименование;
    //КомОбъект.FormFields("K4").Result = ТабличнаяЧасть1[3].ЗапрашиваемыМатериалы.Наименование;
    //КомОбъект.FormFields("K5").Result = ТабличнаяЧасть1[4].ЗапрашиваемыМатериалы.Наименование;

КонецПроцедуры
3 AlexBor
 
naïve
07.06.16
10:37
Может кто знает?
4 Euguln
 
07.06.16
10:53
Как вариант. Висит процесс приложения Word. Закрывай приложение правильно и присваивай Неопределено.
5 AlexBor
 
naïve
07.06.16
11:35
(4) Мне приходили в голову подобные мысли а можно по подробнее ... как это реализовать?
6 luter-89
 
07.06.16
11:39
А макет "Распоряжение" - это что такое?
7 luter-89
 
07.06.16
11:40
COM объект ворда???
8 AlexBor
 
naïve
07.06.16
11:42
(7) Да
9 Amianna
 
07.06.16
12:02
(5)Что-то типа такого:
Excel = Новый COMОбъект("Excel.Application");
.....
Excel.Application.Quit();
Excel = Неопределено;
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.