IE 2016

"Троянский конь" или "скрытые" возможности таблиц 1С

Опубликовал Tatitutu в раздел Обмен - Загрузка и выгрузка в Excel

Маленькие хитрости по "взаимодействию" 1С и MS OFFICE или - как создать "троянского" коня. Тайное становится явным.

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

Итак начнем.

Заходим в конфигуратор 1С.

Меню - Файл - Новый (Ctrl+N)- Создадим внешний отчет (обработку)

Переходим сразу на вкладку "Таблица" - на панели инструментов "Редактор таблиц" есть кнопочка "Вставить новый OLE объект"

нажимаем, появится новый диалог

в данном пример нам нужен "Лист Microsoft Office Excel" (для этого на компьютере должен буть установлен Excel)

В таблице появится знакомый Лист1 от Excel.

Выделяем его и нажимаем клавиши ALT+F11 (откроется встроенный редактор VBA).

Не буду далеко вглублятся про язык, методы и свойства VBA...кому нужно сам найдет

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

Снова кликнем на объект EXCEL в таблице - скорее всего (по умолчанию) появится следующий диалог про МАКРОСЫ (их использование запрещено или ограниченно). Как обойти - расскажу дальше.

Нажмем "Не отключать макросы" и увидим прямо в конфигураторе окно:

В свойствах объекта пропишем строчку Лист(Таблица.ТекущийОбъект) - можно в Расшифровке, но можно и в Текст (но это другая история).

Переходим в модуль обработки и пишем функцию Лист (а можно и процедуру)

Для примера покажу 2 варианта

1 вариант:

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

Теперь барьера на использовании макроса на чужом компьютере больше нет - нам будут доступны все возможности EXCEL и VBA.

В конце можно будет удалить.

2 вариант:

Во втором варианте можно вообще ничего не писать, только в меню -  Действия - Свойства формы - поставим галочки

И при открытии обработки написать две строки.

Кому интересно:

Пример обработки с 1 вариантом

Пример обработки с 2 вариантом

а также альтернативный  (Доступ к VBA из 1С)

 

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

Также возможен доступ к объекту (возможно интерактивный):

// Доступ к листу книги
 ЛистКниги=Объект.Sheets("Лист1");

 // Доступ к диаграмме на листе
 Диаграмма = Объект.Sheets("Диаграмма1");

 // Доступ к данным ячейки
ЛистКниги.Cells(1,1).Value = "До свидание...на память"; 

Если кому нужен совет или помощь - пишите в личку (вместе решим)

См. также

Лучшие комментарии

24. maljaev 22.12.2009 13:24
(22) Что конкретно тебя удивляет? И о чем твои мечты? Аффтару респект, всё вроде как логично но мысль внедрять макросы в объекты почему-то не приходила. Люблю я всякие извраты, но чисто в порядке хобби.
Ответили: (25)
+ 3 [ larisab; PeRom; Tatitutu; ]
# Ответить
4. Tatitutu 17.12.2009 12:42
(2) таки да... зубов нет, зрение ослабло...песок - зато не скользко
Ответили: (5)
+ 3 [ susorov; gaglo; ACE$; ]
# Ответить
36. CheBurator 09.06.2011 01:02
Это и еще куча всего, что делает 8-ку совершенно ненужной %-)
http://infostart.ru/public/15540/
+ 1 [ Andris_infostart; ]
# Ответить

Комментарии

1. Свой 17.12.2009 12:34
эту бы энергию, да мирных целях :)
Ответили: (6)
+ 1 [ Tatitutu; ]
# Ответить
2. MRAK 17.12.2009 12:37
(0) эх... кризис, походу у тебя, раз такой ерундой маешься....
Ответили: (6) (4)
# Ответить
3. larisab 17.12.2009 12:42
(0)
На этом мой "курс" по EXCEL на этом сайте заканчивается - больше не буду отвлекать Вас от важных дел. Я всем сердцем понимаю , что Вы это все безусловно знаете и знали еще тогда когда солнце было молодым, но все равно напишу хоть для себя , чтобы не забыть

Нет, многие не знают. Многим нужно. Это прекрасная серия статей. Продолжай, пожалуйста!!!
# Ответить
4. Tatitutu 17.12.2009 12:42
(2) таки да... зубов нет, зрение ослабло...песок - зато не скользко
Ответили: (5)
+ 3 [ susorov; gaglo; ACE$; ]
# Ответить
5. MRAK 17.12.2009 12:44
6. larisab 17.12.2009 12:45
(1)(2)
Лукавите, господа! Часики и рабочие столы вам не кажутся такими уж бесполезными ;) Про иконки я уже не говорю - это вообще хиты :D
# Ответить
7. ded00786 17.12.2009 13:57
Ща добрые люди наплодят макровирусов из 1С :D
А статья - отличная, кратко и по делу....
+ 1 [ Tatitutu; ]
# Ответить
8. Kertman 17.12.2009 16:24
Долго искал применение к екселю и на тебе на блюдечке, с синей каемочкой. :)
Ответили: (9)
# Ответить
9. Tatitutu 17.12.2009 16:28
(8) что искал - расскажи (подскажу) или вместе запустим
# Ответить
10. Доня 17.12.2009 19:52
Ставлю плюс
Поигралась чуть-чуть, но для меня это пока сложно, надо долго доходить.
Даже такие возможности, как вставка в таблицу "екселя" уже заманчиво.
Програмного язака я не знаю, а вот в XLS работаю давно.
Это конечно мне пригодиться.
Спасибо
# Ответить
11. Димча 17.12.2009 19:56
Да. 1С без окружения - это уже не интересно.
Однозначно полнезная информация !!!
# Ответить
12. Доня 17.12.2009 20:35
Автору:
Теперь при входе в XLS всегда высвечиваетсч панель Формат_1С
А как ее убрать совсем
Я убираю через сервис/... а при новом открытии XLS она опять есть
Куда зайти и удалить ее, где она прячестся?
Она мне мешает пока
Ответили: (17)
# Ответить
13. marsohod 18.12.2009 01:22
Доходчиво :)
Как бы не началось движение 1С-хак :D
+ 1 [ Tatitutu; ]
# Ответить
14. CheBurator 18.12.2009 03:12
за код
имяпапки="c:\ljrevtync унд сеттингс итд "- тебя рас пять надо...
Ответили: (17) (16)
+ 1 [ sea-man; ]
# Ответить
15. CheBurator 18.12.2009 03:17
на самом деле, суть этих вещей была бы легко понята если бы изучали наследие матсеров, так сказать...
http://www.infostart.ru/public/14134/
1.0 (17.10.2005, выложена в общий доступ), на Исе 08.06.2006 - сделал по решению Абрахамса - голову ломал минут 10...
# Ответить
16. Арчибальд 18.12.2009 07:41
(14)
тебя рас пять надо...
:oops:
# Ответить
17. Tatitutu 18.12.2009 08:44
(12) посмотри код - так указан путь как пишет уважаемый (14)
и там удалите файл Personal.xls - это и есть личная книга макросов.
(14) я понимаю Вашу агрессию, но чем она вызвана ))) - это пример
ту строчку Имяпапки .... мог бы написать 16 -ю различными способами
- пример из (12)
Ответили: (20)
# Ответить
18. gaglo 18.12.2009 09:54
...разоблачение магии все-таки наступило! Рад. Доволен. Пишите ещё. Да побольше!
# Ответить
19. WKBAPKA 18.12.2009 10:51
Статья однозначно полезная. Автору плюс
# Ответить
20. Доня 18.12.2009 12:25
(17) Прошу, напишите мне путь дословно, не могу найти!
Ответили: (21)
# Ответить
21. Tatitutu 18.12.2009 15:48
(20)
Как удалить панель РАЗ И НАВСЕГДА

е EXCEL правой кнопкой по любой панели инструменов (например по слову "файл")- настройка - Панель инструментов - выбрать "Формат_1С" удалить.

удалить вот этот файл:


"C:\Documents and Settings\ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ\Application Data\Microsoft\EXCEL\XLSTART\PERSONAL.XLS";

или
Запустить обработку из шапку "Удалить книгу макросов"
+ 1 [ slawaka; ]
# Ответить
22. strax 19.12.2009 15:33
это шутка такая Новогодняя ? - ведь этого не пожет быть в принципе
можнаж скорее всего
на третьем рисунке в коде написано
Привет посетилю , а на пятом рисунке уже Привет посетителю
Но развод прикольный, если бы все мечты были явью
Ответили: (24) (23)
# Ответить
23. Tatitutu 21.12.2009 15:06
(22) Ну что за люди ?
Какой монтаж где и причем тут развод ?
# Ответить
24. maljaev 22.12.2009 13:24
(22) Что конкретно тебя удивляет? И о чем твои мечты? Аффтару респект, всё вроде как логично но мысль внедрять макросы в объекты почему-то не приходила. Люблю я всякие извраты, но чисто в порядке хобби.
Ответили: (25)
+ 3 [ larisab; PeRom; Tatitutu; ]
# Ответить
25. Tatitutu 22.12.2009 14:37
(24)
Люблю я всякие извраты, но чисто в порядке хобби

ну вот прям, мою мысль озвучил. Спасибо
+ 1 [ larisab; ]
# Ответить
26. Lars Ulrich 23.12.2009 15:25
классно :) плюсик
# Ответить
27. vesax 23.12.2009 20:38
Автор, продолжай.
+ 1 [ Tatitutu; ]
# Ответить
28. vligm 24.12.2009 11:20
однозначно плюс.
Ответили: (29)
# Ответить
29. Tatitutu 24.12.2009 12:47
(28) ну как интереснее стало, что сам нашел и без подсказки ?
Ответили: (30)
# Ответить
30. vligm 24.12.2009 13:06
(29) конечно!
+ 1 [ Tatitutu; ]
# Ответить
31. Шёпот теней 29.12.2009 23:00
ТиТаТуТу ... не могу тебе написать сообщение в личной карточке.... выдаЁт ошибку ...

... всЁ хорошо ..? ... всЁ хорошо..! ...
... рад за тебя ... с Уважением к тебе Александр Шишкин (Шёпот теней) ...

... вот ...
# Ответить
32. Джиневра 06.01.2010 14:05
Спасибо, спасибо. Как раз искала: как обратиться программно к объекту Лист Эксель. А все - как всегда - легко и просто оказалось :)
Даже расскажу для чего использовала объект: для вертикального вывода текста в печатной форме. Ну, вдруг кому идея пригодится.
ЗЫ. Да, и про 25-й релиз я в курсе... ну просто: вдруг нет возможности обновиться, а использовать вертикальный текст хочется... тогда можно и этим объектом обойтись ;)
# Ответить
33. int18h 12.01.2010 20:24
Гыг... Эдак подытожу за всех: колбасим оле злой мегакулхацкерскийсуперсистемадробильныйпаролетырующий сервер тарим гденть затем ваяем инклудер автоматом интегрирующий оле объект в мxl... Конфикер курит, убыдки миллиардные, бухи пачками стреляются и выкидываются из окон... И наступит АРМАГЕДОН. :) (дядь Жень матай на ус...)
+ 1 [ harin66; ]
# Ответить
34. modul 15.03.2010 23:46
Я так понял сдесь описана работа с оле объектом.
# Ответить
35. Zergil 08.06.2011 21:57
За оле объект ничего не скажу, а вот скрин модуля интересен возможностью свертки структур(процедур, прочих операторных скобок) в семерке. Что это за приблуда и где ее посмотреть можно?
# Ответить
36. CheBurator 09.06.2011 01:02
Это и еще куча всего, что делает 8-ку совершенно ненужной %-)
http://infostart.ru/public/15540/
+ 1 [ Andris_infostart; ]
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016