Как запустить макрос Excel из 1С? #6402


#0 by tiko
Т.е. суть проблемы в следующем: необходимо загружать прайс в 1С из Excel-я, но так там в некоторых ячейках корявки, то необходимо запустить макрос. Загрузку в 1С я уже сделал и макрос написал, но вот никак не могу заставить его работать. Хочу сделать так: через обработку загружаю файл и хочу запустить макрос написанный в коде обработки, т.к. прайсы приходят от разных поставщиков. Вот, может кто знает, подскажите?
#1 by Сергей
Метод Run пробовал?
#2 by tiko
Нет. А если можно то поподробнее.
#3 by NastyFrog
Чтобы вызвать метод внешнего приложения в языке системы 1С:Предприятие, имя метода (с указанием необходимых параметров) пишется через точку после имени ссылки на объект внешнего приложения. Пример:
#4 by Сергей
Я как бы в этом ламер. У самого не получается. Но поробуй так:
#5 by Сергей
Кстати, раз уж не одни, может кто-нибудь вызывал функции надстроек (AddIn`ов) из 1С. Очень уж SOLVER - "поиск решения" нужен.
#6 by Сергей
Надстроек Excel разумеется.
#7 by tiko
Все равно я что-то не понимаю. :-( Вот кусочек кода из 1С ExcelApp=СоздатьОбъект("Excel.Application"); а вот это мне сгенерировал Excel в макросе и мне это надо вставить в 1С-обработку. Т.е. должен загружать разные прайсы. И макрос НЕ ДОЛЖЕН быть записан в файле с прайсом.   Как это текст заставить работать в 1С ???
#8 by NastyFrog
Лист.Columns(2,2).Select ?
#9 by Валентин
Проще организовать цикл чтения из листа, проверяя необходимые тебе условия в цикле.  Если очень хочется поизвращаться с макросами листа - объявляй его на листе и выполняй, если нужны подпрограммы на VB то можешь использвать InsertLine/InsertModule и на ходу формировать нужный тебе макрос. Но если мне не измянет память, то метод Replace работает и cells. Worksheet.Range(Cells(x,y),Cells(x1,y1)).Replace([args]) Подробнее в файле справки, там даже иногда примеры ложат.
#10 by 427
а спросить у Экселя вера не позволяет?
#11 by tiko
Валентин, цикл цтения по листу не подходит. Т.к. в наименования некоторых строк начинаются с символа "#", и 1С ругается в момент считывания значения этой ячейки. Вот тект: Вот и надо как-то грохнуть этот символ. Метод Попытка не работает т.к. вылетает ошибка при считывании. Вот собственно и все. P.S. Книжки хорошей по Экселю у меня нет, да и изучать некогда, 1С настроек хватает. Вот....
#12 by 427
Запусти запись макроса в экселе руками... А потом посмотри, что там написано... Эксель сам все расскажет.
#13 by tiko
Прочти, 427!!! Я и так в Экселе все написал руками (ты хоть читай сообщения).Вопрос в следующем: КАК ПОЛУЧЕННЫЙ КОД ЗАСТАВИТЬ РАБОТАТЬ В 1С? P.S. А ты если не знаешь, то не засоряй хламом форум.
#14 by Валентин
Вот тут я немного не понял. Только что создал файл в экселе и поставил твой # в начале, середине, и конце строки. Все прочиталось. Может у тебя просто переменная отвечающая за номер строки/столбца не определена? Или лист не инициализиться (как вариант "Путь" указывает не туда и соответственно worksheets будет NULL). Проверял на 2000 офисе И еще. Есть тут некий BоrisG, он все любит отсылать народ к ветке объясняющей как "правильно задавать вопросы". Поищи эту ветку. Почитай. Поможет
#15 by tiko
Валентин, спасибо за ссылку. Прочел, действительно интересная ветка. Возвращаюсь к своему вопросу. Странно как-то получается, у меня не работает загрузка из Excel если наименование начинается с символа "#". Выдает ошибку "Несовпадение типов" и зависает 1С-ка. Вот код   Наим=Лист.Cells(Стр,2).Value; А вот на этой строке вылезает ошибка. Хотя если наименование не начинается с симовла "#" то все ОК, загружается. И причем методы: Попытка, Сравнение я применить не могу, еще не считал значение. Как тут быть? В чем может быть дело? Заранее спасибо.
#16 by Рупор абсурда
Читай из ячейки не значение, а текст ...
#17 by tiko
Спасибо, все получилось. Какая мелочь, а! Хотя, я так и не понял: как полученный макрос из Excel (его код) писать в 1С? Например такой: Что для этого требуется? Еше раз спасибо!
#18 by Рупор абсурда
Это тебе и без меня счас расскажут тут ...
#19 by Рупор абсурда
+ Хм ... Чё-то не рассказывают ..., не знает, наверно, никто ...
#20 by 427
а накуа он нужен, этот Васька....
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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