Ошибка при чтении из Excel Не думал, что возникнет такая проблема. Файлов Excel перечитал уже несметное количество. У клиента из УТ11 моей обработкой закачивается прайс, все работало уже пару лет и вот после нового выдает ошибку при открытии файла. Пишет, что "неизвестная ошибка" Какие отличия от того года: 1.Обновил платформу на 8.3.12.1685(в ней появились косяки с функционированием горячих клавиш и правой кнопки мыши. На 8.3.13.1690 приложение вообще периодически вылетало). Пока вернулись к 8.3.12.1685 2. Обновили УТ до 11.4.6.188 3. Excel 2010 при открытии руками выдавал сообщение про сбой активации. Говорит, что устранил, сегодня я еще не проверял. Прайс не закачивается, ошибка не ушла У меня на компе этот же файл прекрасно обрабатывается, но у меня стоит старый, добрый Excel 2007 |
Как читаешь то? ТабДок.Прочитать()? |
(1)до чтения не доходит, файл перестал открываться Попытка Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ПутьКФайлу); |
Попробуй зарегистрировать comcntr.dll из 8.3.12.1685. |
(3)попробую вечером, но я ранее никогда такого не делал, без этого работало. Вот для обмена ЗУП И БП, действительно требуется регистрация |
[quote=USSR;46483527]Пока вернулись к 8.3.12.1685[/quote] Если это означает изменение настроек запуска - то работаешь из 8.3.12.1685 а comcntr.dll из 8.3.13.1690 |
C:\Program Files (x86)\1cv8\[версия платформы]\bin\comcntr.dll |
2-USSR > куда не доходит? 1С умеет читать эксель без всяких комобъектов |
[quote=USSR;46483527]3. Excel 2010 при открытии руками выдавал сообщение про сбой активации.[/quote] Ну дык от этого и плясать. мс офис просто так от нечего делать такие сообщения не станет выдавать. [quote=USSR;46483527]Говорит, что устранил,[/quote] типа крякнул повторно еще раз :))) В идеале снести офис, слегка подчистить реестр (типа RegCleaner), перезагрузить и поставить офис заново. |
(7)я знаю, но все работало и переделывать не хочется (4)я это знаю, я же написал, попробую, но по моему не в этом дело (8)готов со всем согласиться. я не знаю как и кто там крякал )) |
[quote=USSR;46483657]до чтения не доходит, файл перестал открываться[/quote] А может быть проблема в том, что данный файл на тот момент уже открыт? Доводилось сталкиваться с ситуацией, что открытый экселовский файл никак визуально не отображается. Приходилось открывать какой-нибудь другой экселовский файл, чтобы увидеть ранее открытый файл. После чего этот файл вручную закрывал. А дальше - все работало, как положено. |
(10)в диспетчере задач Excel процесса не было |
11-USSR > Через диспетчер задач возникшую у меня проблему не рассматривал... Хохмы ради, можно открыть какой-нибудь другой экселовский файл. Если проблемный файл никак не проявит себя, то это другой случай. |
C:\Program Files (x86)\1cv8\[версия платформы]\bin\comcntr.dll - регистрация ожидаемо не помогла Установил 8.3.14, переустановил Excel, с удалением предыдущего, но без рекомендуемой уважаемыми БШ и самим Excel (не было возможности удаленно это сделать без потери связи), пока ничего не помогло. На моем компе все работает, даже на другой конфигурации. Но в реестре старый офис остался и еще кое где, начисто он не удалился |
[quote=USSR;46486476] регистрация ожидаемо не помогла[/quote] Что значит ожидаемо. Если все случилось после манипуляций с платформой то comcntr.dll первый в рядах подозреваемых. К то же начинать надо с самого простого. Дальше попробуй написать ПолучитьCOMОбъект(, "Excel.Application"). Первый параметр пустой. Если ошибка - то проблема не с файлом. Попробуй создать другие ком объекты (тот же word или 1С). Что бы уже точно понимать где ошибка. |
(14)Ожидаемо - это то, что COM объект создается, но файд не открывается, я об этом сразу написал. И я никогда не регистрировал эту компоненту для целей чтения из Excel. Вот например для связи разных баз по COM - это да |
Короче, не выходит каменный цветок. С помощью MicrosoftProgram_Install_and_Uninstall вроде бы вычистил Office 2010. Снес Оffice 2007. Снова поставил. Интерактивно файлы открываются мгновенно и без проблем. Скопировал базу к себе на комп. Все работает, причем для обоих установленных у меня офисов (2003,2007). При создании COM объекта указывал и Excel.Application и Excel.Application.11 и Excel.Application.12. У проблемного человека так и не работает. При открытии файла "Неизвестная ошибка". И у него и у меня Windows 7 msx. Пока единственное отличие нашел в том, что у него есть служба Office Software Protection Control. Я ее и останавливали запускал, никакого эффекта. Надо вечером попробовать открыть файл Word. Какая то засада. В инете эта тема встречается, но она мусолится вокруг клиент-серверной 1с, у меня файловая. В службах компонентов DCOM Excel не нашел, ни по имени, ни по идентификатору продукта. У меня на компе тоже не нашел. |
Сделал вариант на ADO. Визуально кажется несколько медленнее. Но причину бунта Excel.Application надо найти |
Ты пробовал ПолучитьCOMОбъект(, "Excel.Application") (При включенном Excel) и ПолучитьCOMОбъект("", "Excel.Application") ? |
(18)Нет, я так не пробовал. Посмотрю на досуге. Но вариант не очень, читать из уже открытого файла. Тем более в моей обработке возможна обработка сразу с двух файлов, есть там некоторые особенности ценообразования. Хотелось бы все-таки выбрать имена файлов и просто нажать кнопочку "Заполнить", как было раньше ) Как и у меня на компе, пробовал и на другой тачке на WIN 2008 Server. |
(18)Попробовал. Заполнение из открытого файла с помощью ПолучитьCOMОбъект(, "Excel.Application") работает |
(18)а так тоже не работает: Excel = ПолучитьCOMОбъект("", "Excel.Application"); WB = Excel.Workbooks.Open(ПолноеИмяФайла); |
[quote=Uho;46483884]2-USSR > куда не доходит? 1С умеет читать эксель без всяких комобъектов[/quote] [quote=USSR;46484004](7)я знаю, но все работало и переделывать не хочется[/quote] [quote=USSR;46492984]Сделал вариант на ADO. Визуально кажется несколько медленнее. [/quote] ????? |
(22) ну что непонятно, время идёт, а прайсы не заканчиваются. Пришлось переделать. Но это не путь к успеху. Причина так и не выяснена |
23-USSR > если переделывать, почему не средствами 1С? |
(24)Тоже средствами 1с, но без Excel.Application Connection = Новый COMОбъект("ADODB.Connection"); и тд.) |
ADODB - средство 1С? ну-ну ЗЫ. Раз уж переписывал, переписал бы по-нормальному |
(27)это вопрос терминологический. 1с под виндой позволяет мне создать этот объект, значит можно считать что средствами 1с) а как по нормальному?) Если честно, то мне больше всего нравится именно excel.applicstion, попадались прайсы, которые без него мне не обработать. |
ТабличныйДокумент.Прочитать() пару лет с 8.3.8 вроде бы точно юзаем |
(28)Этот пробел в знаниях обязательно закрою, но Excel.Application все равно бывает нужен ) И на чтение, и на запись. На 7.7 много чего с ним. Правда и обсуждаемый казус тоже впервые, может никогда и не повторится. |
Недавно наткнулся что Табличный документ 1с 8.3.12 не прочитало, а COM Excell Application прочитал - под расширением xls была сохранена страница html. Excell ругнулся, что формат не его, но все же открыл. А так многие выгрузки переделал, в разы ж быстрее читает. |
23-USSR > Как вариант, может быть проблема заполнения шапки документа. Тоже наблюдал случай, когда Excel не мог начать чтение документа. По подозрению проблемы в шапке - очистил шапку и подменил на шапку из читаемого файла - чтение прошло нормально. - Вероятно, при формировании шапки документа, в шапку прошли недокументированные символы. |
[quote=perpetum;46539191]Тоже наблюдал случай, когда Excel не мог начать чтение документа[/quote]Даже пустой файл создать не может. Там проблема с разрешениями (ИМХО). Решается большим бубном. |
(31)Про какую шапку Вы говорите ? я не понял. Файл вообще не открывается. Причем пробовал этот же файл читать еще на 4 компах, 3 в терминале. Все работает. Интерактивно и на проблемном компе открывается и даже читается по COM.Но только предварительно открытый |
Текущее время: 11:30. Часовой пояс GMT +3. |