Имя: Пароль:
1C
1C 7.7
v7: Как запустить 1с обработку из Excel
0 VBMADD
 
01.12.11
09:05
Привет братьям по разуму.
Подскажите пож-ста кто знает
Как запустить 1с обработку obrabotka.ert из Excel?

Спасибо всем, кто откликнулся.
1 Гефест
 
01.12.11
09:06
Даже страшно спросить зачем...
2 Wobland
 
01.12.11
09:07
обработка будет проводить документы в екселе?
3 PuhUfa
 
01.12.11
09:08
(0) скриптом?
4 Rie
 
01.12.11
09:09
(0) Запускаешь 1С из Excel - CreateObject("V77.Application"), затем Initialize (подробности - в ЖКК).
Ну и затем - ExecuteBatch("ОткрытьФорму(""Обработка.ТвояОбработка"")");
Что дальше - тут уж тебе виднее (если обработка не приспособлена к программному запуску - на этом всё и закончится).
5 ЧеловекДуши
 
01.12.11
09:22
Люди извращаются :)
Обычно пишут, "Как из 1С выполнить ВБА", А тут от обратного :D
6 ЧеловекДуши
 
01.12.11
09:23
(1)Наверное будет на прямую из 1С запущенной из екселя заполнять эту страницу :)
..."прогресс, мать её."...
7 VBMADD
 
01.12.11
09:28
(2)(6) Просто сотруднику из 1с7 ЗиК регулярно нужна информация по сотрудникам предприятия, но ему не дан доступ к 1с в целях безопасности.
Поэтому у меня возникла идея запуска отдельного файла obrabotka.ert через Excel и формирование в уже в Excel'e нужного отчетика...
8 Wobland
 
01.12.11
09:28
(7) то есть, сделать таким образом доступ. а права там поурезать и всё такое?
9 VBMADD
 
01.12.11
09:30
(8) Это требование руководства не давать доступа, объяснять руководству про ограничение прав - бесполезно, себе же дороже выйдет...
10 Wobland
 
01.12.11
09:32
(9) пускай руководство и делает отчёт сотруднику, не?
11 Rie
 
01.12.11
09:34
(7) Извращённая идея.
Excel через V77.Applicaiton прекрасно подконнектится к 1С - и получит доступ ко всем данным. При чём тут "запуск обработки" - сие тайна великая есть. Изучай ЖКК на предмет подключения по OLE.
12 VBMADD
 
01.12.11
09:36
(10)Постановка каких то условий Руководству всегда чревата увольнением зарвавшегося сотрудника...

Обработка просто сбрасывает нужную инфу в файл.dbf, а Excel потом делает все что нужно с этой инфой!!!
13 VBMADD
 
01.12.11
09:38
(11)Не всю информацию можно корректно передать по OLE
14 Rie
 
01.12.11
09:38
(12) А почему бы просто не скопипастить обработку в Excel - и затем чуток подредактировать её текст, вместо того, чтобы ещё и DBF сюда припутывать.
15 Rie
 
01.12.11
09:38
(13) Какую нельзя?
16 ЧеловекДуши
 
01.12.11
09:39
(12)Вот это изврат :D
...проще сделать урезанный набор прав с одним пунктом меню...
"Отчет по сотрудникам..." в той форме, какой надо.
Запретить запуск сторонних обработок.
17 Rie
 
01.12.11
09:39
+(15) И в DBF, и в Excel ты можешь передать только простые типы - поэтому всё, что тебе нужно (раз через DBF работает) ты и по OLE передашь.
18 ЧеловекДуши
 
01.12.11
09:39
+(12)Зачем все делать через ДБФ, когда ты прямо из 1С можешь заполнить ексель :)
19 VBMADD
 
01.12.11
09:39
(15) Изучай ЖКК на предмет подключения по OLE.
20 ЧеловекДуши
 
01.12.11
09:40
+ т.е. получить уже нужную информацию и дез обработки, ну почти.
Остается только в 1С объявить глобальные переменные, которые и будут заполнены с условием из обработки.
21 ЧеловекДуши
 
01.12.11
09:41
+(20)дез  - без
22 ЧеловекДуши
 
01.12.11
09:41
(19)Как тебе вариант?
23 Rie
 
01.12.11
09:41
(19) То есть, ответить не можешь? Я своё "изучай ЖКК" расшифровал.
24 VBMADD
 
01.12.11
09:42
(23)Это к теме не имеет отношеня...
25 VBMADD
 
01.12.11
09:44
(20) Не в самой 1с ничего менять нельзя!!! поэтому и идея с dbf
26 ЧеловекДуши
 
01.12.11
09:44
+(24)Ты в курсе, что если БД DBF, то она может потребовать пере индексацию. И тебе пользователь высушит мозг по поводу невозможности получить данные.
27 ЧеловекДуши
 
01.12.11
09:45
(25)Причем тут менять?
О_О... понял...
Пошли их лесом... пускай сами пишут. Нереально. И бестолково.
Будут проблемы с ОЛЕ.
28 ЧеловекДуши
 
01.12.11
09:46
+(25)Ты какую именно хочешь получить информацию из 1С?
Что за конфа?
29 ЧеловекДуши
 
01.12.11
09:47
+ Почему именно через обработку?
Ведь по сути данные из справочников можно получать и так.
30 Fish
 
01.12.11
09:50
(19) Мне тоже интересно услышать ответ на (15) - какие данные нельзя передать по ОЛЕ? Может вы "просто не умеете их готовить"? :)) У меня, во всяком случае, никогда не возникало проблем с передачей данных по ОЛЕ :)))
31 Aprobator
 
01.12.11
09:52
(14) ага - только для этого нужен как минимум логин и пароль.
32 Aprobator
 
01.12.11
09:52
(31) это к (11).
33 VBMADD
 
01.12.11
09:54
(26) не, в файле.dbf уже должна быть собрана вся информация и индексировать нечего не надо
(30) медленно это все и хлопотно работает в Excel, раньше пробовал -  не понравилось, не хочу 2-ды на грабли...
34 Aprobator
 
01.12.11
09:55
а вообще ADO рулит даже при работе с Excel.
35 Rie
 
01.12.11
09:56
(31) Так и в чём проблема? Создаётся практически бесправный пользователь - и имеем логин с паролем.
36 VBMADD
 
01.12.11
09:56
(17) согласен
37 VBMADD
 
01.12.11
09:58
Может кто даст основу для дальнейшей отладки, если не трудно...
38 Aprobator
 
01.12.11
09:59
(35) т.е. делаетс доступ в базу. А мало ли руководство вумное и подсмотрит наличие несанкционированного пользователя в базе. А вообще, коль речь о 7 и вариант дбф - то можно и напрямую данные считать без пользователя.
39 Aprobator
 
01.12.11
10:00
(38) со скулем посложнее - там нужен всяко пользователь, но к скулю. Тоже решаемо.
40 ЧеловекДуши
 
01.12.11
10:02
(37)Ты первопроходец... Такого изврата я еще на мисте не видел :)
41 Aprobator
 
01.12.11
10:03
(40) +100500 )))
42 ЧеловекДуши
 
01.12.11
10:03
(38)Тоже не вариант.
43 Rie
 
01.12.11
10:03
(38) Почему несанкционированного? Вот руководство, вот Конфигуратор - демонстрируется, что все "галочки" в правах убраны.
Но в принципе в 7.7 пользователи с их правами - это не защита данных, а всего лишь хранение настроек.

(39) И к скулю - _легко_ решаемо.
44 Sj
 
01.12.11
10:03
1c не нужна. Лезь в dbf или скуль напрямую. Зачем горы городить? И быстрее будет и без проблем, вроде бы.
45 Fish
 
01.12.11
10:03
(33) "Медленно" и "нельзя" - это две большие разницы :)))
(38) Доступ в базу по-любому придется дать, иначе из под кого обработка отработает? :)
Только непонятно, почему нельзя ему сделать в 1С урезанные права и интерфейс с единственной кнопкой "Сделать отчет"
46 Rie
 
01.12.11
10:04
(44) Писанины больше.
47 Sj
 
01.12.11
10:05
Не заморачивайся на олюшке.
48 ЧеловекДуши
 
01.12.11
10:05
(39)Странно, но со скулем куда проще. Начальник и не поймет, что ты дал полный доступ. Да можно и не полный, только повозиться с новым пользователем.
49 Sj
 
01.12.11
10:05
(46) да ты что?
50 Aprobator
 
01.12.11
10:05
(43) представь себе процесс демонстрации всего этого руководству, которое запретило делать доступ к базе )))).
(45) да ладно - доступ к дбф файлу пользователя требует?
51 Aprobator
 
01.12.11
10:06
+(50) я вообще имел ввиду не обработку в данном случае, а тупо макрос из экселя, как вариант.
52 Aprobator
 
01.12.11
10:07
(48) там строка подключения будет немного другая )))
53 ЧеловекДуши
 
01.12.11
10:07
(46)Мне кажется проблема будет не в этом. А когда он будет считывать данные из ДБФ-ок БД и в этот же момент пользователь 1С начнет писать какую либо информацию в эти же таблицы.
54 VBMADD
 
01.12.11
10:07
Обработку я уже написал, она выкладывает нужную инфу в файл spssotr.dbf
Excel получает эту инфу и создает  все нужные отчеты.
Всего то нужно чтобы при старте Excel файл spssotr.dbf обновлялся по этой обработке пусть даже под моим именем и моим паролем в 1с
Блин, братцы, столько слов уже написано из-за...

Кто может дать канву для запуска обработки в Excel?...
55 Rie
 
01.12.11
10:08
(54) То есть (4) ты не читал?
56 Sj
 
01.12.11
10:09
(56) не той дорогой вы пошли, извините. Копай адо. Все остальное не то.
57 Aprobator
 
01.12.11
10:10
(55) человек не знает куда это в экселе пихать. ТС видимо с макросами не работал ни разу.
58 Rie
 
01.12.11
10:10
+(55) А как отнесётся руководство к тому, что твой пароль будет _в открытом виде_ храниться в Excel-файле?
59 VBMADD
 
01.12.11
10:11
(55) Спасибо, читал, только хотел поподробнее...
(56) Дык уже пошлиЮ осталось ещё половину пройти!
60 VBMADD
 
01.12.11
10:12
(58) он хранится в макросе, а туды доступа у пользователя и Руководства НЕТу
61 ЧеловекДуши
 
01.12.11
10:13
(58)Оно об этом не узнает. :)
62 VBMADD
 
01.12.11
10:14
Мне вариант(4) по душе, но разверните поподробней кто знает...
63 Rie
 
01.12.11
10:15
(59)
Set V7 = CreateObject("V77.Application")
V7.Initialize V7.RMTrade,"/d""ТутПутьКБазе"" /nТутИмяПользователя /pТутПароль","NO_SPLASH_SHOW"
V7.ExecuteBatch "ОткрытьФорму("Отчет",,"ТутПутьКТвоейОбработке"")"
64 ЧеловекДуши
 
01.12.11
10:16
(60)По существу ты можешь еще их шокировать, что вся информация в 1С 7.7 хранится в незашифрованном виде.
При этом все пользователи имеют полный доступ к каталогу БД. Иначе 1С не работает.
Так же необязательно запускать 1С, что бы получить нужную и понятную информацию из БД.
Т.к. инфа по полям хранится в ДД файле "ДДС" - для сиквела.
А дальше дело техники и других программных обеспечений, в плоть до адо.
65 Rie
 
01.12.11
10:16
+(63) Только лучше, наверно, не ОткрытьФорму, а ОткрытьФормуМодально

Ну и пользователю большой плакат "Если Excel рассуждает об опасности макросов - не верь!"
66 ЧеловекДуши
 
01.12.11
10:18
(65)Плакат будет к месту :D
Учитывая времени запуска 1С.
67 VBMADD
 
01.12.11
10:19
(63)Сенкс, буду пробовать
(64) А вот это не надо, Руководство должно спать спокойно и платить зряплату исправно!!!
68 Sj
 
01.12.11
10:21
(65) сертификат подключаешь к проекту, а в екселе ставишь уровень безопасности доверять только сертиф. Макросам. Но сама идея запуска 1c из екселя что-то как-то неудобоваримая.
69 Rie
 
01.12.11
10:24
(68) Человек не хочет разговаривать с руководством о проблемах безопасности. А тут как раз вопрос "А почему это Excel макросы без разрешения запускает?" - и длинная беседа о.
70 Aprobator
 
01.12.11
10:27
вот как то не нравится мне ОткрытьФорму при NO_SPLASH_SHOW.
71 VBMADD
 
01.12.11
10:39
'==================================
Sub Отчетик()
'==================================
Dim TekData As Variant
Path = ThisWorkbook.Path & "\"

Set V7 = CreateObject("V77.Application")
V7.Initialize V7.RMTrade, "/d""F:\1Cv77\PRBudg\"" /nЕлена /p", "NO_SPLASH_SHOW"
V7.ExecuteBatch ОткрытьФормуМодально("Отчет", , "C:\Список_Сотрудников_DBF.ert")
ExitSub

Сообщает, что ОткрытьФормуМодально Function not defined
72 Rie
 
01.12.11
10:40
(70) А почему? Впрочем, если не нравится - можно обойтись без третьего параметра, пусть пользователь на заставку полюбуется.
73 Rie
 
01.12.11
10:41
(71) Закавычь параметр ExecuteBatch (внутренние кавычки - удвой).
74 El_Duke
 
гуру
01.12.11
10:46
Пипец просто !!!
Какие нереальные извращения для решения простой задачи.Руководство - мегаидиоты ...
75 VBMADD
 
01.12.11
11:10
Братцы, Всем спасибо, "Rie" особое почтение!!!
Все работает пойду доложу Руководству...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший