gifts2017

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

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

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

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

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


12. Василий Демидов (Душелов) 15.05.09 10:04
(8) От мелкомягких? Тогда достаточно.
13. Александр Рытов (Арчибальд) 15.05.09 10:12
(3) Загадочно, на какой версии офиса проверялась последовательность клавиш.
> "он не у всех сработает"
Тогда уж "возможно, у кого-нибудь сработает"
Откомменть текст по смыслу. Для тех, кто в танке.
14. Юрий Тимофеев (Tatitutu) 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. Александр Рытов (Арчибальд) 15.05.09 12:20
Я тоже в ученики хочууууУУ...
18. Алексей Карманов (CRaB) 15.05.09 21:22
Что ей можно сделать такого плохого?
19. Александр (prolancer) 16.05.09 10:00
20. Юрий Тимофеев (Tatitutu) 16.05.09 10:15
Все что угодно можно сделать....плюсов нет - видно народ не в теме
22. Аркадий Кучер (Abadonna) 17.05.09 14:24
(21) Запросто! А разница невелика между VBS и VBA
23. Юрий Тимофеев (Tatitutu) 17.05.09 21:55
(21) да...но только есть мааааальенький ньюнс (как говорил Василий Иванович в одном известном анекдоте Петьке)
24. Юрий Тимофеев (Tatitutu) 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) 22.05.09 12:58
27. Андрей Бертыш (ignor) 22.05.09 14:54
28. Юрий Тимофеев (Tatitutu) 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) 15.06.09 11:27
(30) я же писал "Сразу для тех кто любит спорить - отвечаю представлен самый простой способ получить доступ (и он не у всех сработает)"
у меня в Excel 2003 работает на ура.
Посмотри код , он же открытый :-)
32. Владимир Мелещенко (vligm) 24.12.09 15:47
А как быть, если 1С-ина стоит на серваке, доступ юзверей туда терминальный и нет там (и не будет) Excel-я.
А одной "ключнице" надо из документа сделать для шефа именно Excel-евскую табличку.
Табличку - то она делает, но при копировании ее в другую книгу (ну нельзя по-другому, так заведено) форматирование там "разлазится", а именно - цвета не те и объединенные ячейки разъединяются.
По альтернативному методу вроде все получится, но что-то мне не хочется личную книгу макросов оставлять у нее на компе. Не люблю я лишних вопросов...
Подход, описанный здесь, мне ОЧЕНЬ нравится, но... сетка, сэр!
33. Юрий Тимофеев (Tatitutu) 24.12.09 19:22
По альтернативному методу вроде все получится, но что-то мне не хочется личную книгу макросов оставлять у нее на компе. Не люблю я лишних вопросов...


записал книгу макросов (убрал все вопросы)
сделал что нужно
удалил
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа