Перевод кода макроса в код для 1С

Возникла необходимость запускать из под 1С в excel макросы.
Макрос записывал в самом excel,затем переводил код под 1С…,-надоело муторное проставление строк после ..CodeModule.InsertLines("..,поиск кавычек и.т.д..,в связи с чем решил написать обработку,переводящую код макроса в код для запуска из под 1С.
Может кому ещё сгодится

Открываем макрос,копируем код,запускаем обработку,вставляем в верхнее окно,нажимаем кнопку «перевести»,в нижнем окне должен появиться перевод,который можно скопировать в вашу конфигурацию и использовать как вам угодно.

просьба строго не судить,это моя первая публикация Smile

 

24 Comments

  1. Redokov

    Дело хорошее, хоть и под 7.7

    Есть ли планы на 8?

    Reply
  2. D9ID9I_SaIIIa

    (1)написал по необходимости для 7.7

    Reply
  3. newbas

    С почином 😉

    Reply
  4. KitKat

    Это курутобл, как раз нужна такая обработочка! Сасибо , Дядя Саша!

    Reply
  5. Abadonna

    (0)

    поиск ковычек

    Поправь — кАвычек, а то прям аж глаз режет 😉

    Разработка: +

    Reply
  6. D9ID9I_SaIIIa

    (5) очепятки разноорбязят техст ) 😀

    Reply
  7. Abadonna

    (6) ля-ля не надо 😀 буквы «а» и «о» шибко далеко расположены, чтобы на очепятку канало 😉

    Reply
  8. D9ID9I_SaIIIa

    (7) исправил )

    Reply
  9. SiAl

    Прикольно. Молодец. Пиши подобное по «восьмерку».

    Reply
  10. dav405

    Ха, плюс. Забавная идея.

    Reply
  11. adapter

    я чес гря смысла не понял. Зачем из 1С формировать код макроса для выполнения в том же ексель? Есть ведь OLE, или можно выполнить из 1с уже готовый макрос в книге Ексель. Реальный пример задачи можно в студию?

    Reply
  12. D9ID9I_SaIIIa

    (11)

    ну например в excel выгружаю таблицы,потом по эти таблицам строю графики(через макрос вставленный из 1С).

    С помощью макроса я размещаю диаграмму на листе там -где мне это необходимо,меняю цвета рядов диаграммы,изменяю размер диаграммы…

    //——

    предварительно я выгружаю из 1С таблицы ,затем записываю макрос строящий диаграмку,посмотрел что да как будет выглядеть,отшлифовал макрос в самом excele к необходимому мне результату,с помощью обработки перевел в код 1С и вставил в конфигурацию.При формировании отчета выгружаю все в excel с запуском макроса,естественно из под 1С.

    //—————

    да можно выполнить из 1С готовый макрос в excel

    например Exceл.Run(«Макрос1») ну это для моего примера,просто не стал последнюю строчку дописывать в обработку 😀

    Reply
  13. Sure

    Вроде бы всё правильно…

    Ехсел=СоздатьОбъект(«Excel.Application»);
    Книга=Ехсел.Workbooks.Add;
    MR=Книга.VBProject;
    NM=MR.VBComponents.Add(1);
    NM.CodeModule.InsertLines(1,»Sub M»);
    NM.CodeModule.InsertLines(2,»MsgBox ‘aaa'»);
    NM.CodeModule.InsertLines(3,»End sub»);
    

    Показать

    Но!..

    MR=Книга.VBProject;

    {D:MODULE.ERT(8)}: Microsoft Office Excel: Программный доступ к проекту Visual Basic не является доверенны

    Обидно 😥

    Reply
  14. D9ID9I_SaIIIa

    (13)В настройках Exсel

    Сервиз—>Параметры—>Безопасность—>Безопасность макросов

    уровень безопасности- низкая

    Надежные издатели—-доверять доступ к VB проекту

    Reply
  15. D9ID9I_SaIIIa

    (13) и Ехсел.Run(«M»); //чтоб запускалось при открытии excel

    Reply
  16. adapter

    (12) вот выше уже сказали про траблу. Если менять код макроса программно, то надо в параметрах ставить доверие. ПО умолчанию у всех выключено. Значит автоматически работать не будет — пройти по всем юзверям и пожмакать галки это не гут. ИМХО проще сделать так:

    1. Подготовить заранее книгу excel с форматированием и диаграммой.

    2 Хранить ее в каталоге ИБ для 77 или в хранилище для 8

    3. Из 1с, программно, открыть, заполнить данными

    Можно довесить пару бантиков:

    например сохранить книгу как шаблон (xla), новые книги программно создавать из этого шаблона. Есть такой параметр в Open. ТОгда будет новая книга1.xls с нужными данными

    Если совсем что то нереальное надо, какую то интерактивность, выполнение макросов у клиента после заполнения, то можно вписать готовый макрос и через Ехсеl.Run

    Reply
  17. D9ID9I_SaIIIa

    (16) «1.Подготовить заранее книгу excel с форматированием и диаграммой.

    2 Хранить ее в каталоге ИБ для 77 или в хранилище для 8

    3. Из 1с, программно, открыть, заполнить данными»

    отчёты у мня выводит 1 пользователь,отчёты слишком громоздкие и зависят от множества параметров,так что подготовить excel с форматированием не получиться,+одному «юзверю» настроить excel дело 1 мин.,делал для себя кому пригодиться хорошо.,хотя твоя идея тоже неплохая

    Reply
  18. adapter

    или засунуть запуск макроса в sub_main — тогда макрос сам будет стартовать при открытии книги, без всякой 1с и OLE (com)

    Reply
  19. Mopo3
  20. Tatitutu

    (18) http://infostart.ru/public/62799/ — там есть два моих примера как можно обойти ДОВЕРИЕ к МАКРОСАМ )))) и это не придел

    (0) как варинт , для доработки

    макрос в код 1С — имя макроса в список

    список как параметр в 1С

    макрос в Личную книгу макросов

    после всех манипуляций книгу можно «убивать» или «откладывать» до нужных времен.

    Reply
  21. kubik12

    всем привет!у меня проблема мне очень надо макрос который в экселе (перезаписать код) в 1С . Вопрос:объясните мне почему программа которая переводит как я понял код макроса в 1с 8.0 у меня не работает?может я что-то не так делаю? 🙁

    Reply
  22. Tatitutu

    «Разработка компьютерной технологии решения экономико-математических задач о назначениях венгерским методом»

    ладно лирики

    1. потому что обработка для 7.7

    2. у тебя не МАКРОС, а форма с кодом — это немного разные вещи

    что ты хочешь в 8 ку перетащить Sub минимизация() ? или полностью весь фунционал ?

    так его намного проще в 8 ке написать заново

    Reply
  23. kubik12

    минимизацию и максимизацию!!!!!!!или хотябы минимизацию . дело в том что я даже понятия не имею как это сделать в 1с!!! Если можно помогите!!!!!! 😥 😥

    Reply
  24. Самоделкин

    Хорошая штука, хоть и много времени прошло с ее создания, а до сих пор актуальна.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *