![]() |
![]() |
![]() |
|
v8 как сделать автомат? Ø |
☑ | ||
---|---|---|---|---|
0
MaxS
10.08.05
✎
07:09
|
Запускаем 1С 8.0 в режиме предприятия под логином "Автомат". 8-ка висит вечно в памяти и по какому-то событию загружает из внешнего файла документ, выгружает обратно в файл печатные формы документа.
Как в режиме ожидания события минимально напрягать сервер? |
|||
1
echo
10.08.05
✎
07:12
|
Запускайте COM сессию и не партесь...
|
|||
2
MaxS
10.08.05
✎
08:25
|
(1) да, это был первый вариант, склоняюсь к тому, что так и нужно делать...
но проблема в том, что нужно запускать V8.Application, т.к. в режиме V8.COMConnector не всё возможно сделать. ... отсюда вопрос (0) Что лучше - сотню раз в день подымать V8.Application или один раз поднять 8-ку в режиме предприятия, а потом сотни раз давать команду через V8.COMConnector или каким-то другим способом дать понять 8-ке, что нужно что-то сделать? |
|||
3
echo
10.08.05
✎
09:39
|
(2) А что нельзя сделать в режиме COM соединения?
|
|||
4
barlog
10.08.05
✎
09:41
|
Работать с интерфейсными объектами.
В том числе с табличными документами, что особенно неприятно. |
|||
5
barlog
10.08.05
✎
09:44
|
(2) ИМХО лучше одна сесия, стартует восьмерка сам знаешь как.
А насчет того, как с ней общатся, это от конкретного типа события зависит. |
|||
6
echo
10.08.05
✎
10:17
|
(4) Не могу согласиться. Табличный документ - это в конечном итоге бумажка, которая нужна человеку. Поэтому пусть человек запускает 8.0 и печатает себе свои отчеты. А COM соединение все - таки нужно в первую очередь для изменения состояния ИБ, ИМХО.
|
|||
7
DZIDen
10.08.05
✎
10:42
|
(0)я думаю так :
1.вначале в фоновом режиме запускать и делать обработку ожидания на файл. 2.СОМ соединением менять константу а обработчик ожидания будет проверять ее. надо тестить,но скорее всего 1-ый будет быстрее |
|||
8
Коротков
10.08.05
✎
10:52
|
Я не спец 8-ки, но непонятно, зачем для (7) нужен COM? Если есть обработка, ловящая событие файла.
А я вообще объявил бы таблицу заданий для обработки - типа автор, задание, флаг обработки и пр. И сканировал бы ее на предмет необработанных. Возврат файликом. Заодно будет лог, кто что делал... |
|||
9
echo
10.08.05
✎
10:57
|
(0)Делать нужно так. Где - то у тебя формируется файл с данными. Самое правильное - если это xml документ. Этот файл пишется в определенную директорию на жестком диске. Внешняя прога обрабатывает событие записи нового файла в этом каталоге и открывает COM соединение с целью создать документ на основе данных из xml файла. Документ создается, проводится (если нужно), а данные для печати выгружаются в xml документ, который записывается в определенный каталог. Когда юзеру потребуются печатные формы, он запускает 8.0 и выполняет обработку, которая по данным xml документов печатает твердые копии.
|
|||
10
Коротков
10.08.05
✎
10:57
|
В первой строке читать "нужен COM, если есть обработка, ловящая событие изменения файла?"
|
|||
11
echo
10.08.05
✎
10:59
|
9+ А вообще непонятно, почему нальзя приделать печатную форму прямо к документу...
|
|||
12
echo
10.08.05
✎
11:07
|
(7) << 1.вначале в фоновом режиме запускать и делать обработку ожидания...
~ 1. что значит << в фоновом режиме запускать? 2. запускать в фоновом режиме что? |
|||
13
barlog
10.08.05
✎
11:08
|
2(9) А еще лучше сделать xsl-стиль для этого xml документа, чтоб он сразу его в печатную форму выводил. Тогда вобще никакого 1С не надо:)
А вобще не зная откуда берется файл и куда нужно доставить сохранненные отчеты, все это разговор слепого с глухим. Я всетаки предлагаю один экземпляр V8.Application который запущен во внешнем процессе, отслеживающем события. |
|||
14
echo
10.08.05
✎
11:31
|
(13) Тогда ему нужен отдельный экземпляр компьютера, который никогда не выключается и на котором никто не работает...:)
|
|||
15
barlog
10.08.05
✎
11:34
|
(14)Такие компьютеры принято называть серверами:)
|
|||
16
echo
10.08.05
✎
11:34
|
14+ И все - таки я не могу понять, чем V8.Application лучше windows службы, запущенной на сервере и обрабатываюшей событие FileCreate?
|
|||
17
barlog
10.08.05
✎
11:38
|
(16) Ничем не лучше, экземпляр V8.Application существует внутри этой службы для быстрого доступа к 1С без регулярного тормозного запуска 8-ки.
|
|||
18
echo
10.08.05
✎
11:44
|
(17) Не согласен. Внутри вызывающего процесса как раз создается COM соединение. Поэтому - то оно быстро и работает, так как не требуется выполнять маршалинг через границы процессов. А V8.Application работает в своем процессе...
|
|||
19
barlog
10.08.05
✎
11:48
|
(18)Ну не может COMConnector сохранить печатную форму документа, не может.
|
|||
20
MaxS
10.08.05
✎
11:54
|
вернулся с обеда, а тут такое ;)
(9) необходимость в 1С - это нумерация документов. Пришел excel файл (его формат я изменить не могу), закачался в 1С, присвоился номер счет-фактуры и т.д., создаём в отдельном каталоге excel файлы счет-фактуры и Торг-12. роль 1С на этом заканчивается. ... Желательно, чтобы во время работы автомата, другие пользователи, работающие с этой 1С видели, что документы появляются. т.е. алгоритм "засосать" информацию, вернуть номер фактуры, а потом при запуске 1С создать необходимые документы, не подходит. ... (7) я тоже так думаю, но в том, то и вопрос(0) - как эти постоянные проверки константы или наличия файла отразятся на загрузке сервера? Как, например, работает сканер штрих-кода... вот эту идею бы раскопать - обработка в 1С внешнего события... |
|||
21
MaxS
10.08.05
✎
12:01
|
событие появления файла отслеживать не надо, это реализовано.
макрос Excel из контекста открытого документа запускает 1С... Set Docum = Application.ActiveWorkbook FileFact = Docum.Path & "\" & Docum.name Set V8 = CreateObject("V8.Application") ' тут появился вопрос (0) ;) V8.Connect (ПараметрыЗапускаБазы) Call V8.autofakt(СообщенияОбОшибках, FileFact, ТудаВернутьРезультат) |
|||
22
echo
10.08.05
✎
12:07
|
(20)
1. Excel может сохранять листы в формате xml. 2. Пусть даже будет excel. Пишешь win службу на C#, которая отслеживает события записи файлов в отдельный каталог. Как только файлик создаться, твоя служба открывает COM соединение и на основании данных, содержащихся в файле excel, создает документ в 1С. После этого win служба берет номер документа и создает excel файлы счет-фактуры и Торг-12. COM соединение закрывается. |
|||
23
barlog
10.08.05
✎
12:18
|
Не парься, оставь как есть.
Твои юзера не смогут так быстро документы открывать. |
|||
24
MaxS
10.08.05
✎
12:25
|
(22) 2. там гора параметров... в шапке - контрагенты, банк, договор взаиморасчетов, в теле - номенклатура с кучей реквизитов, тысячи позиций...
В самой 1С в интерактивном режиме, есть форма для загрузки документа из файла. Логично было бы в автомате использовать отлаженный механизм. Это облегчает поддержку ПО, т.к. алгоритм загрузки один для автомата и для ручной загрузки. ... формировать печатные формы это тоже морока... в 1С-е это всё уже есть, просто сохранил печатную форму документа в файл и всё :-\ ... если всё делать в режиме COMConnector сходу и не вспомню какие есть ограничения. можно всё делать на стороне макроса, а можно и на стороне 1С... COMConnector не умеет в качестве параметра получить из VBA массив, Application умеет, но тут тоже нарвался на ошибку с памятью. В 1С эту ошибку зафиксировали, ответа пока нет. ... пока стою на перепутье - пытаться все сделать через COMConnector или как (0) |
|||
25
MaxS
10.08.05
✎
12:31
|
(23) а юзера и не будут открывать документы. просто нужна уникальность номеров. параллельно с юзерами, автомат "колбасит" документы днём и ночью...
... вот ещё что вспомнил. Windows может выставлять какие-то то ли флаги, то ли семафоры, не помню. 1С научить видеть их можно? мне бы научить 1С работать не в цикле проверки, а в режиме прерывания. Просыпаться когда нужно... |
|||
26
echo
10.08.05
✎
12:38
|
(25) Семафоры нужны для межпроцессорного и межпоточного взаимодействия...
|
|||
27
MaxS
10.08.05
✎
13:03
|
(9) бывает, что база 1С, место формирования входящего файла и место печати выходных файлов, физически удалены друг от друга, прямой связи нет, только файлами и можно обмениваться. Поэтому основная роль 1С - это завести уникальный номер документа...
Т.е. там, где документ печатается, нецелесообразно устанавливать 1С... |
|||
28
echo
10.08.05
✎
13:14
|
(27)Обмен файлами - это все не то. Напиши web службу, а на филиалы win клиентов этой службы. Лично я по такой технологии сейчас работаю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |