Произошла исключительная ситуация microsoft excel невозможно получить свойство open класса workbooks

Обновлено: 07.07.2024

А простите какую цель вы преследовали своими действиями? Вы решили смешивать "мух" и "котлеты", а потом удивляетесь, что у Вас получается что-то "теплое и мягкое". На текущий момент вы имеете оригинальную (белую) 3.0.73.1.
Если у Вас отсутствует ИТС и Вам захотелось обновиться - это одно, если Вам захотелось перейти на отученную - то я простите не вижу логики, всего один вопрос, ЗАЧЕМ??

Тут другая ситуация.
Это две разные организации.
В одной программа куплена и есть ИТС. Из неё как раз dt с данными.
Второй организации тоже нужна эта программа, и данные в ней (около 20000 лицевых счетов) от первой организации. Но купить её срузу возможности нет, так как неизвестно количество пользователей (44фз).
Через XML тоже лажа какая-то получается, сплошные ошибки.

Тут другая ситуация.
Это две разные организации.
В одной программа куплена и есть ИТС. Из неё как раз dt с данными.
Второй организации тоже нужна эта программа, и данные в ней (около 20000 лицевых счетов) от первой организации. Но купить её сразу возможности нет, так как неизвестно количество пользователей (44фз).
Через XML тоже лажа какая-то получается, сплошные ошибки.

Если закрыть глаза на часть лицензионного соглашения. и организации в одном офисе ,а то и на одном компьютере (всяко же бывает)..то просто разверни вторую базу рядом и будет чудо.
НО выше ты писал про отсутствие ключа, значит или компьютеры разные, или территориально разнесены. то тут вариант только отученную ставить вторым ребятам..
Перенос данных (как я понял 1>>2), воспользуйся универсальным обменом, и обменяй их документами и справочниками.
Про XML - что не получилось? там вроде не хитро (но внимательно!)..

Если закрыть глаза на часть лицензионного соглашения. и организации в одном офисе ,а то и на одном компьютере (всяко же бывает)..то просто разверни вторую базу рядом и будет чудо.
НО выше ты писал про отсутствие ключа, значит или компьютеры разные, или территориально разнесены. то тут вариант только отученную ставить вторым ребятам..
Перенос данных (как я понял 1>>2), воспользуйся универсальным обменом, и обменяй их документами и справочниками.
Про XML - что не получилось? там вроде не хитро (но внимательно!)..

Про использование одного компьютера вариант хороший!
И в принципе к этому всё и идёт. Обе эти организации хотят на 1 сервер посадить. Работать будут по RDP.
У первой ключ аппаратный на 5 пользователей. Его в сервер воткнём.
Проблема в том, что пользователей всего 5.

Через XML выгрузку делал. Всё отлично выгрузилось. Но при загрузке очень много ошибок почему-то. Может я что-то не так делаю, но там вроде всё просто, ничего не так сделать сложно. Правда я выгрузку делал XML в 3.0.73.1, а загрузку в 3.0.73.2, может из-за этого ошибки?

Описание ошибки:
Проявила себя в клиент-серверной базе. Релиз платформы 1С: Предприятие 8.3.13.1644.

Полная формулировка ошибки:

• Имени файла или пути не существует.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.

1C 8 Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу .xlsx

1С 8 работа с Excel Ошибка при вызове метода контекста (Open)

При доработке в расширении для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая должна загружать данные из файлов Excel и при попытке выполнения в коде РабочаяКнига = ExcelПриложение . WorkBooks . Open ( ФормаИмпортXLS.ИмяФайла ); . Что удивительно, но в более ранней редакции Комплексной, 1.1, эта проблема не возникала в этом же коде, хотя обе базы на одном сервере.

1C 8

Популярность этого варианта подтверждается исчерпывающим обсуждением и вот на этом ресурсе: "v8.x: [РЕШЕНО] Ошибка при вызове метода контекста (Open) при работе с Excel"

1C 8.2 8.3 Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу

Проблема была рещена данным простым решением, но обращу внимание на то, что данное действие должно быть выполнено на сервере, а не на локальном рабочем месте.


Всем привет - стабильно ловится ошибка 1429 - Исключение OLE IDispatch, код 0 из Microsoft Office Excel:
Невозможно получить свойство Open класса Workbooks..

Класс создается и другие его методы доступны и работают нормально, например loXLS.WorkBooks.Add()
Причем наблюдается только в exe, из фокса эта процедура отрабатывает нормально.
Убил полдня на эксперименты .

vfp9 sp1, server 2008

Равиль
Всем привет - стабильно ловится ошибка 1429 - Исключение OLE IDispatch, код 0 из Microsoft Office Excel:
Невозможно получить свойство Open класса Workbooks..

Класс создается и другие его методы доступны и работают нормально, например loXLS.WorkBooks.Add()
Причем наблюдается только в exe, из фокса эта процедура отрабатывает нормально.
Убил полдня на эксперименты .

vfp9 sp1, server 2008

к сожалению до имени файла дело не доходит - т.к. не обнаружен метод open .
Но что любопытно - скомпилировал в vfp7 - косяка нет ))
Попробую дробить этот модуть - часть на 7-ке, часть на 9-ке ))

Равиль
Надеялся переустановка офиса поможет . увы ))

к сожалению до имени файла дело не доходит - т.к. не обнаружен метод open .
Но что любопытно - скомпилировал в vfp7 - косяка нет ))
Попробую дробить этот модуть - часть на 7-ке, часть на 9-ке ))

Антивирус или вирус?
Как получена ссылка loXLS? Права "запускающего" IDE и exe, были ли запросы UAC-а?

Макро тут совсем не при чём - это вредный совет, сбивает с правильного пути поиска причин проблемы

Для начала, я бы разбил на "слагаемые"


Довольно часто Com-объекты не могут "переварить" "многочлены". А по одному члену за раз - вполне стабильно работают. Но даже если это не поможет, подобное разбиение позволит точнее определить, на каком члене иерархии произошел сбой.

Igor Korolyov
Антивирус или вирус?
Как получена ссылка loXLS? Права "запускающего" IDE и exe, были ли запросы UAC-а?

Макро тут совсем не при чём - это вредный совет, сбивает с правильного пути поиска причин проблемы

Возможно что-то с правами - добился чтобы процесс выполнялся при явном запуске пользователем EXE на сервере
осталась проблема при запуске EXE из планировщика (хотя с теми же правами от имени того же пользователя)

Для начала, я бы разбил на "слагаемые"
loBooks = loXLS.Workbooks
loBook = loBooks.Open(m.lcXlsFile)

Довольно часто Com-объекты не могут "переварить" "многочлены". А по одному члену за раз - вполне стабильно работают. Но даже если это не поможет, подобное разбиение позволит точнее определить, на каком члене иерархии произошел сбой.

Пробовал и так, спасибо - в субботу еще потестируем

Исправлено: Равиль, 16.12.10 18:26

Сразу надо было указывать что речь идёт про неинтерактивный процесс Это куча своих мелких и не очень нюансов - начиная с потенциального отсутствия "десктопа" для программ при таком способе запуска.
И всё-же как получается экземпляр экселя - CreateObject, или GetObject?

Igor Korolyov
Сразу надо было указывать что речь идёт про неинтерактивный процесс Это куча своих мелких и не очень нюансов - начиная с потенциального отсутствия "десктопа" для программ при таком способе запуска.

Неа, прога всё равно получает свой десктоп.


------------------
Есть многое на свете, друг Горацио.
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)

Исправлено: PaulWist, 16.12.10 21:53

Это странно, значит в 9.dll ошибка.


------------------
Есть многое на свете, друг Горацио.
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)

Ну я не в курсе деталей - десктоп, винстанция или чего там ещё есть - но при запуске из планировщика (от имени незалогиненных аккаунтов или тем более от SYSTEM-а) возникали разные "нюансы". Т.е. там надо быть особо осторожным - там паче что речь пошла о таком монстре как MS Office - это не тривиальный консольный архиватор (а даже с ним порой возникают проблемы).

Igor Korolyov
Сразу надо было указывать что речь идёт про неинтерактивный процесс Это куча своих мелких и не очень нюансов - начиная с потенциального отсутствия "десктопа" для программ при таком способе запуска.
И всё-же как получается экземпляр экселя - CreateObject, или GetObject?

Да, извиняюсь - поморочил всем голову - поздно сообразил, что причина может быть в запуске без логина пользователя )) Видимо для Excel такие условия работы неприемлимы.
Экземпляр создается CreateObject. Можно как уже говорил, создавать книги, что-то менять в ячейках, форматировать, а вот открыть существующий файл - увы.
В субботу поеду к ним и попробую GetObject.

PaulWist
Это странно, значит в 9.dll ошибка.

Паш, это я в запарке на 9-ку "наехал" потом потестил в 7-ке - без логина те же проблемы

Равиль, у тебя сама служба планировщика от какой учетной записи запускается, от системной или же от юзера?


------------------
Есть многое на свете, друг Горацио.
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет) PaulWist
Равиль, у тебя сама служба планировщика от какой учетной записи запускается, от системной или же от юзера?

наверное по-умолчанию - от системной
намекаешь на галочку - [] разрешить взаимодейтсвие с рабочим столом ?

Нет, намекаю на то, что бы служба запускалась от имени либо доменного, либо локального администратора, дело в том, что для системной учетной записи "затра..ся" потом права прописывать


------------------
Есть многое на свете, друг Горацио.
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)

Исправлено: PaulWist, 17.12.10 11:02

Равиль, я конечно понимаю что это не лучший выход. Просто чуть из личного опыта. Я пользую на Win2003 планировщик nncron, настроенный на запуск от имени локального администратора - правда никакого взаимодействия с десктопом в запланированных задачах не было, как не было и работы с офисом (на сервере вообще офис не установлен). Зато есть сетевой логин в батнике пускающем фоксовую прогу (net use с доменным аккаунтом и паролем). В принципе всё работает - только когда нет связи с DC оно не пашет (ну потому что не может авторизоваться для подключения к файл-серверу).
Я просто поостерёгся бы менять штатные настройки виндового планировщика, там паче в 2008, где куча системных задач зашедулена.

Нашел похожий вопрос. Правда там запуск из планировщика Win7 и ошибка возникает на команде loEx.Workbooks.OpenText()

Там много слов Но решение следующее

Dima T

Вопрос снят. Оказалось все просто: криворукие писатели из MS забыли папку создать

и если пользователь под кем запускается задание не админ, то ему надо права полные дать на systemprofile с подпапками

Да, дельно - это может быть на 64-битках. На 32-разрядных вместо SysWOW64 будет system32 - но там обычно соответствующие папки (какой-то урезанный "профиль" пользователя-непользователя) существует сразу.

Ну что сказать - сижу и радуюсь - проблема решена - создал эту папку C:\Windows\SysWOW64\config\systemprofile\Desktop
и все работает как часы - ежечасно формируется прайс и выкладывается на сайт ))
Спасибо

Добрый день, коллеги. Решил автоматизировать загрузку данных от клиентов. Многие высылают в экселе, соответственно нужно читать и анализировать её. Чтобы менеджеры не заморачивались с этим, чтение экселя решил вынести в регламентное задание. Но тут возникла проблема с созданием ком-объекта Excel.Application. Почитал статьи, рекомендуют вынести вызов ком-объекта на клиент, но при выполнении регламентного задания нет никакого клиента, все выполняется сервером. Как быть? Посоветуйте

в регламентном без вариантов только сервер или прайсы в csv перекидывать сначала и затем скармливать как текст если эксель тупить будет

"Почитал статьи, рекомендуют вынести вызов ком-объекта на клиент" Выкинь эти статьи.

и какое исключение? может файла нет? доступа к папке откуда его тянуть? или дальше гадать?

права на папку? Что за ошибка? Не рекомендуют на сервере наверное из-за того что по сети файл взад-назад тягать не комильфо.

Сдается мне, что нет прав у пользователя, под которым сервер 1С работает.

на инфостарте есть примеры как парсить XSLX но могут возникнуть проблемы если сторонняя прога сохраняет в этот формат.

Вот такое исключение: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить свойство Open класса Workbooks Файл есть. Он лежит локально на сервере. Доступ к папке есть для всех.

Тот же самый код, запущенный на клиенте выполняется без проблем.

попробуй путь с именем только из латиницы пока что

И Для интереса, попробуй заместо Open использовать Add

а просто Add без имени файла, пустой новый док добавить, и если получитьсязаписать его

Метод Add прошел, но при попытке сохранить документ опять исключение: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно Файл не сохранен!

когда оффис исполняется на сервере от службы, то он вроде использует эту папку для вр файлов

Скорее всего тут суть в том, что на сервере, на уровне платформы, запрещены файловые операции

чувак у меня так везде работает, и с вордом и с экселем, попробуй

Ну если ток для чтения то покатит наверно, я просто для чтения, изменения и записи юзаю, так что мне COM нужен был

Да, пробовал. Текст исключения: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

И если зайти от него то все в интерактиве получается?

Если код открытия вызывать на стороне клиента, то все работает.

Как так, ты же смотрел наличие папки, создавал новую на серваке, почему проверить не можешь?

Всмсле запущеного экземпляра предпрития на сервере?

Чтобы проверить, нужно авторизоваться под пользователем от которого запущен сервер 1С. Я не могу под ним авторизоваться в силу отсутствия пароля Запускаю экземпляр приложения, вызываю внешнюю обработку и там прописываю процедуру открытия с ключом &НаКлиенте

Попробуй эти создать)))) C:WindowsSystem32ConfigSystemprofile C:WindowsSysWOW64ConfigSystemprofile

И вроде нужно только там какой битности оффис, пофиг на 1С

Вот ты добрый человек! Гений, по другому и не сказать )))

Да блин ты меня заставил на сервак зайти и вспомнить чо да как))))

Единственное что осталось, это команда не завершает процесс. Экселька продолжает висеть в диспетчере задач на сервере. В чем может быть дело, подскажи пожалуйста

За твои заслуги готов поддержать тебя материально. Переводом либо на телефон

Так сначала нужно закрыть все документы, так как иначе мы видим вопрос о необходимости что-то сохранить, только, на самом деле, мы его не видим, так как рабочий стол записи SYSTEM невидим, но, если очень хочется, там окно можно найти и даже нажать кнопку "Нет".

Ну в теории не должно ругаться если ты в доке ничо не менял (типа букву в ячейке добавил). Ну чтобы на точняк, погугли на msdn там или используешь метод Close у WorkSheet или Эксель.Application.Quit (или просто Эксель.Quit). Нули как разтаки определяют закрытие документа или приложения без лишних проверок. Я конеш хз у себя сразу писал с нулями, а вот помню когда один из первых разов таким образом с Word работал, то он у меня с исключением вылетал (я имею ввиду на сервере)

УУУ. В сказку попал человек. Обратись ко мне. Есть решение. Я уже все грабли протоптал с этим делом. Есть у нас решение. Можешь даже не парится. У нас компонента чтения эксель, нативная. Работает во всех режимах серверных на любых осях.

Гарантируем поддержку. Да и собственно задачу импорта решена целой подсистемой.

Когда приложение оффиса (Word, Exel) запускается от сервиса винды, коем в частности является служба 1С сервера, то для временных файлов используются данные каталоги взавизимости от разрядности оффиса.

а зачем Эксель.DisplayAlerts = 1? это свойство вообще задавай после создания кома

Ошибка 1С при формировании отчёта - Приложению Microsoft Excel не удается получить доступ к файлу

Коллеги, добрый день. При формировании отчёта выдаёт следующую ошибку:

Ошибка при вызове метода контекста (Open)

Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу "C:\Users\1cv83\AppData\Local\Temp\v8_19EA_423.xlsx".

Самое интересное, что у пользователя, под которым запускается отчет, - админские права на сервере.

И путь указан верно, и доступ к файлу есть (руками открывается без проблем).

Клиент-сервер, процедура запускается на сервере. В чем может быть причина?


Добрый день! Дайте права пользователю 1cv83 на Microsoft Excel Application в Службах компонент.
Нажмите на “Пуск/Start”-> “Панель управления/Control Panel”

Далее “АдминистрированиеAdministrative Tools”-> “Службы компонентов/Component Services”


Откройте папку “Службы компонентов/ Component Services” и выберите “Настройка DCOM/DCOM Config”


Среди служб выберите “Microsoft Excel Application” и откройте его свойсва, вкладку “Безопасность/Security” и в разделе “Разрешения на запуск и активацию/Launch and Activation Permissions” настроить разрешения – выбрать “Настроить/Customize” и нажать “Изменить/Edit”.


Добавьте пользователя 1cv83 и нажмите “Применить/Apply” в свойствах безопасности компоненты.

Заключительным этапам будет создание папки с соответствующими правами пользователю 1cv83

C:\Windows\System32\config\systemprofile\Desktop – для Microsoft Office 2010
C:\Windows\SysWOW64\config\systemprofile\Desktop – для Microsoft Office 2007 (windows server x64)

C:\Windows\System32\config\systemprofile\Desktop – для Microsoft Office 2007 (windows server x86)

Читайте также: