Настройка dcom excel для работы с 1с
Что можно сделать чтобы фоновые задания сервера 1С-предприятия (1CUSR1CV82) открывали эксельные форматы все?
Есть файлик с расширением xls но по сути там внутри не эксель, а просто текстовые строки, где данные разделены табуляцией.
Такой файл фоновое серверное задание открывает так:
Excel = Новый COMОбъект("Excel.Application");
Excel.Workbooks.Open(файлик);
При попытке открыть такой файл по фэншую, когда 1CUSR1CV82 не входит в группу администраторов, происходит ругань:
Microsoft Office Excel не может открыть или сохранить
документы из-за нехватки памяти или места на диске.
Дальше нарыл такие варианты:
Если этот файл пересохранить в формат эксель-97 - то ошибки нету.
Если пользователю 1CUSR1CV82 дать админские права - то ошибки нету.
Если в оснастке dcomcnfg сделать что бы "Microsoft Excel Application" запускалось не от "Текущий пользователь", а от 1CUSR1CV82 - то ошибки нету, но тогда перестают нормально открываться эксельные файлы у других пользователей - эксель начинает ругаться про связи таблиц.
Права папку и на сами файлы полные, дело точно не в запретах NTFS.
Папочки C:\Windows\SysWOW64\config\systemprofile\Desktop и C:\Windows\System32\config\systemprofile\Desktop существуют, права на них полные всем.
Что можно сделать, что бы фоновое задание через эксель нормально отрабатывало с такими файлами? Чего не хватает экселю или может быть dcom-у?
(1) и (2) уже были мной предварительно выкурены.
(3) 1CUSR1CV82 находится в группе "Пользователи DCOM", а что за папка "локальные пользователи"? Имеется в виду группа "Пользователи"? Сейчас аккаунт 1CUSR1CV82 состоит в группах "Пользователи" и "Пользователи DCOM".
То есть если явно указать при запуске 1CUSR1CV82 то ошибки нет?
На сервере необходимо было еще установить в локальных политиках право на запуск DCOM для конкретных пользователей.
(5) Да, если в настройках dcom-а указать что запускать явно от 1CUSR1CV82 с его паролем - то ошибок нет. Ошибка зависит походу только от того, что именно внутри открываемого файла. Если внутри файл true-exell формата - то никаких ошибок нету, а если файл внутри текстовый, но с расширением xls - то тогда происходит ошибка. Хотя в реале такой файл экселем открывается и преобразовывается, а вот через DCOM-нет. Может он там пытается где-то в каких-то одному богу известных местах создать временный файл для преобразования и на этом обламывается? На всякий случай дал полный доступ 1CUSR1CV82 на паку WINDOWS\TEMP - но не помогло.
По поводу локальных политик там вообще ничего про DCOM нету, есть только какое-то "DCOM: Ограничения компьютера на запуск в синтаксисе SDDL", но эта хрень явно не то, там вообще ничего не поменять.
(7) Нет, если переименовать в .csv - то вываливается такая же ошибка:
Microsoft Office Excel не может открыть или сохранить
документы из-за нехватки памяти или места на диске.
Если просто открывать руками - то открывается, эксель загружает даже без ругани на неправильный формат.
(9) Да, сейчас при запуске стоит "от запускающий пользователь". Глобалные права на DCOM настроил, спасибо за ссылку, но ничего не поменялось.
В логах нет ничего, только появляется уведомление:
ID: 1, Application Name: Microsoft Office Excel, Application Version: 12.0.4518.1014, Microsoft Office Version: 12.0.4518.1014. This session lasted 0 seconds with 0 seconds of active time. This session ended normally.
Но оно всегда появляется, даже в случае когда ошибок нету.
(12) Агента 1С-Предприятие перезагружал, а целиком сервак пока не могу, надо ждать ночи.
Если меняется настройка DCOM с типа "от запускающий пользователь" на другой типа "указанный пользователь" - то ничего перезагружать не требуется, изменение этих настроек вступают в силу сразу.
в каждом объекте DCOM нужно явно добавить пользователя 1CUSR1CV82 (вкладку не помню. )
после этого перезагрузить сервер.
кроме того пользователь 1CUSR1CV82 должен иметь файловые права на папки, в том числе и для темповых файлов екселя. Файловых папок ексель юзает не так мало, по этому тут придется повозится.
(14) То есть правильно я понимаю, что когда DCOM "Microsoft Excel Application" сталкивается с необходимостью прочитать файл не родного формата, а как у мну - в формате .csv, то он через DCOM призывает еще какой-то компонент?
Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект "Excel.Application" на сервере 1С.
Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания.
Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом.
Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.
Обстоятельно разобрано. Но к такому тексту обязательно нужен дисклаймер:
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
Вот на что натолкнулась
Если закоментировать строчку
// ЛистГлавный.Shapes.AddPicture(лФайл.ПолноеИмя, Ложь, Истина, Лево+1, Верх+1, 100, 100);
то все прекрасно работает, если снять комментарий , то зависает на этой строке.
Все что в статье описано - на сервере давно реализовано, просто ранее не требовалось помещать фото в EXCEL
как быть , что можно сделать?
(2) theshadowco, а не все такое знают. Проще, вишь, через com таскать, чем накатать нормальный запрос ADO, на большие-то объёмы.
(2) theshadowco, (4) Yashazz,
может вы тогда сделаете статейку, как сформировать через ADO красиво оформленный Excel файл?
(2) Что через ADO таскать? А если требуется например регламентное задание по формированию и рассылке отчетов в формате Excel ?
(6) Sirruf, а что тут такого? создайте отчет и в коде его вызовите на заполнение! результат сохраните в ДвоичныеДанные. ВСЕ! И никакого COM'a не нужно, СКД отрабатывает!
Глупости! Рассылку отправлять в Ехеле, Ворде и других офисных форматах. Всегда найдется кто то, кто скажет что у него не открылось, или приложения нет.
Я все авто рассылки из 1С делаю в HTML (начиная с 7.7, с 2000 года).
И не дай бог! Какая нить зараза напишет что полученную рассылку открыть не смогли!
:)
(9) bzmax, требования диктует заказчик, а ему нужно именно в формате xlsx и чтобы открывалось на всех мобильных устройствах.
(13) Вижу явное противоречие в паре "именно в формате xlsx" и "чтобы открывалось на всех мобильных устройствах". У меня на двух из трёх мобильных устройств никакой xls/xlsx не откроется. На "третьем" устройстве откроется любой xls[x] с вероятностью близкой к 100% исключительно благодаря вручную установленному пакету, отсутствующему в штатной конфигурации. Да и на некоторых стационарных компах до сих пор можно встретить офис 2003, и да - без конвертера (из личного опыта - крупные производственные предприятия, работающие не первый десяток лет, часто таким парком "грешат").
Что-то заказчик, НЯМС, хочет как минимум странного, если не невозможного. Реально, html, с точки зрения совместимости - куда логичнее.
(15) bubnov-pi, просто клиенты финансовой компании, которым рассылается отчетность, имеют установленный офис на своих девайсах. думаю теперь тперь понятно зачем такой формат нужен.
(13)
И что. В вашу задачу входит еще и на всех мобильных устройствах ставить читалку Екселя?
Я бы убедил заказчика в универсальном формате.
(2) theshadowco, потому что в моей задаче нужно было перезаписывать файлы для того, чтобы они потом открывались на мобильных устройствах, если стояла задача только читать, то не спорю - ADO было бы правильнее использовать.
Автору за то что поделились админскими "премудростями" большой плюс.
Теперь сразу вопрос нарисовался. Как раз была настройка сервера 1С. Решили все-таки поставить офис. Началось все с ответа фирмы майкрософт по поводу "Excel.Application":
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
В чем преимущество в данном случае у технологии ADO кроме как не надо ставить офисный пакет на сервер?
Чтоб не повторяться более подробно изложение начал здесь в комментариях статьи про SBS: Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ЧтениеXML
Прикрепляю саму обработку с методикой чтения ADO из БП 3.0. В принципе из любой конфы должна в ексель начинать читать. В целом про методику и чтоб понять ошибки при разных настройках серверов и локальных ПК. Хотелось поначалу сделать универсальной.
Папка "C:\Windows\SysWOW64\config\systemprofile\Desktop\"
1. Проверяем наличие папки , если нет -то создаем.
2. Заходим в свойства этой папки.
3. Закладка Security
4. Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
Вот тут мне напомнили, что пользователя USR1CV8 (при установке сервера, установщик 1С предлагает его создать) вы не сможете добавить в Security. Под этим пользователем невозможно зайти в систему, и, соответственно, нельзя назначить права доступа к папке.
Выход - либо использовать настройку доступа "Все пользователи" (что не очень правильно), либо запускать Агента сервера под другим пользователем, отличным от USR1CV8.
Никто все-таки не сравнит функциональность ADO и Excel.Application по производительности и надежности чтения?
(20) kostyaomsk, без тестов по опыту могу сказать, что по скорости чтения победит ADO,
по функциональности - excel.application.
а что такое "надежность чтения"?
Кстати, если отчетность в виде не одной плоской таблицы, а нескольких - то через ADO начинаются заморочки, потому что он видит один лист как единую таблицу. В моем случае, как раз такие отчеты.
PS: Я вообще не очень понимаю зачем мы обсуждаем другие решения, я не спорю, что они есть
(21) вот-вот. Про функциональность "Excel.Application" в чем она больше чем ADO? Только встроенными методами? При ADO можно же запрос делать и сразу отобрать из каких колонок что?
(23) kostyaomsk, Ок, есть такой код:
Как его реализовать через ADO?
В данном случае вопрос все-таки такой - что надежнее для постоянной работы на сервере и как это дело использовать.
Возникла проблема при работе с excel.application на сервере. После сохранения файла слетают картинки (если изначально они там были). Может кто сталкивался с такой проблемой?
Excel 2010
Здравствуйте. Такая проблема Система 64 битная сервер 1С 64 битный M.Excel 64 а вот сама 1С 32 битная пытался сделать внешнюю обработку для работы с Excel файлом выдавало ошибку. Пришел к тому что 1С 32 битный а Excel 64 битный. Нашел вашу тему. Проделал процедуру описаную выше. фаил начал открывать но повисает и висит часов 10 больше терпения у меня не хватало. подскажите что можно сделать.
Все в одном флаконе. 3 дня мучил админов этой проблемой, а потом плюнул, нашел данную статью и все сам за час настроил. Спасибо автору!
просьба добавить еще одну ссылочку в дисклаймер
(по теме "переустановка офиса 2003-2010)
Сервер 1 запущен от имени доменного пользователя,
Ему даны права локального админа, в dcom права ему прописаны, папки рабочих столов созданы, excel 64 битный поставлен и т.д. и т.п.
в браузере формируется печатная форма excel (заполняется на стороне сервера)
Все работает если открыта терминальная сессия на сервере 1с от пользователя сервера 1с (простите за тафтологию)
Даже если ее залочить, но оставить открытым терминальное окно, продалжает все работать.
Но достаточно закрыть окно терминальной сессии, не разлогиневаясь, т.е. сессия сохраняется ВСЕ, ексель работать перестает
Код зависает на 2 строчке:
а в процессах одиноко висит excel.exe
Сейчас, что бы формировать печатные формы - временное решение - висит на одной из виртуальных машин окно терминальной сессии сервера 1с запущенное от имени пользователя сервера 1с
Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект "Excel.Application" на сервере 1С.
Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания.
Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом.
Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.
- Заходим на сервер приложений 1С под локальным админом
- Запускаем DCOMCNFG (Консоль настроек "Component Services")
- Открываем ветку Console Root -> Component Services -> Computers -> My computer -> DCOM Config
- Ищем "Microsoft Excel Application"
- Если нашли, то переходим к пункту 4 ( Настраиваем свойства DCOM компонента "Microsoft Excel Application")
- Закрываем "Component Services"
- Запускаем REGEDIT
- Открываем ветку Computer\HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем
- Создаем в ней строковый параметр AppID =
- Выполняем команду "mmc comexp.msc /32", которая делает то же что и DCOMCONFIG , но позволяет видеть 32 битные компоненты.
- После этого в Component Services должен появиться "Microsoft Excel Application"
- Закладка "Security"
- "Launch and Activation Permissions" - Customize - Edit
- Добавляем пользователя, под которым запускается агент сервера 1С
- Назначем ему только следующие права ( allow):
- Local Launch
- Local Activation
- Добавляем пользователя, под которым запускается агент сервера 1С
- Назначаем ему только следующие права ( allow):
- Local Access
- Должно быть выбрано "The launching user"
- Папка "C:\Windows\SysWOW64\config\systemprofile\Desktop\"
- Проверяем наличие папки , если нет -то создаем.
- Заходим в свойства этой папки.
- Закладка Security
- Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
- Добавляем право "Read" и "Write"
- Проверяем наличие папки , если нет -то создаем.
- Заходим в свойства этой папки.
- Закладка Security
- Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
- Добавляем право "Read" и "Write"
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
Специальные предложения
Обстоятельно разобрано. Но к такому тексту обязательно нужен дисклаймер:
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
Вот на что натолкнулась
Если закоментировать строчку
// ЛистГлавный.Shapes.AddPicture(лФайл.ПолноеИмя, Ложь, Истина, Лево+1, Верх+1, 100, 100);то все прекрасно работает, если снять комментарий , то зависает на этой строке.
Все что в статье описано - на сервере давно реализовано, просто ранее не требовалось помещать фото в EXCEL
как быть , что можно сделать?
(2) theshadowco, а не все такое знают. Проще, вишь, через com таскать, чем накатать нормальный запрос ADO, на большие-то объёмы.
(2) theshadowco, (4) Yashazz,
может вы тогда сделаете статейку, как сформировать через ADO красиво оформленный Excel файл?
(2) Что через ADO таскать? А если требуется например регламентное задание по формированию и рассылке отчетов в формате Excel ?
(6) Sirruf, а что тут такого? создайте отчет и в коде его вызовите на заполнение! результат сохраните в ДвоичныеДанные. ВСЕ! И никакого COM'a не нужно, СКД отрабатывает!
Глупости! Рассылку отправлять в Ехеле, Ворде и других офисных форматах. Всегда найдется кто то, кто скажет что у него не открылось, или приложения нет.
Я все авто рассылки из 1С делаю в HTML (начиная с 7.7, с 2000 года).
И не дай бог! Какая нить зараза напишет что полученную рассылку открыть не смогли!
:)(9) bzmax, требования диктует заказчик, а ему нужно именно в формате xlsx и чтобы открывалось на всех мобильных устройствах.
(13) Вижу явное противоречие в паре "именно в формате xlsx" и "чтобы открывалось на всех мобильных устройствах". У меня на двух из трёх мобильных устройств никакой xls/xlsx не откроется. На "третьем" устройстве откроется любой xls[x] с вероятностью близкой к 100% исключительно благодаря вручную установленному пакету, отсутствующему в штатной конфигурации. Да и на некоторых стационарных компах до сих пор можно встретить офис 2003, и да - без конвертера (из личного опыта - крупные производственные предприятия, работающие не первый десяток лет, часто таким парком "грешат").
Что-то заказчик, НЯМС, хочет как минимум странного, если не невозможного. Реально, html, с точки зрения совместимости - куда логичнее.(15) bubnov-pi, просто клиенты финансовой компании, которым рассылается отчетность, имеют установленный офис на своих девайсах. думаю теперь тперь понятно зачем такой формат нужен.
(13)
И что. В вашу задачу входит еще и на всех мобильных устройствах ставить читалку Екселя?
Я бы убедил заказчика в универсальном формате.(2) theshadowco, потому что в моей задаче нужно было перезаписывать файлы для того, чтобы они потом открывались на мобильных устройствах, если стояла задача только читать, то не спорю - ADO было бы правильнее использовать.
Автору за то что поделились админскими "премудростями" большой плюс.
Теперь сразу вопрос нарисовался. Как раз была настройка сервера 1С. Решили все-таки поставить офис. Началось все с ответа фирмы майкрософт по поводу "Excel.Application":Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
В чем преимущество в данном случае у технологии ADO кроме как не надо ставить офисный пакет на сервер?
Чтоб не повторяться более подробно изложение начал здесь в комментариях статьи про SBS: Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ЧтениеXML
Прикрепляю саму обработку с методикой чтения ADO из БП 3.0. В принципе из любой конфы должна в ексель начинать читать. В целом про методику и чтоб понять ошибки при разных настройках серверов и локальных ПК. Хотелось поначалу сделать универсальной.Папка "C:\Windows\SysWOW64\config\systemprofile\Desktop\"
1. Проверяем наличие папки , если нет -то создаем.
2. Заходим в свойства этой папки.
3. Закладка Security
4. Добавляем, если нет, пользователя, под которым запускается агент сервера 1СВот тут мне напомнили, что пользователя USR1CV8 (при установке сервера, установщик 1С предлагает его создать) вы не сможете добавить в Security. Под этим пользователем невозможно зайти в систему, и, соответственно, нельзя назначить права доступа к папке.
Выход - либо использовать настройку доступа "Все пользователи" (что не очень правильно), либо запускать Агента сервера под другим пользователем, отличным от USR1CV8.Никто все-таки не сравнит функциональность ADO и Excel.Application по производительности и надежности чтения?
(20) kostyaomsk, без тестов по опыту могу сказать, что по скорости чтения победит ADO,
по функциональности - excel.application.
а что такое "надежность чтения"?
Кстати, если отчетность в виде не одной плоской таблицы, а нескольких - то через ADO начинаются заморочки, потому что он видит один лист как единую таблицу. В моем случае, как раз такие отчеты.
PS: Я вообще не очень понимаю зачем мы обсуждаем другие решения, я не спорю, что они есть(21) вот-вот. Про функциональность "Excel.Application" в чем она больше чем ADO? Только встроенными методами? При ADO можно же запрос делать и сразу отобрать из каких колонок что?
(23) kostyaomsk, Ок, есть такой код:
Как его реализовать через ADO?
В данном случае вопрос все-таки такой - что надежнее для постоянной работы на сервере и как это дело использовать.
Возникла проблема при работе с excel.application на сервере. После сохранения файла слетают картинки (если изначально они там были). Может кто сталкивался с такой проблемой?
Excel 2010Здравствуйте. Такая проблема Система 64 битная сервер 1С 64 битный M.Excel 64 а вот сама 1С 32 битная пытался сделать внешнюю обработку для работы с Excel файлом выдавало ошибку. Пришел к тому что 1С 32 битный а Excel 64 битный. Нашел вашу тему. Проделал процедуру описаную выше. фаил начал открывать но повисает и висит часов 10 больше терпения у меня не хватало. подскажите что можно сделать.
Все в одном флаконе. 3 дня мучил админов этой проблемой, а потом плюнул, нашел данную статью и все сам за час настроил. Спасибо автору!
просьба добавить еще одну ссылочку в дисклаймер
(по теме "переустановка офиса 2003-2010)Сервер 1 запущен от имени доменного пользователя,
Ему даны права локального админа, в dcom права ему прописаны, папки рабочих столов созданы, excel 64 битный поставлен и т.д. и т.п.в браузере формируется печатная форма excel (заполняется на стороне сервера)
Все работает если открыта терминальная сессия на сервере 1с от пользователя сервера 1с (простите за тафтологию)
Даже если ее залочить, но оставить открытым терминальное окно, продалжает все работать.Но достаточно закрыть окно терминальной сессии, не разлогиневаясь, т.е. сессия сохраняется ВСЕ, ексель работать перестает
Код зависает на 2 строчке:
а в процессах одиноко висит excel.exeСейчас, что бы формировать печатные формы - временное решение - висит на одной из виртуальных машин окно терминальной сессии сервера 1с запущенное от имени пользователя сервера 1с
Что такое DCOM
Настройка DCOM для Excel.Application
И так у меня есть виртуальная машина под управлением Windows Server 2012 R2, на ней установлены серверные компоненты 1С, есть задача для Excel.Application модуля, настроить DCOM компоненты.
Для выполнения нижеописанных действий, вам будут необходимы права локального администратора, на том сервере, где все будет выполняться
Нам необходимо открыть в панели управления Windows, компонент "Службы компонентов".
Либо можете, через окно выполнить ввести DCOMCNFG, откроется, тоже самое.
В службах компонентов (Component Services) откройте ветку:
Компоненты - Мой компьютер - Настройка DCOM - Microsoft Excel Application (Component Services - Computers - My computer - DCOM Config)
Если по каким-то причинам у вас нет пункта Microsoft Excel Application, откройте реестр Windows, найдите ветку: HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем ее. В ней должен быть ключ REG_SZ со значением .
КОМУ ЛЕНЬ самому создавать, то можете скачать данный ключ реестра у меня. Просто запустите потом и подтвердите, что согласны добавить. Затем откройте командную строку от имени администратора и выполните команду:
У вас откроется mmc оснастка "Службы компонентов", которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты. В результате этих манипуляций компонент Microsoft Excel Application у вас должен появиться. Открываем свойства Microsoft Excel Application.
Переходим на вкладку "Безопасность (Secutity)". В пункте "Разрешения на запуск и активацию (Launch and Activation Permissions)", выберите "Настроить (Customize )" и изменить. Вам нужно добавить сюда учетную запись, от имени которой запускается служба 1С и предоставить ей права:
- Локальный запуск - Local Launch
- Локальная активация - Local Activation
Далее переходим к пункту "Разрешения на доступ (Access Permissions)" и так же меняем их. Добавьте там ту же учетную запись, от имени которой запускается сервис 1С, и дайте ей права "Локальный доступ (Local Access)". Сохраните настройки.
Закрываем окно служб компонентов, теперь для того, чтобы закончит ьнастройку DCOM для 1С и Microsoft Excel Application, вам необходимо дать права на две папки.
Вам нужно убедиться, что у вас есть две папки:
C:\Windows\SysWOW64\config\systemprofile\Desktop\
и
C:\Windows\System32\config\systemprofile\Desktop\Постановка задачи
И так у меня есть виртуальная машина ESXI с гостевой операционной системой Windows Server 2019. Один из сотрудников обратился с проблемой, что у него перестало в Ecxel копироваться содержимое ячеек в другие ячейки. Выглядело это вот так. Сначала при открытии Ecxel 2016 появлялась ошибка:
Далее если попытаться скопировать одну ячейку в другую:
Хочу отметить, что такое поведение было и в совершенно новых документах, которые были созданы для тестирования, так же под эту ошибку попадали ячейки в которых вообще не было данных (пусты).
Что сделать если не удается копировать и вставлять данные на листе
Первое, что вы должны сделать, это обязательно установить все имеющиеся обновления для Microsoft Office, напоминаю делается это через параметры Windows, раздел "Обновление и Безопасность".
Далее перейдите в дополнительные параметры.
Убедитесь, что установлена галка "При обновлении Windows предоставить обновления для других продуктов Microsoft"
Если Windows что-то обнаружит в списке доступных обновления, то будет произведена установка. Не забываем на всякий случай перезагрузить компьютер или сервер.
Отключение надстроек в безопасном режиме
У Microsoft Excel есть как и у Windows безопасный режим, который позволяет проверить работу приложения с минимальными настройками. Для того, чтобы вам запустить Excel в безопасном режиме, нужно зажать клавишу CTRL и запустить само приложение.
Далее вам нужно перейти в меню "Файл".
Далее переходим в параметры.
Переходим в пункт "Надстройки". Посмотрите какие из них у вас находятся в активном состоянии и по очереди отключайте. Проверьте помогло ли это решить ошибку "Невозможно использовать связывание и внедрение объектов (cannot use object linking and embedding)".
Восстановление Microsoft Office
Следующий метод, который может помочь в устранении ошибки "Приложению Microsoft Excel не удалось вставить данные (Microsoft Excel was unable to insert data)", это попробовать произвести восстановление офисного пакета. Чтобы это осуществить, вам необходим вызвать окно выполнить и вписать в нем:
В открывшемся окне "Программы и компоненты" вам необходимо выбрать в списке ваш офисный пакет, у меня это "Microsoft Office профессиональный плюс 2016" и в самом верху нажать кнопку "Изменить".
В списке доступных операций, выберите "Восстановить".
Начинается процесс восстановления Microsoft Office и в том числе его пакета Excel. Данная операция может быть не такой быстрой, поэтому придется подождать минут 5-10.
Проверка учетной записи в DCOM
Ранее я вам рассказывал, как производится настройка DCOM для Exel, кото не читал посмотрите. DCOM - это программная конструкция, которая позволяет компьютеру запускать программы по сети на другом компьютере, как если бы программа выполнялась локально. DCOM - это аббревиатура от Distributed Component Object Model. Если вы получаете ошибку "Невозможно использовать связывание и внедрение объектов (cannot use object linking and embedding)", то с большой долей вероятности у вас используется для запуска не тот режим. Чтобы это проверить, вновь вызовите окно выполнить и введите:
Откройте "Службы компонентов - Компьютеры - Приложения COM+ - Настройка DCOM - Microsoft Excel Application (Component Services - Computers - My computer - DCOM Config - Microsoft Excel Application)". Щелкните правым кликом по "Microsoft Excel Application" и перейдите в его свойства.
Перейдите на вкладку "Удостоверение (Identity)" и удостоверьтесь, что у вас выставлен пункт "Запускающий пользователь (The launching user)".
У меня же было как раз в другом режиме, и запуск был от конкретного пользователя.
Как только я выставил правильные настройки у меня заработала вставка содержимого ячеек Exel и ошибка "Приложению Microsoft Excel не удалось вставить данные (Microsoft Excel was unable to insert data)" исчезла.
Очистка временных файлов
Еще одним способом устранения проблем с копированием ячеек в Excel является очистка временных данных из профиля пользователя, для этого вам необходимо включить скрытые папки Windows. Далее перейти по пути:
Не забудьте только выбрать своего пользователя. В результате у вас появится папка XLSTART или еще какие-то, попробуйте их вырезать или удалить. После чего запустите Microsoft Excel и проверьте, дало ли это эффект.
Есть еще совсем иезуитский метод, о котором я читал и якобы у людей он работал, его суть заключалась в том, что вы должны были просто открыть Excel, затем перейти в меню файл и из него уже выбрать открыть документ из указанного места, и якобы в такой момент у вас пропадала ошибка, как по мне это очень не удобно и занудно.
Читайте также:
- "Launch and Activation Permissions" - Customize - Edit