|
|
|
Запуск обработки 1с из другой программы | ☑ | ||
|---|---|---|---|---|
|
0
axel123
08.06.09
✎
14:56
|
Добрый день))
Проблема: есть программа, которая делает свои дела и по завершению определенных операций хотелось бы автоматически и сразу запустить обработку из 1с(прогармамма самописная и может дорабатываться) Возможно ли такое? если да, то как Поиском пользовался не нашел ответа Нашел про 1с++, но не понял как это реализовать Подскажите, если знаете, пожалуйста) Заранее спасибо) |
|||
|
1
gr13
08.06.09
✎
14:58
|
запуск от пользователя и запуск обработки в при запуске
|
|||
|
2
Guk
08.06.09
✎
14:59
|
(0) А допустим Ворд из той программы ты можешь запустить? Если да, то и с 1С так же...
|
|||
|
3
YF
08.06.09
✎
15:00
|
(2) Тока кнопочку сформировать не нажать :-)
|
|||
|
4
axel123
08.06.09
✎
15:02
|
1 в принципе подходит))что-то ступил и сам не додумался)))
А есть ли средства чтоб в работающей 1с запустить? |
|||
|
5
Side
08.06.09
✎
15:03
|
Зачем в работающей програмно запускать?
|
|||
|
6
axel123
08.06.09
✎
15:06
|
(5) для данной задачи не обязательно, просто искал способ в работающей запустить - не нашел,
в 1с есть процедура ОбработкаВнешнегоСобытия() или что-то такое, через неё можно что-то сделать |
|||
|
7
axel123
08.06.09
✎
15:07
|
(6) это был вопрос))
|
|||
|
8
Иду
08.06.09
✎
15:08
|
(7) не события а ОбработкаОжидания(...)
возводишь файл-флаг (например) и обрабатываешь "событие" из глобального модуля. |
|||
|
9
axel123
08.06.09
✎
15:09
|
(8) не, другая, через которую со сканерами работают
|
|||
|
10
axel123
08.06.09
✎
15:11
|
я поспрашивал, сказали что она только на сигналы с портов реагирует, так ли это?
|
|||
|
11
Иду
08.06.09
✎
15:14
|
(9) что другая (это вопрос) тебе русским по белому = не осилить?
в глобальном модуле размещаешь процедуру ОбработкаОжидания(ИмяДругойПроцедурыВКавычках,ЦифраИнтервалаОжидания) и нехай сканит, а в ИмяДругойПроцедурыВКавычках вызывай свои проверки на наличие чего-то где-то, и далее отрабатывай любой отчет-обработку с параметрами/без ... да хоть об-стену. |
|||
|
12
ДенисЧ
08.06.09
✎
15:15
|
Можно ещё извращаться через FindWindow и SendMessage (WM_KEYDOWN...)
|
|||
|
13
axel123
08.06.09
✎
15:18
|
(11) если правильно понял, то это 1с просматривает что-то, где-то
а надо, чтоб что-то само 1с сказало, что пора |
|||
|
14
axel123
08.06.09
✎
15:19
|
или не так понял?
|
|||
|
15
Иду
08.06.09
✎
15:23
|
1. есть программа, которая делает свои дела и по завершению определенных операций что в конце еще делает, кроме истины...
2. Результатом операции есть/могутбыть (к примеру) создание файла/ов на диске. 3. Запущенная 1С из обработки ожидания, периодически, запускает процедуру проверки наличия Если ФС.СуществуетФайл...тогда, открыть обработку/выполнить иные действия, файл переместить/переименовать/хез что еще то не понятно? |
|||
|
16
mrkorn
08.06.09
✎
15:26
|
если все штатно то
заводится пользователь у которого при НачалеРаботыСистемы() вызывается обработка с нужными параметрами в ПриОткрытии() проверяешь параметры и выполняешь, что нужно |
|||
|
17
axel123
08.06.09
✎
15:27
|
(15) согласен, такой вариант то же работает
но интересно, можно ли чтоб не 1с смотрела периодически,а ей сказали и она давай шуршать виньтиками))) спасибо за помощь, но если можно просветите ещё)))) |
|||
|
18
axel123
08.06.09
✎
15:28
|
(16)Ддя решения данной задачи подходят решения (16)(8)(1)
не спорю)) |
|||
|
19
ДенисЧ
08.06.09
✎
15:32
|
(17) Можешь ещё покурить на предмет внешних компонент и ОбработкаВнешнегоСобытия()...
|
|||
|
20
axel123
08.06.09
✎
15:35
|
(17) в этом что-то есть, спасибо) буду изучать)
|
|||
|
21
dk
08.06.09
✎
15:38
|
так себе варианты
самый рульный вариант не предложили - запустить 1с по OLE и там запустить отчет |
|||
|
22
dk
08.06.09
✎
15:40
|
хотя если надо часто запускать, то так себе вариант по OLE
|
|||
|
23
axel123
08.06.09
✎
15:40
|
(21) как запустить 1с по OLE ?
|
|||
|
24
axel123
08.06.09
✎
15:43
|
(21) те в качестве оле объекта будет 1с?
|
|||
|
25
dk
08.06.09
✎
15:43
|
|
|||
|
26
axel123
08.06.09
✎
15:46
|
(25) Красиво)))
|
|||
|
27
Иду
08.06.09
✎
16:04
|
красиво, только работать не будет.
|
|||
|
28
dk
08.06.09
✎
16:15
|
(27) почему у меня работает? :)
|
|||
|
29
dk
08.06.09
✎
16:15
|
что я делаю не так? :)
|
|||
|
30
mrkorn
08.06.09
✎
16:45
|
(29) ты без Formex'а попробуй ))
|
|||
|
31
Torquader
08.06.09
✎
16:47
|
Кстати, ещё можно не по OLE, а через DDE открывать форму в уже запущенной 1С.
Например, макрос для Excel: Sub Test() Dim chNum As Integer Dim Res As Variant chNum = Application.DDEInitiate(app:="1Cv7", topic:="") ' вылетает окошко с выбором 1С, к которой мы ходим подключаться Res = Application.DDERequest("OpenFormModal(""Отчет"",,""C:\ПутьКОбработке\Обработка.ert"");") ' после этого в 1С откроется модально окно внешней обработки в котором можно что-то выполнить Application.DDETerminate (chNum) ' не забываем завершить сеанс End Sub |
|||
|
32
Torquader
08.06.09
✎
16:49
|
(25) прекрасно работает и без всякого Formex-а, только надо помнить, что OpenFormModal вернёт управление только после закрытия формы (в данном случае только в том случае, если в процедуре ПриОткрытии установлен нулевой статус возврата).
Также нет смысла анализировать полученный Context, так как при закрытии формы он будет разрушен (конечно, если использовать OpenForm, то всё должно получиться) |
|||
|
33
dk
08.06.09
✎
16:50
|
(30) А кто сказал, что у меня есть формекс?
|
|||
|
34
GrayT
08.06.09
✎
17:31
|
При чем тут ФормЕХ - и без него все работает...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |