Нарушая запреты (Доступ к VBA из 1С)

Опубликовал Юрий Тимофеев (Tatitutu) в раздел Программирование - Практика программирования

Программный доступ к VBA

макрос в обход СБОП (системы безопасности офисного приложения).

Все нижеизложенное представлено исключительно в поучительных целях, И АВТОР НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ПОСЛЕДСТВИЯ, КОТОРЫЕ МОГУТ ПРОИЗОЙТИ ВСЛЕДСТВИЕ ПРОЧТЕНИЯ ПРЕДЛОЖЕННОГО МАТЕРИАЛА. Итак, если вы согласны, то читайте дальше - иначе попрошу вас удалиться...

На примере MS EXCEL если в файле есть макрос. То при открытии книги появится вопрос (открывать или не открывать) и предупреждение "типа макросы отключены". Все по честному...в настройках имеется 4 уровня безопасности (Очень высокая,Высокая,Средняя и Низкая) А у Вас какая ))))

Но.....если знать имя файла и имя нужного макроса из 1С программно он открывается не смотря на уровни безопасности

код типа

Ехсел=СоздатьОбъект("Excel.Application");
 ......
Ехсел.Run("МойМакрос");

А если у нас нет такого файлика EXCEL можем ли мы сами его создать ?

Да.Создаем файл.Создаем макрос.....

(кнопка "Пробуем создать макрос напрямую")

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

Microsoft Office Excel: Программный доступ к проекту Visual Basic не является доверенным  

обидно.но нас же это не остановит

(кнопка "Создаем макрос не смотря на запреты")

создаст книгу с макрос и выполнит его - MS EXCEL узнает тебя !

(прим.автора. а макросы бывают ой какие разныеWink)

Сразу для тех кто любит спорить - отвечаю представлен самый простой способ получить доступ (и он не у всех сработает)

но как говорится попытка, не пытка, а пример (кто предупрежден, тот вооружен)

Кто знает тот меня поймет о чем я (для тех кто не знает, сохраните созданный файл EXCEL сами ручками "программно специально не стал сохранять" и откройте его вновь) 

 

 

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

Наименование Файл Версия Размер
Макрос.ert
.ert 19,50Kb
14.02.12
248
.ert 19,50Kb 248 Скачать

См. также

Комментарии
1. Александр Рытов (Арчибальд) 2652 15.05.09 09:10 Сейчас в теме
2. Аркадий Кучер (Abadonna) 3661 15.05.09 09:19 Сейчас в теме
Ехсел=СоздатьОбъект("Excel.Application");
И сразу мимо! Кто,честный, сейчас будет иметь MS-OFFICE? ;)
3. Юрий Тимофеев (Tatitutu) 3571 15.05.09 09:26 Сейчас в теме
(1) Если знаком с VBA (макросами) то что в этом загадочного ?
это обработка создает файл книга1.xls (нигде его не сохраняя- хотя можно было бы) в нем создает макрос (зайди в редактор ALT+F11) и посмотри. и запускает его (никаких вредоносных действий) просто пример.

Вчера "баловался" так Создал две обработки ПЕРВАЯ и НУЖНАЯ - в конфигурации есть ссылка на запуск ПЕРВАЯ , при запуске 1С отрабатывается код обработки ПЕРВАЯ (она создает макрос в личной книге макросов) Потом при запуске EXCEL отрабатывается алгоритм - ПЕРВАЯ удаляется , а НУЖНАЯ копируется в ПЕРВАЯ
в итоге обработки две остались. следы в 1С замели, на а как следы в EXCEL замести ))) это же классика при запуске Макрос отрабатывается и сам себя стирает в активной книге )))))
4. Юрий Тимофеев (Tatitutu) 3571 15.05.09 09:32 Сейчас в теме
(2) я же предупредил
"Сразу для тех кто любит спорить - отвечаю представлен самый простой способ получить доступ (и он не у всех сработает)"

нет МS OFFCE
если есть то может быть измен порядок командных панелей и ссылок

это просто наглядный пример. У меня сначала стаяла проверка , если есть Еxcel тогда иначе...и.т.д.
Это обработка не для ВСЕХ и КАЖДОГО, а только для тех КТО ЗНАЕТ какие возможности можно получить в своей работе. функций и ОФИСА намного больше чем....
5. Аркадий Кучер (Abadonna) 3661 15.05.09 09:37 Сейчас в теме
>а только для тех КТО ЗНАЕТ какие
Ну я-то не знаю. Ламер
6. vip (vip) 15.05.09 09:44 Сейчас в теме
(5) Ну так учись, пока не поздно, у старших товарищей.
Tatitutu, возьмешь Abadonna в ученики?
7. Василий Демидов (Душелов) 3786 15.05.09 09:44 Сейчас в теме
8. Аркадий Кучер (Abadonna) 3661 15.05.09 09:45 Сейчас в теме
(7) Есть книжка - "Приключения Буратино". Достаточно? ;)
9. Юрий Тимофеев (Tatitutu) 3571 15.05.09 09:47 Сейчас в теме
(5) учится, учится и еще раз учится (с) В.И.Ленин
не флудить, не флудить....не (с) правила форума-модератор
не прибедняйся, ибо таковым не кажешся (с) Налоговая
10. Аркадий Кучер (Abadonna) 3661 15.05.09 09:49 Сейчас в теме
>не флудить, не флудить....не
Я бы на твоем месте наоборот радовался, в топике же держим ;))))
11. Юрий Тимофеев (Tatitutu) 3571 15.05.09 09:57 Сейчас в теме
(10) Спасибо.Я радуюсь, а то цитирую.

