Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/75: Рейтинг темы: голосов - 75, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 13
1
1C 8.x

COM объекты (В файловом варианте работает, в клиент-серверном нет)

15.02.2016, 16:14. Показов 14818. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Help me!!!
Написал в процедуру заполнения реквизитов документа из шаблонного Word документа.
И возникла проблема что в файловом (тестовом) варианте все прекрасно работает, а в клиент-серверном ни в какую(((

Вот так ругается...
{Документ.ИсполнительныйЛист.Форма.ФормаДокумента.Форма(153)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
Об = ПолучитьCOMОбъект(ПутьКПрофилю);
по причине:
Ошибка получения объекта COM: -2147221014(0x800401EA): Не удается открыть файл при помощи специального имени



1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
&НаКлиенте
Процедура ЗагрузитьПрофиль()
 
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        ПутьКПрофилю = ДиалогОткрытияФайла.ПолноеИмяФайла;
            Иначе
        Текст = "ru = ""Файл не выбран!""; en = ""File not selected!""";
        Предупреждение(НСтр(Текст));
        Возврат;
    КонецЕсли;
           
Загрузка(ПутьКПрофилю);
 
КонецПроцедуры

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
&НаСервере 
Процедура Загрузка (ПутьКПрофилю) Экспорт
 
 
        Об = ПолучитьCOMОбъект(ПутьКПрофилю);
        Об.Application.Visible = 0;
                Word = Об.Application;
        ThisDocument = Word.Documents(1);
                ThisDocument.Activate();
 
...
            
КонецПроцедуры;
Подскажите пожалуйста что мне делать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2016, 16:14
Ответы с готовыми решениями:

Отправка СМС: в файловом режиме работает, в серверном - нет
Добрый день! Столкнулась с такой проблемой: необходимо отправить смс сообщение из 1с Предприятие...

Проблемы С Работой 1с 7.7 В Клиент-серверном Варианте
Добрый день, уважаемые коллеги! Используется у нас 1С: Предприятие 7.7 для SQL. Бухгалтерский...

Как запустить код в клиент серверном варианте 8.2
Коллеги подскажите. Есть конфа 8.2. необходимо работать с Word - никак не могу запустить в клиент...

Datagridview! Почему в одном варианте работает, а в другом нет?!
надо было считать массив из *.ТХТ в датагридвью. сначала сделал так заполнение: for (int i = 0;...

6
Модератор
Эксперт 1С
3792 / 2970 / 591
Регистрация: 10.03.2011
Сообщений: 11,694
Записей в блоге: 1
15.02.2016, 17:30 2
wardamask, на сервере установлен офис?
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 13
15.02.2016, 17:34  [ТС] 3
Да установлен
0
Модератор
Эксперт 1С
3792 / 2970 / 591
Регистрация: 10.03.2011
Сообщений: 11,694
Записей в блоге: 1
15.02.2016, 17:38 4
wardamask, а с сервера доступен файл который ты открываешь (путь с клиента)?

Добавлено через 48 секунд
Т.е. на компьютере А пытамся открыть файл который на компьютере Б

Думаешь он откроется?

Добавлено через 35 секунд
wardamask, просто попробуй сделать это без 1С
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 13
15.02.2016, 18:11  [ТС] 5
Решил проблему так...

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 &НаКлиенте
Процедура Записать();
 
Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.Заголовок = "Выберите файл";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        ПутьКПрофилю = ДиалогОткрытияФайла.ПолноеИмяФайла;
            Иначе
        Текст = "ru = ""Файл не выбран!""; en = ""File not selected!""";
        Предупреждение(НСтр(Текст));
        Возврат;
    КонецЕсли;
    
 
    
        Об = ПолучитьCOMОбъект(ПутьКПрофилю);
        Об.Application.Visible = 0;
        Word = Об.Application;
        ThisDocument = Word.Documents(1);
        ThisDocument.Activate();
                
            НаимКонтр = ThisDocument.ContentControls.Item(2).Range.Text;
            ИНН = ThisDocument.ContentControls.Item(3).Range.Text;
            Взыскатель = ThisDocument.ContentControls.Item(4).Range.Text;          
            Куратор = ThisDocument.ContentControls.Item(5).Range.Text;       
            ДатаПолученияЛистаИзЮУ = ThisDocument.ContentControls.Item(6).Range.Text;
            НомерЛиста = ThisDocument.ContentControls.Item(7).Range.Text; 
            ДатаНаправленияВОСП = ThisDocument.ContentControls.Item(8).Range.Text;
            ФИОНаправившегоЛист = ThisDocument.ContentControls.Item(9).Range.Text;   
            НомерПочтовогоИдентификатора = ThisDocument.ContentControls.Item(10).Range.Text;
            НаименованиеОСП = ThisDocument.ContentControls.Item(11).Range.Text;      
            ДатаПолученияВОСП = ThisDocument.ContentControls.Item(12).Range.Text;
            ДатаВозбуждения = ThisDocument.ContentControls.Item(13).Range.Text;
            НомерПостановления = ThisDocument.ContentControls.Item(14).Range.Text;    
            ФИОСудебногоПристава = ThisDocument.ContentControls.Item(15).Range.Text;
            КонтактнаяИнфПристава = ThisDocument.ContentControls.Item(16).Range.Text;
            ОсновнойДолг = ThisDocument.ContentControls.Item(17).Range.Text;
            Пени = ThisDocument.ContentControls.Item(18).Range.Text;            
            ПроцентыЗаПользование = ThisDocument.ContentControls.Item(19).Range.Text;  
            ГосПошлина = ThisDocument.ContentControls.Item(20).Range.Text;
            //ОплатаУслугПредставителя = ThisDocument.ContentControls.Item(21).Range.Text;
            
                
        РеквВорд = Новый Массив(21);
        РеквВорд[1]= НаимКонтр;
        РеквВорд[2]=ИНН;
        РеквВорд[3]=Взыскатель; 
        РеквВорд[4]=Куратор;     
        РеквВорд[5]=ДатаПолученияЛистаИзЮУ; 
        РеквВорд[6]=НомерЛиста;
        РеквВорд[7]=ДатаНаправленияВОСП;
        РеквВорд[8]=ФИОНаправившегоЛист;
        РеквВорд[9]=НомерПочтовогоИдентификатора;
        РеквВорд[10]=НаименованиеОСП;
        РеквВорд[11]=ДатаПолученияВОСП;
        РеквВорд[12]=ДатаВозбуждения;
        РеквВорд[13]=НомерПостановления;
        РеквВорд[14]=ФИОСудебногоПристава;
        РеквВорд[15]=КонтактнаяИнфПристава;
        РеквВорд[16]=ОсновнойДолг;
        РеквВорд[17]=Пени;
        РеквВорд[18]=ПроцентыЗаПользование;
        РеквВорд[19]=ГосПошлина;
        //РеквВорд[20]=ОплатаУслугПредставителя; 
                
        Записать1(РеквВорд);
        
        ThisDocument.Close();
КонецПроцедуры


Теперь не важно есть ли на сервере офис, главное что бы он на клиенте был. На сервер только строковые значения передаются. И как не странно работает в три раза быстрее предыдущего варианта.

Спасибо)))
0
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
15.02.2016, 18:11 6
wardamask, тоже долго возился с этим, правда в экселе, в итоге сделал все, что с экселем связано, на клиенте, специально для серверной базы. Можешь посмотреть мой пример, только там запись, а не чтение.
Вложения
Тип файла: rar ЭкспортВЭксель (рабочая на сервере).rar (11.6 Кб, 30 просмотров)
0
Модератор
Эксперт 1С
3792 / 2970 / 591
Регистрация: 10.03.2011
Сообщений: 11,694
Записей в блоге: 1
16.02.2016, 00:55 7
да не за что, главное что ты мозг включил........
0
16.02.2016, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2016, 00:55
Помогаю со студенческими работами здесь

Клиент в клиент-серверном приложении
Добрый день, делаю тестовое задание для прохождения стажировки. Задействованы MySQL, Hibernate. Вот...

Аутентификация в клиент-серверном приложении
Доброго времени суток, граждане. Делаю клиент-серверное приложение с толстым клиентом....

Вопрос о клиент-серверном взаимодействии
Общий привет. Давно читаю форум, зарегистрировался, чтобы спросить совет. С Flash и ActionScript...

Обмен сообщениями в клиент-серверном приложении.
Ситуация: Пишу на Delphi 7. БД на MS SQL 2000. В случае, если у одного из пользователей возникает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru