Имя: Пароль:
1C
1С v8
Работа с Excel через OLE на сервере 1С
,
0 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 лапки и крепкий костный пацирь?
2 acht
 
07.03.21
13:52
(0) > каким образом оно могло работать
Через COM+ обертки
3 NorthWind
 
07.03.21
14:10
(1) Ну типа. Ребята представляют собой довольно серьезную и забюрократизированную структуру, где может быть трудно найти концы.
4 Turku
 
07.03.21
14:12
(0) ИМХО, можно попробовать переустановить MS Office в надежде, что нужный класс зарегистрируется в системе.
А можно переписать логику на использование метода Прочитать() табличного документа...
5 NorthWind
 
07.03.21
14:12
(2) Имеется в виду что-то вот такое https://sbis.ru/help/integration/1C_set/64bit?
6 NorthWind
 
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 на каждое рабочее место,с которого к серверу подключаются.
9 NorthWind
 
07.03.21
15:06
(7) то есть выходит, что в принципе необязательно иметь 64-битный офис для такой работы? И утверждения, что раньше все работало, необязательно ложные, могло быть и так что действительно работало?
Переустанавливать офис пробовали, не помогло.
10 spectre1978
 
07.03.21
19:24
Разумнее всего настоять чтобы 64-бит поставили и не греть голову?
11 DAFA
 
08.03.21
11:05
Интуиция подсказывает ексель на сервере  переустановили
12 NorthWind
 
08.03.21
12:22
А могут ли какие-либо проблемы быть связаны с пользователем, от которого стартует сервер 1С?
Может быть, работа с ком-объектами недоступна конкретно ему?..
13 NorthWind
 
08.03.21
12:59
состояние регистрации компоненты comcntr.dll может как-то на это влиять?.. или она только про com-соединение с 1С и никак не связана с другими com-объектами? Нагуглить ничего путного не получается. Попробовали поставить 64-битный офис - не помогает
14 timurhv
 
08.03.21
13:09
(0) Обновление винды может было.
Перепишите на NativeXLSX для xlsx файлов, они распаковываются как zip архивы и производится чтение xml.
https://infostart.ru/1c/articles/300092/
15 Cthulhu
 
08.03.21
13:26
например начиная с 15-го релиза скрипач... эммм... ексель совсем не нужен для того чтобы ексельный файл читать...
16 NorthWind
 
08.03.21
13:47
(14) вот это варик еще не смотрели. Может быть. ТабличныйДокумент.Прочитать () дает адскую дичь, все листы фигачит в одну таблицу, а там достаточно сложный механизм выборки данных с учетом нумерации колонок на листе - выбрать становится невозможно.
17 Cthulhu
 
08.03.21
14:09
(16): сам ты дичь криворукая.
нужные листы по областям выбираются влет. с дальнейшим процессингом учетом хоть по нумерации хоть по содержимому хоть по чему угодно.
18 NorthWind
 
08.03.21
14:36
(17) спс за подсказку, помогло
19 NorthWind
 
08.03.21
14:37
Показать () выглядит страшно, в реальности оказалось не так уж плохо
20 NorthWind
 
09.03.21
08:00
В конечном итоге переписали через ТабличныйДокумент, прояснить вопрос с сисадминами не получилось. Всем спасибо за помощь.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.