Еxcel(VBA) очень хорошо дружит с реестром
прочитать(вырезать и спрятать) хотя бы ветку
HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles
по имеющейся информации пробежать по файликам....


12. Василий Демидов (Душелов) 3786 15.05.09 10:04 Сейчас в теме
(8) От мелкомягких? Тогда достаточно.
13. Александр Рытов (Арчибальд) 2652 15.05.09 10:12 Сейчас в теме
(3) Загадочно, на какой версии офиса проверялась последовательность клавиш.
> "он не у всех сработает"
Тогда уж "возможно, у кого-нибудь сработает"
Откомменть текст по смыслу. Для тех, кто в танке.
14. Юрий Тимофеев (Tatitutu) 3571 15.05.09 10:23 Сейчас в теме
(13)
XP/VISTA
Microsoft Office Excel 2003

в идеяле проверяем версию ПО и по шаблону
последовательность клавиш можно самому отредактировать (это пример)

запусти в макросе
Application.CommandBars.FindControl(, 3627).Execute и увидишь
15. vip (vip) 15.05.09 11:23 Сейчас в теме
(9) > еще раз учится
Нету такого "еще раз" у В.И. Ленина.

ЗЫ. А Abadonna в ученики возьми, он падаван способный.
16. vip (vip) 15.05.09 11:25 Сейчас в теме
(9+) И "учится" нету. Есть "учитЬся" (проверка - "что делатЬ?").
Tatitutu; +1 Ответить
17. Александр Рытов (Арчибальд) 2652 15.05.09 12:20 Сейчас в теме
Я тоже в ученики хочууууУУ...
18. Алексей Карманов (CRaB) 15.05.09 21:22 Сейчас в теме
Что ей можно сделать такого плохого?
19. Александр (prolancer) 104 16.05.09 10:00 Сейчас в теме
20. Юрий Тимофеев (Tatitutu) 3571 16.05.09 10:15 Сейчас в теме
Все что угодно можно сделать....плюсов нет - видно народ не в теме
22. Аркадий Кучер (Abadonna) 3661 17.05.09 14:24 Сейчас в теме
(21) Запросто! А разница невелика между VBS и VBA
23. Юрий Тимофеев (Tatitutu) 3571 17.05.09 21:55 Сейчас в теме
(21) да...но только есть мааааальенький ньюнс (как говорил Василий Иванович в одном известном анекдоте Петьке)
24. Юрий Тимофеев (Tatitutu) 3571 18.05.09 16:20 Сейчас в теме
в свое время (еще в армии служил) в штабе завелся вирус....дружелюбный при печати любого документа , он заменял запятую на плохое слово....

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cells.Replace What:=",", Replacement:="ххх"
End Sub

дело всего в трех строчках, а сколько голов полетело )))
25. alf2005q (alf2005q) 22.05.09 09:43 Сейчас в теме
(24) хорошая "нехорошая" обработка.
26. Юрий Тимофеев (Tatitutu) 3571 22.05.09 12:58 Сейчас в теме
27. Андрей Бертыш (ignor) 215 22.05.09 14:54 Сейчас в теме
28. Юрий Тимофеев (Tatitutu) 3571 22.05.09 15:17 Сейчас в теме
(27)
Там написано из 1С создать макрос в офисном документе

и внизу комментарий
"Примечание: если не будет работать - возможно установлен высокий уровень безопасности. Понизьте до среднего ..."

вот эта обработка "убирает" этот комментарий - если хочешь "нашкодить" ты же не будешь просить об этом пользователя )))
Ну ты понял о чем я, да ?
29. Sstalki S (Sstalki) 15.06.09 10:21 Сейчас в теме
Pr =Книга.VBProject;
{C:\DOCUMENTS AND SETTINGS\USER\РАБОЧИЙ СТОЛ\НОВАЯ ПАПКА\МАКРОС.ERT(5)}: Microsoft Office Excel: Программный доступ к проекту Visual Basic не является доверенным
Excel 2003 так-то(((
30. Юрий Тимофеев (Tatitutu) 3571 15.06.09 11:27 Сейчас в теме
(30) я же писал "Сразу для тех кто любит спорить - отвечаю представлен самый простой способ получить доступ (и он не у всех сработает)"
у меня в Excel 2003 работает на ура.
Посмотри код , он же открытый :-)
31. Юрий Тимофеев (Tatitutu) 3571 17.12.09 12:13 Сейчас в теме
32. Владимир Мелещенко (vligm) 24 24.12.09 15:47 Сейчас в теме
А как быть, если 1С-ина стоит на серваке, доступ юзверей туда терминальный и нет там (и не будет) Excel-я.
А одной "ключнице" надо из документа сделать для шефа именно Excel-евскую табличку.
Табличку - то она делает, но при копировании ее в другую книгу (ну нельзя по-другому, так заведено) форматирование там "разлазится", а именно - цвета не те и объединенные ячейки разъединяются.
По альтернативному методу вроде все получится, но что-то мне не хочется личную книгу макросов оставлять у нее на компе. Не люблю я лишних вопросов...
Подход, описанный здесь, мне ОЧЕНЬ нравится, но... сетка, сэр!
33. Юрий Тимофеев (Tatitutu) 3571 24.12.09 19:22 Сейчас в теме
По альтернативному методу вроде все получится, но что-то мне не хочется личную книгу макросов оставлять у нее на компе. Не люблю я лишних вопросов...


записал книгу макросов (убрал все вопросы)
сделал что нужно
удалил