|
Запуск внешней обработки под опр. пользователем | ☑ | ||
|---|---|---|---|---|
|
0
VVVV
30.10.06
✎
16:05
|
Без изменения кода конфигурации - как??? Возможно такое?
|
|||
|
1
КонецЦикла
30.10.06
✎
16:07
|
Параметром передавай туда что хочешь
|
|||
|
2
zxcvb
30.10.06
✎
16:08
|
Пользователем чего: 1С; Венды...?
|
|||
|
3
Shaman100M
30.10.06
✎
16:08
|
т.е. запустить 1с под пользователем, и автоматом выполнить обработку?
|
|||
|
4
GrayT
30.10.06
✎
16:09
|
телепаты?
|
|||
|
5
Omega
30.10.06
✎
16:14
|
(0) да.
|
|||
|
6
VVVV
30.10.06
✎
16:18
|
Ну, началось. Маловато инфы дал, конечно. Ну, к примеру, я из батника запускаю 1С под логином+паролем 1С-ным, а ПриНачалеРАботыСистемы() пишу
Если глПользователь = "ВасяПупкин" Тогда ...... КонецЕсли; А из батника можно указать и обработку, которую запустить этим юзером? |
|||
|
7
smaharbA
30.10.06
✎
16:22
|
(6) для ХР/2003 можно
|
|||
|
8
VVVV
30.10.06
✎
16:23
|
(7) дык народ вон как накинулся, видать - куча способов есть.
|
|||
|
9
smaharbA
30.10.06
✎
16:25
|
+(7) а впринципе для любой системы... и все штатно...
|
|||
|
10
VVVV
30.10.06
✎
16:26
|
(9) ну? не томи :)
|
|||
|
11
smaharbA
30.10.06
✎
16:27
|
md %temp%\Обработка.ert&&1cv7.exe /t%temp%\Обработка.ert
/// КаталогВременныхФайлов() ... Ну если путь до внешних обработок известен... |
|||
|
12
VVVV
30.10.06
✎
16:28
|
(11) Ни фига в написанном не понял, ты уж, плз, с инструкцией для особо одаренных 1С-ников :(
|
|||
|
13
smaharbA
30.10.06
✎
16:30
|
md %temp%\Обработка.ert
ТутаПутьк1СПрог\1cv7.exe /t%temp%\Обработка.ert ... в глобальнике смотрим КаталогВременныхФайлов() и сконца до последнего слеша определяем имя обработки... |
|||
|
14
VVVV
30.10.06
✎
16:31
|
Не пойдет! Не меняя код ГМ!!! - условие!!!
|
|||
|
15
zenik
30.10.06
✎
16:34
|
Мало ли, что там в ГМ уже есть. Может там реализован процесс запуска обработок ;)
|
|||
|
16
smaharbA
30.10.06
✎
16:40
|
еще так
set ert=c:\extforms\обработка1.ert;c:\extforms\обработка2.ert 1cv7.exe . в 1С КомандаСистемы("echo %ert% > "+КаталогВременныхФайлов()+"какие_обработки.txt") Текст.Открыть(КаталогВременныхФайлов()+"какие_обработки.txt") |
|||
|
17
smaharbA
30.10.06
✎
16:41
|
(14) Тоже можна, но нужно табло для этого усера разрешить
|
|||
|
18
VVVV
30.10.06
✎
16:48
|
(17) ОК, тогда конкретный пример: http://www.infostart.ru/projects/?id=560&ref=1791
как эту обработку запускать без изменения кода и чтоб задания выполняла? |
|||
|
19
Gepard
30.10.06
✎
16:49
|
||||
|
20
VVVV
30.10.06
✎
16:57
|
(19) Ты бы выложил на инфостарт, к примеру, рассказал - для чего это нужно и где ты сам его применяешь. Тогда народ и потянется...
|
|||
|
21
VVVV
30.10.06
✎
17:06
|
???
|
|||
|
22
Gepard
30.10.06
✎
17:09
|
v7: Автоматический оператор (Групповая обработка отчетов конфигуратором) - здесь все есть
Может нажимать клавиши Запускать программы Можно автоматизировать все, что имеет горячие клавиши |
|||
|
23
smaharbA
30.10.06
✎
17:21
|
(18) 1cv7.cfg + реестр
|
|||
|
24
VVVV
30.10.06
✎
17:37
|
(23) ты читал, что она пишет? в ефд чего-то написать и все. Ни фига не понимаю.
|
|||
|
25
Ёпрст
гуру
30.10.06
✎
17:39
|
(24) Чего там непонятного то в (18) ? Обычный скрипт для запуска ....
|
|||
|
26
VVVV
30.10.06
✎
17:44
|
значит, я - тупой. Как запустить 1С - знаю. Как 1С запустит эту обработку, если я ее нигде не указал для запуска - не знаю. По запаху, что ли, догадается? Ну, положу я ее в ExtForms? Обработка сама оттуда запустится???
|
|||
|
27
smaharbA
30.10.06
✎
17:47
|
(24) Я вообще не знаю, что такое в ссылке (18), глянул, а запускать лениво...
|
|||
|
28
VVVV
30.10.06
✎
17:47
|
а ты просто прикинь...
|
|||
|
29
Ёпрст
гуру
30.10.06
✎
17:47
|
(26) Дык посмотреть скрип запуска самой "золушки" из обработки в (18) религия не позволяет?
|
|||
|
30
smaharbA
30.10.06
✎
17:49
|
(26) Короче, тупой вариант. Открываешь под этим "ВасяПупкин" интерактивно, открываешь табло, в нем пишешь ОткрытьФорму("Отчет",,"c:\ert\обработка.ert")
выполнится обработка, если ее нет, то ошибку даст, и фих на нее. Закрываешь 1С, ложишь эту c:\ert\обработка.ert и запускаешь этой запускалкой или батником, Все... |
|||
|
31
VVVV
30.10.06
✎
17:51
|
(29)чтобы там ни было написано (я смотрел, кстати) - как запустить обработку силой мысли???
|
|||
|
32
smaharbA
30.10.06
✎
17:52
|
(31) см (30) там какраз "силой мысли"
|
|||
|
33
VVVV
30.10.06
✎
17:53
|
Но это - немного не то, что авторша пишет. Не пойму, как она ее запускает :( А с таблом - понятно, пока не сотрешь - будет крутится.
|
|||
|
34
VVVV
30.10.06
✎
17:54
|
ладно, я домой - чуть позже подниму ветку.
|
|||
|
35
smaharbA
30.10.06
✎
18:12
|
Так пакетник -
set progpath=\\1CSERVER\1Cv77.ADM\BIN.21\1cv7s2.exe set base=\\1CSERVER\1c-conf\Karat_Mebel set user=Гинзбург1 set pass=пароль copy 1cv7start.cfg %base%\users\Гинзбург1\1cv7.cfg regedit /s табло.reg "%progpath%" enterprise /d"%base%" /n%user% /p%pass% ... 1cv7start.cfg ... { {"App", {"UseFormulCalc"}, {"NumDelimsOff"}, {"TimePresentDec"}, {"CCYBefore"}, {"DateFormat"}, {"ObjDeleteMode"}, {"ObjOpenMode"}, {"MidNightMode"}, {"LogRefreshTime"}, {"LogMoveToEnd"}, {"LogAskFilter"}, {"LogTwoLines"}, {"LogOneWindow"}, {"LogTimeSel"}, {"LogDays"}, {"LogDateFrom"}, {"LogDateTo"}, {"UsrMonRefreshTime"}}, {"DataBase", {"RefreshTime","20"}, {"LockWaitTime","1"}}, {"Modules", {"ModuleCompile"}}, {"ASSISTANT", {"AssistLang"}}, {"Basic", {"Journals", {"RangeVarBeg"}, {"RangeVarEnd"}, {"RangeBeg"}, {"RangeEnd"}, {"AvtoScanSelectValue"}, {"OneChildsDocsJournal"}, {"ScanValueAskCount"}, {"DocSelHist","{}"}, {"OpenJournalFromBottom"}, {"SetPosToNewDoc"}}, {"Documents", {"NewNotAskTime"}, {"NewAfterAP"}, {"NewCloseInStream"}, {"NewSetCurTime"}}, {"Watch", {"Content","?ЄъЁ?Є№?юЁьє(""?ЄўхЄ"",,""\\1CSERVER\1c-conf\Karat_Mebel\ExtForms\?ряш°хь?хёёш?.ert"") "}}, {"Subconto", {"SubcListsParameters"}, {"ScanValueAskCountSubc"}, {"AvtoScanSelectValueSubc"}, {"SbCntSelHist","{}"}, {"InParentSelectValueSubc"}}, {"Account", {"AccListsParameters"}, {"DefAccCodeMask"}, {"AccCodeMasks"}, {"UsePlanMask"}, {"AccAskTime"}, {"BrSearchByOrder"}, {"CorrectEntry"}}, {"UserProfile", {"UserValuesProfile"}}}, {"Salary", {"CJ", {"CJMode"}, {"CJDepth"}, {"CJPeriods"}, {"AvtoScanSelectValue"}, {"ScanValueAskCount"}, {"CJListParams"}}, {"Date", {"CCYBefore"}}}, {"Account", {"Account", {"RangeBeg"}, {"RangeEnd"}, {"Plan"}, {"RangeType"}, {"CheckBYear"}, {"CheckBQuart"}, {"CheckBMonth"}, {"QuartYear"}, {"Quart"}, {"MonthYear"}, {"Month"}, {"IntrvBeg"}, {"IntrvEnd"}, {"IntrvSingle"}, {"CheckProv"}, {"AccountWatch"}, {"CalcKindOperSum"}, {"CurrencySum"}, {"GetFromMD"}, {"AutoFormatProvList"}, {"AutoNewEntry"}, {"OperCopyDate"}, {"OperCopySum"}, {"OperCopyHead"}, {"OperCopyEntrys"}, {"CalcProvSumByPrice"}, {"CalcProvSumByRate"}, {"OpenDocByOper"}, {"AutoNewCopyEntry"}, {"OperSelHist","{}"}, {"ProvSelHist","{}"}, {"HidePrompt"}}}} ... табло.reg ... REGEDIT4 [-HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\_ Карат-Е: Мебель (Производство)\V7\Гинзбург1\ToolbarSystem\ToolbarPlace-Bar4] [HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\_ Карат-Е: Мебель (Производство)\V7\Гинзбург1\ToolbarSystem\ToolbarPlace-Bar4] "BarID"=dword:000000c3 "XPos"=dword:00000357 "YPos"=dword:00000005 "Docking"=dword:00000001 "MRUDockID"=dword:00000000 "MRUDockLeftPos"=dword:00000357 "MRUDockTopPos"=dword:00000005 "MRUDockRightPos"=dword:00000401 "MRUDockBottomPos"=dword:0000009b "MRUFloatStyle"=dword:00000004 "MRUFloatXPos"=dword:80000000 "MRUFloatYPos"=dword:000002e0 "Style"=dword:00008f94 "ExStyle"=dword:00000f31 "PrevFloating"=dword:00000000 "MDIChild"=dword:00000000 "PctWidth"="166994" "MRUFloatCX"=dword:0000012c "MRUFloatCY"=dword:000000b4 "MRUHorzDockCX"=dword:000000aa "MRUHorzDockCY"=dword:00000096 "MRUVertDockCX"=dword:0000012c "MRUVertDockCY"=dword:000000b4 "MRUDockingState"=dword:00000000 "DockingStyle"=dword:0000f000 "TypeID"=dword:00000000 /// Так пойдет ? Универсальность можно самому доделать...(счас лениво) |
|||
|
36
VVVV
31.10.06
✎
10:17
|
ужас... но в той разработке - уверен - не эта метода использовалась.
|
|||
|
37
Ёпрст2
31.10.06
✎
10:36
|
(36) Тебе код обработки самому чтоли влом посмотреть?....
|
|||
|
38
Эрнст
31.10.06
✎
11:20
|
имя обработки передаем скрипту как параметр командной строки
set wshShell = wScript.createObject("wScript.shell") wshShell.run """C:\V7\bin\1cv7s.exe"" enterprise /d""C:\MyBase\"" /nПупкин /p123" wScript.sleep 120000 'подождем пока загрузится (2 минуты) wshShell.appActivate "1С:Предприятие" wshShell.sendKeys "^(o)" wshShell.sendKeys wScript.arguments.unnamed.item(0) wshShell.sendKeys "~" |
|||
|
39
VVVV
31.10.06
✎
11:43
|
(38)как его передать?
(37) не лень, смотрел не раз, вот он: Процедура ПриОткрытии(ФлагВосстановленияНастройки) автозапуск = 0; Если ПустоеЗначение(ФлагВосстановленияНастройки) = 1 Тогда Сообщить("Рекомендуем задать Автоматическое сохранение настройки! Действие> Сохранить Настройку> Сохранять автоматически и Использовать пир открытии"); Время ="00:01"; КогдаВыполнить =1; Отменить = 1; КонецЕсли; КонтрольВремени(); UserName1 = ИмяПользователя(); Если ПустоеЗначение(UserPassword) = 1 Тогда сообщить("Введите пароль пользователя """+UserName1+"""","!"); КонецЕсли; Если ФС.СуществуетФайл("c:\recommend") = 0 Тогда ФС.СоздатьКаталог("c:\recommend"); КонецЕсли; Если ФС.СуществуетФайл("c:\recommend\Rec_zolushka.bat")= 0 Тогда флКоманды=0; КонецЕсли; Если ПустоеЗначение(filezip) = 1 Тогда filezip = "c:\recommend\1c.zip"; КонецЕсли; заполнить(); // exe ********************************************** ФС.УстТекКаталог(КаталогПрограммы()); exe = ФС.НайтиПервыйФайл("1CV*.exe"); ТМП = ВосстановитьЗначение("ФрмОтчет") ; Если ПустоеЗначение(ТМП)=0 Тогда форма.ФрмОтчет.заголовок(форма.ФрмОтчет.заголовок()+ РазделительСтрок+ТМП); КонецЕсли; Если ВРег(Форма.Параметр) = "ВЫПОЛНИТЬ" Тогда // автозапуск автозапуск = 1; форма.ФрмОтчет.заголовок(""); Выполнить(); Если (ПустоеЗначение(форма.ФрмОтчет.заголовок()) = 0) и (ПустоеЗначение(email) = 0) Тогда Отправить(); иначе ЗаписьЖурналаРегистрации("Золушка письмо не отправлять ") ; КонецЕсли; Форма.закрыть(); КонецЕсли; КонецПроцедуры |
|||
|
40
VVVV
31.10.06
✎
11:44
|
Порядок работы:
---------------------- 1. Включите режим Автоматическое сохранение настройки! Действие> Сохранить Настройку> Сохранять автоматически и Использовать пир открытии 2. Введите пароль 3. Укажите галочками задания на выполнение. 4. Выберите режим выполнения заданий: Немедленно, Сегодня ночью или Каждую ночь 5. Надмите Выполнить или OK Для продвинутых пользователей есть возможность подключения дополнительных внешних обработок. Для подключения дополнительных заданий выполненых в виде внешних обработок необходимо в .efd файл этой обработки добавить строку: Объект= Zolushka В саму обработку, в процедуру ПриОткрытии() добавить код: Если (ВРег(Форма.Параметр)="ВЫПОЛНИТЬ") Тогда Сформировать(); // основная процедура выполнения обработки Форма.закрыть(); КонецЕсли; |
|||
|
41
smaharbA
31.10.06
✎
11:45
|
(38) Этоже дурдом !
(0) просче запускай по ОЛЕ и делай executebatch |
|||
|
42
VVVV
31.10.06
✎
11:48
|
(41) в (38) меньше кода, чем у тебя.
Еще повторю вопрос: как исходя из инструкции в (40) еженочно запускать эту обработку? НЕ ПРАВЯ КОД В ГМ, как это задумала авторша? |
|||
|
43
Эрнст
31.10.06
✎
11:48
|
(39) wscript myequipt.ert
|
|||
|
44
Ёпрст2
31.10.06
✎
11:53
|
(42) Ну дык и смотри Rec_zolushka.vbs ... а как он сделан, смотри сдесь :
ЗаписатьVBS() ... |
|||
|
45
smaharbA
31.10.06
✎
11:53
|
Ладно, жмакайте дальше кнопки...
2 железных варианта дал, для запуска внешней обработки, нет - "не кошерно" |
|||
|
46
VVVV
31.10.06
✎
12:00
|
(45) я хочу понять задумку автора, не обижайся
(44) а как начнет выполнять код обработки вообще? в свете (40)??? Вот чего не понимаю - как сама обработка запустится??? Процедура ЗаписатьVBS() Текст = СоздатьОбъект("Текст"); Если ФС.СуществуетФайл("c:\recommend\Rec_zolushka.vbs")= 1 Тогда ФС.УдалитьФайл("c:\recommend\Rec_zolushka.vbs"); КонецЕсли; //ПапкаИБ = КаталогИБ(); Текст.ДобавитьСтроку("Set v7 = CreateObject(""V1CEnterprise.Application"")"); Текст.ДобавитьСтроку("On Error Resume Next"); Текст.ДобавитьСтроку("If v7.Initialize(v7.RMTrade, ""/d"""""+КаталогИБ()+""""" /n"+UserName1+" /p"+UserPassword+""", ""NO_SPLASH_SHOW"") Then"); Текст.ДобавитьСтроку("v7.OpenForm ""Отчет"", ""ВЫПОЛНИТЬ"","""+ КаталогИБ()+"ExtForms\Rec_zolushka.ert"""); Текст.ДобавитьСтроку("Else"); Текст.ДобавитьСтроку("Set v7 = Nothing"); Текст.ДобавитьСтроку("set WshShell = CreateObject(""WScript.Shell"")"); Текст.ДобавитьСтроку("wshShell.run ""cmd /c del """""+КаталогИБ()+"*.cdx /Q"""""""); Текст.ДобавитьСтроку("Set v7 = CreateObject(""V1CEnterprise.Application"")"); Текст.ДобавитьСтроку(" If v7.Initialize(v7.RMTrade, ""/m /d"""""+КаталогИБ()+""""" /n"+UserName1+" /p"+UserPassword+""", ""NO_SPLASH_SHOW"") Then"); Текст.ДобавитьСтроку(" v7.OpenForm ""Отчет"", ""ВЫПОЛНИТЬ"","""+ КаталогИБ()+"ExtForms\Rec_zolushka.ert"""); Текст.ДобавитьСтроку(" Else"); Текст.ДобавитьСтроку( "MsgBox ""Надо было индексировать базу"" ,4096+16, ""Золушка"""); Текст.ДобавитьСтроку(" End If"); //Текст.ДобавитьСтроку("res = v7.EvalExpr(""ОткрытьФорму(""""Отчет#"""",""""ВЫПОЛНИТЬ"""",КаталогИБ()+""""ExtForms\Rec_zolushka.ert"""")"")"); Текст.ДобавитьСтроку("End If"); Текст.ДобавитьСтроку("Set v7 = Nothing"); Текст.ДобавитьСтроку("set wshShell = wScript.createObject(""wScript.shell"")"); Текст.ДобавитьСтроку("wshShell.run """""""+КаталогПрограммы() + exe +""""" config /d"""""+КаталогИБ()+""""" /n"+UserName1+" /p"+UserPassword+" /@c:\recommend\Rec_zolushka1"""); Если флКоманды = 1 Тогда Текст.ДобавитьСтроку("wshShell.run ""c:\recommend\Rec_zolushka.bat"""); КонецЕсли; Текст.Записать("c:\recommend\Rec_zolushka.vbs"); КонецПроцедуры что она тут пишет? я вбс не знаю ни фига |
|||
|
47
Ёпрст2
31.10.06
✎
12:09
|
(46) Ну чего тут непонятного то? запущается 1с-ка и открывается форма обработки под конкретным юзверем и паролем, и в открываемую форму ей передается команда "ВЫПОЛНИТЬ" ... в ПриОткрытии() у обработки прописаны действия, если передана сей радостная команда ....
|
|||
|
48
VVVV
31.10.06
✎
12:12
|
(47) ну тупой я, тупой - <<и открывается форма обработки под конкретным юзверем и паролем>> где она открывается? Точнее - где команда на ее открытие? В Вбс?
|
|||
|
49
VVVV
31.10.06
✎
12:17
|
ага, вот теперь понятно, ПриЗакрытии() создается скрипт, который запускается на выполнение, он наверное, в шедуллер записывает задание?
|
|||
|
50
Ёпрст2
31.10.06
✎
12:18
|
Создай файлик, дай ему расширение vbs, внутрь положи это
Set v7 = CreateObject("V1CEnterprise.Application") On Error Resume Next If v7.Initialize(v7.RMTrade, "/d""ПутьДоКаталогаСБазой"" /nПользователь /pПароль", "NO_SPLASH_SHOW") Then v7.OpenForm "Отчет", "ВЫПОЛНИТЬ","ПолныйПутьДоОбработки" End If Где,ПутьДоКаталогаСБазой - Например, D:\Base\TestBase\ Пользователь,Пароль ...сам понимаешь что ПолныйПутьДоОбработки - Например, D:\Base\TestBase\ExtForms\test.ert В ПриОткрытии() у test.ert напиши Предупреждение("Урраа!!! "+Форма.Параметр); ..... Запущай, радуйся. |
|||
|
51
VVVV
31.10.06
✎
12:20
|
(50) Спасибо, понятно теперь - охота была разобраться с тем, что автор напридумывал - может революционная идея? :)
Процедура ПриЗакрытии() Если автозапуск = 0 Тогда Если (Отменить = 1) И (КогдаВыполнить <> 1) Тогда ОтменитьЗадания1(); КонецЕсли; Пауза(1000); Если КогдаВыполнить = 2 Тогда ЗаписатьVBS(); ЗапуститьПриложение("AT "+время+" ""c:\recommend\Rec_zolushka.vbs"""); ИначеЕсли КогдаВыполнить = 3 Тогда ЗаписатьVBS(); ЗапуститьПриложение("AT "+время+" /interactive /every:Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday ""c:/recommend/Rec_zolushka.vbs"""); КонецЕсли; КонецЕсли; КонецПроцедуры |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |