Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Работа с Excel через OLE на сервере 1С

Работа с Excel через OLE на сервере 1С
Я
   NorthWind
 
07.03.21 - 13:40
Добрый день.

Сие не относится непосредственно к моей работе, но тем не менее обратились за помощью, хочу посоветоваться. Итак, есть самописная производственная конфа на УФ. В конфе есть манипуляция - на сервере экселем (по OLE) открываются с расшаренной папки книги и из них что-то читается в базу, кажется, используется при заполнении доков. Ну да неважно. Суть в том что сначала это вроде как работало, а потом стало падать с ошибкой "неправильная строка класса" при конструировании ком-объекта Excel.Application. Говорят, что с серваком ничего не делали. Доступ до него по RDP есть (не админский). Я берусь смотреть и вижу, что Microsoft Office стоит в папке Program Files (x86), оттуда же и запускается. В диспетчере задач показан как 32-bit. Сервер 1С же 64-битный, как обычно и принято на современных серверах.
.
Казалось бы, все понятно. Но эти ребята, чье хозяйство, утверждают что все работало! И я в непонятках ... каким образом
оно могло работать? Может, я чего не понимаю?
   ДенисЧ
 
1 - 07.03.21 - 13:48
У ребят 4 лапки и крепкий костный пацирь?
   acht
 
2 - 07.03.21 - 13:52
(0) > каким образом оно могло работать
Через COM+ обертки
   NorthWind
 
3 - 07.03.21 - 14:10
(1) Ну типа. Ребята представляют собой довольно серьезную и забюрократизированную структуру, где может быть трудно найти концы.
   Turku
 
4 - 07.03.21 - 14:12
(0) ИМХО, можно попробовать переустановить MS Office в надежде, что нужный класс зарегистрируется в системе.
А можно переписать логику на использование метода Прочитать() табличного документа...
   NorthWind
 
5 - 07.03.21 - 14:12
(2) Имеется в виду что-то вот такое https://sbis.ru/help/integration/1C_set/64bit?
   NorthWind
 
6 - 07.03.21 - 14:19
(4) Над использованием другого метода доступа думали. Но вот эти книжки, которые зачитываются экселем - довольно противные. Они громоздкие, с кучей листов и непростым форматированием.
   ДедМорроз
 
7 - 07.03.21 - 15:00
Дело в том,что excel работает не в адресном процессе объекта,а как отдельное приложение,в адресном процессе остаётся только Proxy DLL,а она может быть и 32 и 64 бит и никак с битностью основного процесса не связана.
И excel прекрасно работает как с 32битным,так и с 64битным приложением.
Если же пишет,что неверная строка имени класса,то просто обновить офис.
   ДедМорроз
 
8 - 07.03.21 - 15:03
Опять же,у microsoft есть примеры вызовов DCOM,где вообще предлагается на сервере вызывать методы excel,который установлен на отдельной машине в сети,и у них все работает,и более того,лицензионное соглашение не нарушается,т.к.при установке офиса на терминальный сервер нужно иметь лицензию microsoft office на каждое рабочее место,с которого к серверу подключаются.
   NorthWind
 
9 - 07.03.21 - 15:06
(7) то есть выходит, что в принципе необязательно иметь 64-битный офис для такой работы? И утверждения, что раньше все работало, необязательно ложные, могло быть и так что действительно работало?
Переустанавливать офис пробовали, не помогло.
   spectre1978
 
10 - 07.03.21 - 19:24
Разумнее всего настоять чтобы 64-бит поставили и не греть голову?
   DAFA
 
11 - 08.03.21 - 11:05
Интуиция подсказывает ексель на сервере  переустановили
   NorthWind
 
12 - 08.03.21 - 12:22
А могут ли какие-либо проблемы быть связаны с пользователем, от которого стартует сервер 1С?
Может быть, работа с ком-объектами недоступна конкретно ему?..
   NorthWind
 
13 - 08.03.21 - 12:59
состояние регистрации компоненты comcntr.dll может как-то на это влиять?.. или она только про com-соединение с 1С и никак не связана с другими com-объектами? Нагуглить ничего путного не получается. Попробовали поставить 64-битный офис - не помогает
   timurhv
 
14 - 08.03.21 - 13:09
(0) Обновление винды может было.
Перепишите на NativeXLSX для xlsx файлов, они распаковываются как zip архивы и производится чтение xml.
https://infostart.ru/1c/articles/300092/
   Cthulhu
 
15 - 08.03.21 - 13:26
например начиная с 15-го релиза скрипач... эммм... ексель совсем не нужен для того чтобы ексельный файл читать...
   NorthWind
 
16 - 08.03.21 - 13:47
(14) вот это варик еще не смотрели. Может быть. ТабличныйДокумент.Прочитать () дает адскую дичь, все листы фигачит в одну таблицу, а там достаточно сложный механизм выборки данных с учетом нумерации колонок на листе - выбрать становится невозможно.
   Cthulhu
 
17 - 08.03.21 - 14:09
(16): сам ты дичь криворукая.
нужные листы по областям выбираются влет. с дальнейшим процессингом учетом хоть по нумерации хоть по содержимому хоть по чему угодно.
   NorthWind
 
18 - 08.03.21 - 14:36
(17) спс за подсказку, помогло
   NorthWind
 
19 - 08.03.21 - 14:37
Показать () выглядит страшно, в реальности оказалось не так уж плохо
   NorthWind
 
20 - 09.03.21 - 08:00
В конечном итоге переписали через ТабличныйДокумент, прояснить вопрос с сисадминами не получилось. Всем спасибо за помощь.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.