gifts2017

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

Опубликовал Александр (D9ID9I_SaIIIa) в раздел Программирование - Инструментарий

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

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

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

 

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
перевод макроса для 1С
.ert 10,50Kb
22.01.10
273
.ert 10,50Kb 273 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ruslan Edokov (Redokov) 22.01.10 15:22
Дело хорошее, хоть и под 7.7
Есть ли планы на 8?
2. Александр (D9ID9I_SaIIIa) 22.01.10 15:46
(1)написал по необходимости для 7.7
3. Сергей Яхонтов (newbas) 22.01.10 17:00
4. Екатерина Мартынова (KitKat) 22.01.10 18:00
Это курутобл, как раз нужна такая обработочка! Сасибо , Дядя Саша!
5. Аркадий Кучер (Abadonna) 23.01.10 10:35
(0)
поиск ковычек

Поправь - кАвычек, а то прям аж глаз режет ;)
Разработка: +
6. Александр (D9ID9I_SaIIIa) 23.01.10 12:05
(5) очепятки разноорбязят техст ) :D
7. Аркадий Кучер (Abadonna) 23.01.10 12:09
(6) ля-ля не надо :D буквы "а" и "о" шибко далеко расположены, чтобы на очепятку канало ;)
8. Александр (D9ID9I_SaIIIa) 23.01.10 14:12
9. Алексей Ситников (SiAl) 25.01.10 13:03
Прикольно. Молодец. Пиши подобное по "восьмерку".
10. david (dav405) 26.01.10 12:09
11. AdApter (adapter) 27.01.10 13:30
я чес гря смысла не понял. Зачем из 1С формировать код макроса для выполнения в том же ексель? Есть ведь OLE, или можно выполнить из 1с уже готовый макрос в книге Ексель. Реальный пример задачи можно в студию?
12. Александр (D9ID9I_SaIIIa) 27.01.10 15:20
(11)
ну например в excel выгружаю таблицы,потом по эти таблицам строю графики(через макрос вставленный из 1С).
С помощью макроса я размещаю диаграмму на листе там -где мне это необходимо,меняю цвета рядов диаграммы,изменяю размер диаграммы...
//-----
предварительно я выгружаю из 1С таблицы ,затем записываю макрос строящий диаграмку,посмотрел что да как будет выглядеть,отшлифовал макрос в самом excele к необходимому мне результату,с помощью обработки перевел в код 1С и вставил в конфигурацию.При формировании отчета выгружаю все в excel с запуском макроса,естественно из под 1С.
//--------------
да можно выполнить из 1С готовый макрос в excel
например Exceл.Run("Макрос1") ну это для моего примера,просто не стал последнюю строчку дописывать в обработку :D
13. Александр Фокин (Sure) 27.01.10 17:55
Вроде бы всё правильно...
Ехсел=СоздатьОбъект("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 не является доверенны
Обидно :cry:
14. Александр (D9ID9I_SaIIIa) 27.01.10 19:25
(13)В настройках Exсel
Сервиз--->Параметры--->Безопасность--->Безопасность макросов
уровень безопасности- низкая
Надежные издатели----доверять доступ к VB проекту
15. Александр (D9ID9I_SaIIIa) 27.01.10 19:27
(13) и Ехсел.Run("M"); //чтоб запускалось при открытии excel
16. AdApter (adapter) 28.01.10 09:07
(12) вот выше уже сказали про траблу. Если менять код макроса программно, то надо в параметрах ставить доверие. ПО умолчанию у всех выключено. Значит автоматически работать не будет - пройти по всем юзверям и пожмакать галки это не гут. ИМХО проще сделать так:
1. Подготовить заранее книгу excel с форматированием и диаграммой.
2 Хранить ее в каталоге ИБ для 77 или в хранилище для 8
3. Из 1с, программно, открыть, заполнить данными

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

Если совсем что то нереальное надо, какую то интерактивность, выполнение макросов у клиента после заполнения, то можно вписать готовый макрос и через Ехсеl.Run
17. Александр (D9ID9I_SaIIIa) 28.01.10 09:21
(16) "1.Подготовить заранее книгу excel с форматированием и диаграммой.
2 Хранить ее в каталоге ИБ для 77 или в хранилище для 8
3. Из 1с, программно, открыть, заполнить данными"
отчёты у мня выводит 1 пользователь,отчёты слишком громоздкие и зависят от множества параметров,так что подготовить excel с форматированием не получиться,+одному "юзверю" настроить excel дело 1 мин.,делал для себя кому пригодиться хорошо.,хотя твоя идея тоже неплохая
18. AdApter (adapter) 28.01.10 09:28
или засунуть запуск макроса в sub_main - тогда макрос сам будет стартовать при открытии книги, без всякой 1с и OLE (com)
20. Юрий Тимофеев (Tatitutu) 29.01.10 14:19
(18) http://infostart.ru/public/62799/ - там есть два моих примера как можно обойти ДОВЕРИЕ к МАКРОСАМ )))) и это не придел
(0) как варинт , для доработки
макрос в код 1С - имя макроса в список
список как параметр в 1С
макрос в Личную книгу макросов
после всех манипуляций книгу можно "убивать" или "откладывать" до нужных времен.
D9ID9I_SaIIIa; +1 Ответить
21. Макс (kubik12) 31.05.10 04:48
всем привет!у меня проблема мне очень надо макрос который в экселе (перезаписать код) в 1С . Вопрос:объясните мне почему программа которая переводит как я понял код макроса в 1с 8.0 у меня не работает?может я что-то не так делаю? :(
Прикрепленные файлы:
задача о назначении.Полевикова.xls
22. Юрий Тимофеев (Tatitutu) 31.05.10 11:03
"Разработка компьютерной технологии решения экономико-математических задач о назначениях венгерским методом"

ладно лирики
1. потому что обработка для 7.7
2. у тебя не МАКРОС, а форма с кодом - это немного разные вещи
что ты хочешь в 8 ку перетащить Sub минимизация() ? или полностью весь фунционал ?
так его намного проще в 8 ке написать заново
23. Макс (kubik12) 31.05.10 18:12
минимизацию и максимизацию!!!!!!!или хотябы минимизацию . дело в том что я даже понятия не имею как это сделать в 1с!!! Если можно помогите!!!!!! :cry: :cry:
24. Анатолий Ман (Самоделкин) 31.03.14 15:11
Хорошая штука, хоть и много времени прошло с ее создания, а до сих пор актуальна.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа