0
- 30.05.2012 - 10:44
|
Товарищи, помогите, сил уже нет через эти грабли пробираться. Нужно каждые 10 секунд делать опрос другой базы (по ODBC соединяемся) и если стоят флаги принт - печатать документы. Как блин это сделать? 1С 8.2 Бухгалтерия ПРОФ, Клиент-сервер на Postgre. Я нашёл, что это можно сделать фоновыми задания, регламентными заданиями, ПодключитьОбработкиОжидания, ActiveX-компоненту нашёл, всё выдаёт какие-то ошибки или тупо не работает. | | |
1
- 30.05.2012 - 10:44
| И кстати желательно конфигурацию не трогать, но если никак нельзя - фиг с ней, лишь бы работало. | | |
2
- 30.05.2012 - 11:20
|
я так понимаю развод. например какие ошибки при использовании ПодключитьОбработкиОжидания | | |
3
- 30.05.2012 - 11:22
|
2-angro >Сейчас скажу. Недопустимое значение параметра (параметр номер '1') Запускаю это всё из внешней обработки | | |
4
- 30.05.2012 - 11:23
| Можно вообще как-то зациклить выполнение обработки с паузой 10 секундной? | | |
5
- 30.05.2012 - 11:27
|
:) запусти обработку напиши пока 1=1 цикл полезнаяобработка(); предупреждение("ждём",10) обработкапрерыванияпользователя(); конецЦикла | | |
6
- 30.05.2012 - 11:29
|
5-angro >Ну это как-то жестоко :) И всё-таки есть возможность как-то регламентные задания использовать? | | |
7
- 30.05.2012 - 11:36
| (6) да, всё работает | | |
8
- 30.05.2012 - 11:39
| 2(0) Сделай отдельную базу с одной обработкой. И пусть она проверяет внешний SQL, если что найдет - пусть коннектится к бухии и что-то там нехорошее делает. | | |
9
- 30.05.2012 - 11:40
| 7-angro > А печать на сервере вообще возможна? | | |
10
- 30.05.2012 - 11:50
| х.з. не сталкивался с такой задачей. наверняка как-то можно | | |
11
- 30.05.2012 - 12:02
| 10-angro > Вот именно что никак. Фоновые задания не подходят, регламентное не может печатать, подключитьобработкиожидания нужен глобальный модуль, ActiveX-компонента не работает. Ааааааа | | |
12
- 30.05.2012 - 12:20
| 11-Caballero > Что мешает из клиента запустить приложение на сервере (или любом другом компе)? | | |
13
- 30.05.2012 - 12:22
| 12-VZ >В смысле? | | |
14
- 30.05.2012 - 12:42
|
Поместить на сервере (или другом компе) "Компонента работы с файлами", там же поместить скрипт, который вызывает эту компоненту командной строкой с нужным файлом в параметре, а затем сендкеем заставляет распечатить этот документ на принтере, а затем тем же сендкеем закрывает приложение (F10+END+ENTER) Как активизировать скрипт на чужой машине расскажет Марк Русинович (Mark Russinovich) | | |
15
- 30.05.2012 - 12:45
|
пишется обработка и запускается 1С по шедуллеру с обработкой в командной строке. обработку напишет любой программист 1С. | | |
16
- 30.05.2012 - 13:59
|
Блин, ну как-то всё очень криво, товарищи... 15-Uho >Запуск 1С с внешней обработкой по расписанию винды работает, но она открывается почти полминуты, потом закрывается ещё 10, такую конструкцию каждый раз вытворять для постоянного обновления - проще убиться об стену... Пока "более-менее" стабильно работает только вручную запускаемая обработка с бесконечным циклом и ожиданием (блин, как вспомню, что в 1С нет процедуры паузы...), но она грузит память при каждом вызове и к середине дня уже приходится перегружаться. | | |
17
- 30.05.2012 - 14:02
| так обновление или печать? | | |
18
- 30.05.2012 - 14:05
|
16-Caballero > Цитата:
бесконечный цикл не нужен, память грузит из-за кривых рук. | | |
19
- 30.05.2012 - 14:29
|
17-angro > Печать 18-Uho > Как сделать опрос каждые несколько секунд без цикла? | | |
20
- 30.05.2012 - 14:31
|
19-Caballero > УправляемаяФорма.ПодключитьОбработчикОжидания (ManagedForm.AttachIdleHandler) УправляемаяФорма (ManagedForm) ПодключитьОбработчикОжидания (AttachIdleHandler) Синтаксис: ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>) Параметры: <ИмяПроцедуры> (обязательный) Тип: Строка. Имя процедуры, подключаемой в качестве обработчика ожидания. <Интервал> (обязательный) Тип: Число. Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число). Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина. <Однократно> (необязательный) Тип: Булево. Признак однократного выполнения обработчика ожидания. Истина - указанный обработчик ожидания будет выполнен один раз. Значение по умолчанию: Ложь Описание: Подключает указанную процедуру в качестве обработчика ожидания. Процедура будет вызываться в период ожидания системы каждый раз по истечению указанного интервала времени. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: Вызов обработчика ожидания продолжается пока форма не будет закрыта или пока не будет вызван метод формы ОтключитьОбработчикОжидания. | | |
21
- 30.05.2012 - 14:41
|
20-Uho > В посте 3 писал, что подключитьобработчикожидания не работает у меня. Можно как-то это исправить? Модуль создал новый. Атрибуты глобальный и клиент установлены | | |
22
- 30.05.2012 - 14:43
| 21-Caballero > можно, для этого нужен программист 1С или придется все-таки почитать RTFM | | |
23
- 30.05.2012 - 14:46
|
22-Uho > Ответ в духе технической поддержки 1С :) Так на что обратить внимание-то? Где ошибки может быть? | | |
24
- 30.05.2012 - 15:04
| наверное, в коде | | |
25
- 30.05.2012 - 15:07
|
24-Uho > А как прекратить-то внешнюю обработку, в которой ПодключитьОбработчикОжидания срабатывает? Ctrl-break не срабатывает, пишет невозможно отменить. | | |
26
- 30.05.2012 - 15:10
| отключитьобработкуожидания. кэп | | |
27
- 30.05.2012 - 15:10
|
25-Caballero > опять RTFM УправляемаяФорма (ManagedForm) ОтключитьОбработчикОжидания (DetachIdleHandler) Синтаксис: ОтключитьОбработчикОжидания(<ИмяПроцедуры>) Параметры: <ИмяПроцедуры> (обязательный) Тип: Строка. Имя процедуры, которую необходимо исключить из обработки ожидания. Описание: Отключает ранее подключенную процедуру - обработчик ожидания, подключенный ранее методом формы ПодключитьОбработчикОжидания. Доступность: Тонкий клиент, веб-клиент, толстый клиент | | |
28
- 30.05.2012 - 15:17
| сопсно, если религия позволяет, то можно запустить клиентское приложение на сервере, а в нем ПодключитьОбработчикОжидания(), который будет смотреть на флаги и посылать на печать | | |
29
- 30.05.2012 - 15:17
|
Так и чем не понравилось (14)? "Фонового" клиента 1С (отжирающего ключ, между прочем) запускать не требуется, скрипт можно разместить на любом компе сети рядом с любимым принтером, все компоненты для сборки сего механизма бесплатны, доступны, документированы, пользоваться может любой юзер 1С, находящийся в сети... Покритиковали бы :D | | |
30
- 30.05.2012 - 15:23
|
26-EvG32 > А пользователем-то как прервать? 29-VZ > Так эти файлы же ещё создать нужно | | |
31
- 30.05.2012 - 15:29
| зачем? эта обработка не для пользователя же? если в исключительных случаях - то закрыть окно приложения | | |
32
- 30.05.2012 - 15:33
|
(30)вариантов не мало в базе, которую запускаем на сервере, делаем константу "Печать", при подключении обработчика даем ей значение "Печатать"; в общем, например, интерфейсе делаем кнопку, которая меняет значение константы на "Послать в" , перед определением флагов проверяем значение константы и если нас послали, значит ОтключитьОбработчикОжидания(), закрыть приложение | | |
33
- 30.05.2012 - 15:33
| (31) ну если уж так хочется человеку | | |
34
- 30.05.2012 - 15:34
| зачем такие извраты, если все решается БЕЗ изменения типовой? | | |
35
- 30.05.2012 - 15:37
| поддерживаю сендкейный дух темы ) | | |
36
- 30.05.2012 - 15:46
|
31-Uho > Ок 32-EvG32 >Не, ну это совсем геморно Короче, сейчас работает так. В начале работы шедулером винды запускается 1С с внешней обработкой. Она выполняет нужную процедуру каждые 10 секунд. В конце дня видимо будем её отключать. Вроде неплохо :) Остался один вопрос. Сейчас ПодключитьОбработчикОжидания работает с процедурой из добавленного Общего модуля. Можно как-то всё-таки обойтись без изменения конфигурации, то есть чтоб эта процедура где-то внешне хранилась? Если её тупо вставить в эту обработку, пишет, что она не найдена. | | |
37
- 30.05.2012 - 15:56
| у меня все работает без изменения конфигурации, что я делаю не так? | | |
38
- 30.05.2012 - 15:56
| почему нельзя программно закрывать? | | |
39
- 30.05.2012 - 16:01
|
37-Uho > Можешь скинуть какой-нибудь легкий код? Потому как вроде пишут, что только в глобальном модуле можно процедуры эти вставлять http://it-buh.narod.ru/fmista/v8/v8_...037/476230.htm 38-Uho > Проверять время и закрывать? | |
| Интернет-форум Краснодарского края и Краснодара |