Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 02:44

Запуск процедур в фоновом режиме

Автор Shkerin, 15 мар 2011, 21:35

0 Пользователей и 1 гость просматривают эту тему.

Shkerin

Подскажите, реализован ли запуск процедур в фоновом режиме. Если нет, существует какой-либо подобный механизм? (1С v8.1)
Боевая задача - вызов дополнительной процедуры в ОперативномПроведении() без остановки последней.  :xfbnsdfb:

Klyacksa

так ли нужно делать именно фоновым заданием? Может, достаточно будет выполнять некую регламентную задачу с определенной периодичностью (раз в 5 мин, в день, в год, только по пн, как угодно)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Shkerin

регламентная задача не подходит, вызывать процедуру необходимо только в процессе проведения документа

cska-fanat-kz

Для чего нужна дополнительная процедура? Что она будет делать?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Shkerin

процедура создает внешний текстовый документ только при проведении документов увольнения, приема(и др.) с выбором необходимой информации.

cska-fanat-kz

И почему создание файла нельзя параллельно производить в ОбработкеПроведения?

Выбрали данные для проведения
Записали данные в регистры
По ходу дела записали данные в файл

В чем сложность?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

На сколько я понимаю, автор считает, что файл долго создается и не хочет, чтобы на это время тормозилась работа ОбработкиПроведения.

Тут есть несколько выходов:
1. Проверяем, что же у нас так тормозит формирование файла. Вполне возможно, что можно это создание оптимизировать и фоновое выполнение не понадобится.
2. В ОбработкеПроведения в нужном месте запускаем фоновую задачу (копать в сторону Регламентных задач. Не проверяла, но скорее всего, она пойдет выполняться параллельно с основной задачей). Не оч хороший вариант, потому как надо продумать и перепроверить, чтобы одновременный запуск (если одновременно два менеджера проводят документ) не привел к колизиям.
3. Создаем план обмена, регистрируем в нем изменения - наши проведенные документы. Делаем регламентную задачу, которая выбирает все вновь созданные доки, и формирует по ним файлы. Думаю, вполне достаточно будет запускать ее раз в сутки (можно два раза в сутки). Наверняка файлы нужны не прямо сразу.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Shkerin

Цитата: cska-fanat-kz от 16 мар 2011, 06:52
И почему создание файла нельзя параллельно производить в ОбработкеПроведения?
Процедура находиться в общем модуле и вызывается из разных мест.

Цитировать
Выбрали данные для проведения
Записали данные в регистры
По ходу дела записали данные в файл
Что значит "по ходу дела" -  сразу записать выбранные данные в файл!? У меня так и реализовано, только с помощью отдельной процедуры.

Klyacksa

ЦитироватьПроцедура находиться в общем модуле и вызывается из разных мест.
... У меня так и реализовано, только с помощью отдельной процедуры.
Эм... переоценила подход автора... мой пост, видимо, пошел как об стенку горохом...
разницы никакой - отдельной процедурой или не отдельной.

Еще раз вопрос, теперь в лоб:
почему не устраивает формирование файла при выполнении обработки проведения? Зачем нужно фоновое выполнение?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Shkerin

Цитата: Klyacksa от 16 мар 2011, 09:44
На сколько я понимаю, автор считает, что файл долго создается и не хочет, чтобы на это время тормозилась работа ОбработкиПроведения.

Тут есть несколько выходов:
1. Проверяем, что же у нас так тормозит формирование файла. Вполне возможно, что можно это создание оптимизировать и фоновое выполнение не понадобится.
2. В ОбработкеПроведения в нужном месте запускаем фоновую задачу (копать в сторону Регламентных задач. Не проверяла, но скорее всего, она пойдет выполняться параллельно с основной задачей). Не оч хороший вариант, потому как надо продумать и перепроверить, чтобы одновременный запуск (если одновременно два менеджера проводят документ) не привел к колизиям.
3. Создаем план обмена, регистрируем в нем изменения - наши проведенные документы. Делаем регламентную задачу, которая выбирает все вновь созданные доки, и формирует по ним файлы. Думаю, вполне достаточно будет запускать ее раз в сутки (можно два раза в сутки). Наверняка файлы нужны не прямо сразу.

Klyacksa, Вы просто на высоте!
Выборка данных небольшая, поэтому ощутимых тормозов нет. Но это не значит, что нужно перегружать процедуру проведения дополнительным кодом, если по логике можно запустить фоновую задачу и вернуться к пользователю.

По п.2 раскопал в книге "1С 8.1. Простые примеры разработки" пример фоновой задачи и задался тем же вопросом - коллизией.
п.3 судя по описанию, использование плана обмена - наиболее подходящий вариант. Буду изучать план обмена.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск