Имя: Пароль:
1C
1С v8
В управляемой форме на клиенте обращаюсь к excel , если запускаю
0 Ivan_495
 
19.07.16
20:36
В управляемой форме на клиенте обращаюсь к excel , если запускаю обработку на сервере через rdp работает без ошибок, если обращаюсь по сети со своего компьютера , выдает ошибку?
1 jsmith
 
19.07.16
20:37
Ниче не понял.
На другом компе стоит иксель, а на твоем нет? Поставь.
2 Ivan_495
 
19.07.16
20:38
НаКлиенте
Процедура Команда1(Команда)
     // Вставить содержимое обработчика.
    
    //////////////////////////////
    ////////////////////////////////////////////////////////
Попытка
КудаСохранитьЭксель="D:\Pas_otladka\ps.xlsx";

    


    
    МассивПутейФайловXLS=Новый Массив;
    
               Паспорт.Записать("D:\Pas_otladka\p1.xlsx","xlsx");
            Координаты.Записать("D:\Pas_otladka\p2.xlsx","xlsx");
        Принадлежность.Записать("D:\Pas_otladka\p3.xlsx","xlsx");
          Эксплуатация.Записать("D:\Pas_otladka\p4.xlsx","xlsx");
    Расширенныйпаспорт.Записать("D:\Pas_otladka\p5.xlsx","xlsx");
    
    МассивПутейФайловXLS.Вставить(0,"D:\Pas_otladka\p5.xlsx");
    МассивПутейФайловXLS.Вставить(1,"D:\Pas_otladka\p4.xlsx");
    МассивПутейФайловXLS.Вставить(2,"D:\Pas_otladka\p3.xlsx");
    МассивПутейФайловXLS.Вставить(3,"D:\Pas_otladka\p2.xlsx");
    МассивПутейФайловXLS.Вставить(4,"D:\Pas_otladka\p1.xlsx");
    
    ДокЭксель = Новый COMОбъект("Excel.Application");
        ДокЭксель.DisplayAlerts=0;
        ОбщаяКнига=    ДокЭксель.WorkBooks.Add();
                
        Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл
        
            Книга            = ДокЭксель.WorkBooks.Open(ПутьКФайлуXLS);
            ЛистСДанными    = Книга.Sheets(1);
            ЛистСДанными.Select();
            ЛистСДанными.Copy(ОбщаяКнига.Sheets(1));
            
            
        КонецЦикла;
        
        
        
       // удалим последние 3 пустых листа

        КолЛистов    = ДокЭксель.Sheets.Count;
        ЛистОсталось= 3;
        Пока ЛистОсталось > 0 Цикл
            ДокЭксель.WorkSheets(КолЛистов).Delete();        
            КолЛистов        = КолЛистов - 1;
            ЛистОсталось    = ЛистОсталось - 1;
        КонецЦикла;

        ОбщаяКнига.Sheets(1).Name = "т";
        ОбщаяКнига.Sheets(2).Name = "ы";
        ОбщаяКнига.Sheets(3).Name = "о";
        ОбщаяКнига.Sheets(4).Name = "Э";
        ОбщаяКнига.Sheets(5).Name = "Р";
        
        ОбщаяКнига.SaveAs(КудаСохранитьЭксель);
        ОбщаяКнига.close();
        ДокЭксель.Quit();
        ДокЭксель = Неопределено;
        
        Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл
            
            УдалитьФайлы(СокрЛП(ПутьКФайлуXLS));
            
        КонецЦикла;
        //////////////////////////////
        ДокЭксель = Новый COMОбъект("Excel.Application");
        ДокЭксель.visible=1;
        ОбщаяКнига=    ДокЭксель.WorkBooks.Open(КудаСохранитьЭксель);
    Исключение
    Сообщить("ЗАКРОЙТЕ EXCEL файл сформированный отчетом");    
        ОбщаяКнига.close();
        ДокЭксель.Quit();
        ДокЭксель = Неопределено;
    
    КонецПопытки;

    
КонецПроцедуры
код который работает
3 Ivan_495
 
19.07.16
20:39
запускаю отчет по rdp на сервере - работает,
с сетевого компа, не рабатает
4 Ivan_495
 
19.07.16
20:40
обычный COMОбъект("Excel.Application" почему по сети не пашет,
на локальном компе excel стоит
5 jsmith
 
19.07.16
20:41
Что значит обращаешься по сети.
6 hhhh
 
19.07.16
20:42
(3) какую ошибку выдает? Секрет?
7 jsmith
 
19.07.16
20:42
А. У тебя локально тонкий клиент типа.
8 Ivan_495
 
19.07.16
20:42
(5) с локальный компа запускаю тонкий клиент 1с
9 Ivan_495
 
19.07.16
20:42
(7) да
10 Ivan_495
 
19.07.16
20:43
(6) код ошибки к сожалению щас не могу сказать
11 Ivan_495
 
19.07.16
20:45
на разных компах запускал бестолку, D:\Pas_otladka\ создан
12 Ivan_495
 
19.07.16
20:46
не пойму может &на сервере , а не на &клиенте процедура должна работать?
13 hhhh
 
19.07.16
20:46
на всех компах создал D:\Pas_otladka  ???
14 jsmith
 
19.07.16
20:46
Вот те на. Чо делать терь.
15 Ivan_495
 
19.07.16
20:47
хотя как тогда пользователь к файлу доступ получит
16 jsmith
 
19.07.16
20:47
У тебя ком-объект-то создается вообще?
17 Ivan_495
 
19.07.16
20:47
(13) да
18 Ivan_495
 
19.07.16
20:48
(16) на сервере да, на клиентских машинах нет
19 Ivan_495
 
19.07.16
20:49
подход верный?
может права обрезаны на клиентских машинах?
20 hhhh
 
19.07.16
20:52
(19) ну делай наСервере тогда
21 jsmith
 
19.07.16
20:56
На клиенте нужно.
22 Ivan_495
 
19.07.16
20:57
(21) да
23 Ivan_495
 
19.07.16
20:57
http://1c-pro.ru/threads/comobekt-excel-application-na-kliente-i-na-servere.50997/

А решается это так:
на сервере убиваем excel (taskkill /im excel.exe /f)
открываем оснастку "Службы компонентов" (Пуск->Администрирование->Службы компонентов)
в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем "Текущий пользователь", ОК.
Готово
24 Ivan_495
 
19.07.16
20:58
(23) хотя это не про тонкгог
25 Ivan_495
 
19.07.16
21:01
Да, действительно, пользователя USR1CV8 включил в группу "Пользователи DCOM", и все завелось... Только необходимо рестартовать службу агента сервера 1С.



Спасибо.
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=633725
26 Ivan_495
 
19.07.16
21:06
v8: Проблема с Excel.Application на сервере
так же предлагаю попробовать создать папки

C:\Windows\SysWOW64\config\systemprofile\Desktop

C:\Windows\System32\config\systemprofile\Desktop
27 hhhh
 
19.07.16
21:07
(21) на сервере тоже работает
28 Ivan_495
 
19.07.16
22:08
если на сервере, как excel на просмотр открыть для клиента?
29 hhhh
 
19.07.16
22:11
зачем его на просмотр?
30 Ivan_495
 
19.07.16
22:16
сформировал отчет, показываю его пользователю
31 Ivan_495
 
20.07.16
09:48
(27) запускаю ту же процедуру не сервер com не создается
&НаСервере
Процедура Команда1(Команда)

Как вам удалось , чтобы работало на сервере?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.