1C 8.2 и Excel #707172


#0 by nAPACEHAK
При открытии Excel Попытка         Сообщить("Ошибка при запуске Microsoft Excel." получаю ошибку Ошибка при запуске Microsoft Excel. {Обработка.ЗагрузитьОтбытиеИзФайла.Форма.Форма.Форма}: Ошибка при вызове конструктора (COMОбъект): Приложение было запущено, но оно не зарегистрировало фабрику классов: Приложение было запущено, но оно не зарегистрировало фабрику классов Куда копать?
#1 by Wobland
ну не в гугл же, правда?
#2 by nAPACEHAK
ну туда я первым делом сунулся, но ничего не удалось дельного найти (((( запуск 1С от администратора - тоже ошибка
#3 by rozer76
эксель (уста/переуста)новить
#4 by nAPACEHAK
а кроме (уста/переуста)новки есть варианты? Excel 2013 стоит
#5 by Torquader
Твой очень новый Excel почему-то не хочет общаться с тобой, так как не смог зарегистрировать интерфейс в таблице. Если офис starter или что-то типа того, то он не умеет.
#6 by z80a
Поставить libreoffice
#7 by nAPACEHAK
Странно... Офис ПРО стоит. Лицензия. Переустанавливать то как, если все ключи потеряны. А ломаный не прокатит :( Может тут чего?
#8 by nAPACEHAK
не. не то
#9 by MiniMuk
на 64битном сервере?
#10 by Torquader
Попробуйте ещё явно указать версию Excel. Excel.Application.12 или какой у него номер.
#11 by nAPACEHAK
64 бит сервер явно указать - не прокатило лан. буду тогда через xml забирать
#12 by Torquader
А офис - 32 бита ? Тогда можно попробовать через DCOM - забирать по сети (или с той же машины, но имитируя сеть).
#13 by MiniMuk
про спец папочку для 64битного сервера слышал?
#14 by zulu_mix
#15 by nAPACEHAK
нет. А что за спец папочка? расскажи?
#16 by nAPACEHAK
вроде работает. зато теперь в другой строке ошибка. работало так: ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell); Теперь получаю: {Обработка.ЗагрузитьОтбытиеИзФайла.Форма.Форма.Форма}: Поле объекта не обнаружено (ActiveCell) ФайлExcel = ПолучитьCOMОбъект(ПутьКФайлу); наверно надо немного по другому ячейки обрабатывать? Но это уже наверно другая история....
#17 by Torquader
Зачем тебе активная ячейка ? Обращайся через Cell(Ряд,Строка) ? Потом, нужно сначала получить книгу, потом найти в ней лист и только после этого читать этот лист.
#18 by DjSpike
Можно все сделать через Yoksel.
#19 by Чайник Рассела
а что с ADO уже не модно работать?
#20 by Torquader
Человек хочет через Excel и у него уже половина заработала - что вы ему мешаете ?
#21 by Чайник Рассела
зачем идти порочным путем?
#22 by Torquader
Знаешь, когда выяснится, что тип строки определяется цветом или размером шрифта, то ADO отправляется в далёкий лес. А Yoksel на 64-битный сервер может и не встать.
#23 by nAPACEHAK
блин.. не умею тут ссылки на посты писать, типа научите ))) вот для чего активная ячейка - определить последнее поле со значением для перебора далее   по задумке - с экселя выдергиваем последнее непустое значение (исключая те, где были введены данные и потом стерты из ячейки) это значение и есть число строк с которых надо забрать данные далее уже Cell(Ряд,Строка) циклом по RowCount Для Row=НачСтрока По RowCount Цикл эта обработка выдрана с рабочей базы, но там 32 на 64 не работает. таже самая ошибка была в строке из начала поста переделал по совету - ПолучитьCOMОбъект(ПутьКФайлу); стала появляться другая ошибка, строками ниже, которая про ActiveCell
#24 by nAPACEHAK
о! уже умею ссылки на пост писать )))))
#25 by Torquader
Вместо ActiveCell бери просто лист, из которого читаешь, или UsedRange.Rows.Count - тоже даёт число рядов, только в последнем офисе - изменённые (то есть формат и обрамление) тоже считаются непустыми (чтоб им пусто было).
#26 by nAPACEHAK
да у меня одна обработка полностью работает через эксель. эту стал писать по аналогии, но на 64 - поймал ошибку взял рабочую - и та же самая ошибка надо данные забрать с другой программы, а она умеет только в pdf, html, xls и xml выгружать. думаю первые 2 варианта точно не прокатят )))
#27 by Torquader
Ты лист получил ? Просто - ActiveCell действует, если пользователь интерактивно что-то выделил - у тебя сервер - и он точно не может ничего выделить.
#28 by nAPACEHAK
вот про эти "непустые" и идет речь ActiveCell = Excel.ActiveCell.SpecialCells; их хорошо обрабатывает. пустые измененные (формат, обрамление, введены и удалены данные итд) - считаются пустыми
#29 by nAPACEHAK
ммм...эээ... а как же обработка которая уже не по разу данные забирала? открыл эксель, считал, закрыл. никто ж ничо не выделял. или я чот не догоняю? %)
#30 by Torquader
Всё зависит от версии Excel - если она делает документ активным (то есть окно в Foreground), то появляется активная ячейка, если окно в неизвестном состоянии, то ячейка может и не появиться.
#31 by nAPACEHAK
Если речь про версию Excel то работает на офис 2010 и не работает на офис 2013 обе 32-разрядные ОС в 1м случае Win7 x86 во 2м Win8 x64
#32 by Torquader
На 13-том чего-то вообще криво работало. Но, открой справочник объектов Excel и посмотри, что там поменялось - в некоторых версиях там всё по-русски написано.
#33 by nAPACEHAK
блин....
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С