(2) spezc, обработка получает данные запросами.
Хочу часть этих запросов выполнить через фоновые задания и потом собрать результат в исходной обработке.
Тип: Строка.
Имя экспортируемой процедуры или функции неглобального общего модуля, который может быть выполнен на сервере, в форме ИмяМодуля.ИмяМетода.
<Параметры> (необязательный)
Тип: Массив.
Массив параметров, передаваемых в метод. Количество и типы параметров должны соответствовать параметрам метода.
<Ключ> (необязательный)
Тип: Строка.
Ключ задания. Если ключ задан, то он должен быть уникальным среди ключей активных фоновых заданий, имеющих такое же имя метода, что и у данного фонового задания.
<Наименование> (необязательный)
Тип: Строка.
Описание задания.
Возвращаемое значение:
Тип: ФоновоеЗадание.
Описание:
Инициирует выполнение фонового задания. Задание выполняется от лица текущего пользователя. Выполнение происходит без ожидания завершения задания. Если задан ключ задания, он должен быть уникальным среди ключей активных заданий.
использовать можно. если вызвать методы общих не глобальных методов конфигурации.
можно создать в конфигрурации метод , который будет выполнять произвольный код (Выполнить()) , но это бэк дор
и возможно 1с это блокирует
(12) harmer, Спасибо, теорию я понмаю.
Вопрос в том, как из внешней обработки запустить фоновое задание без модификации конфигурации.
Причем это задание теоретически должно выполниться в другом сеансе этой же обработкой.
(13) МихаилМ, внешняя компонента, если Вы о ней, это похой вариант.
(15) Boneman, Можно пример?
Или хотя бы общую идею.
Хотя бы куда в БСП копать.
У меня была мысль, что можно обратиться, если подключить обработку.
Но скорее всего из фонового сеанса подключенная в другом сеансе обработка не будет видна.
(16) ekaruk,
1. Фоновое задание выполняет только экспортные функции общих модулей.
2. Для того, чтобы распараллелить что-либо, можно использовать Выполнить(код).
3. Исходя из 2, нужно вызвать экспортную функцию, способную выполнить код, и передать в нее код и параметры.
Типа так:
параметры = новый массив;
параметры.Добавить(КодАлгоритма);
параметры.Добавить(параметрыАлгоритма);
На примере УТ11 видно, что в модуле ДлительныеОперации вызывается "РаботаВБезопасномРежиме.ВыполнитьМетодКонфигурации", где и происходит проверка на принадлежность к конфигурации переданное в фоновое задание имя экспортной процедуры.
Но даже если бы этого не было - вызвать экспортную процедуру ВнешнейОбработки, а это значит конкретного экземпляра!? - невозможно. Инными словами, во внешних обработках нет модуля менеджера, есть только модуль объекта. Поэтому вызов процедуры в фононовои задании конкретного экземпляра не может быть произведен.
Если вопрос еще актуален :) http://infostart.ru/public/626117/ В БД, должен быть только 1 Общий модуль из поста выше. А дальше весь код располагать только во внешней обработке, включая тот, что должен выполняться в фоновых заданиях.
Вот отличную статью написали https://infostart.ru/public/525648/. А в комментах оставил как быстро расспараллелить потоки! Но могут быть блокировки, но это не страшно.