Вы используете один метод (процедуру) для нескольких регламентных заданий. Процедура сработала, но как штатными средствами определить какое именно РЗ ее запустило?
Спросите зачем? В одной из конфигураций у меня, например, все РЗ не предопределенные! Каждое РЗ (созданное в конфигураторе) — лишь определенный МЕТОД обработки данных! А в консоле настройки РЗ в режиме Предприятия (шедуллере) уже создается немыслимое множество всевозможных РЗ для обработки разных ситуаций. Но количество методов обработки ограничено, оно описано Регламентными Заданиями (методами) в режиме конфигуратора.
Пример: В конфигураторе создано РЗ архивирования файлов. А в режиме Предприятия (шедуллере) пользователь создает несколько РЗ на архивирование и для каждого указывает каталоги откуда брать/куда выкладывать.
Вот Вам хитроумный способ получить ключ (т.е. уникальность) сработавшего Регламентного Задания в процедуре обработчике.
Что у нас есть в штатных средствах? Есть возможность только посмотреть список работающих Фоновых Заданий, отфильтровать его по времени запуска/имени метода и надеяться, что с этим же методом в данный момент не было запущено других РЗ с этим же методом.
ТАК ВОТ, есть ТОЧНЫЙ неописанный метод
Достаточно:
1. При записи Регламентного Задания (в режиме предприятия в шедуллере, в обработке редактирования Регламентных Заданий) заполнить параметры:
мсПараметров = Новый Массив;
мсПараметров.Добавить(Ключ);
РегламентноеЗадание.Параметры = мсПараметров;
2. А в запускаемой РЗ процедуре (методе) поместить параметр «КлючРЗ» (например, имя неважно):
Процедура ЗапускРегламентногоЗадания(КлючРЗ) Экспорт
И при запуске этот параметр будет содержать Ключ, занесенный в параметры при записи РЗ в шедуллере, который можно использовать.
Я, например, по Ключу нахожу соответствующую запись в Регистре сведений и забираю дополнительные настройки РЗ. Такие как Каталоги архивирования.
ЗЫ. Чтобы метод начал работать, ВСЕ РЗ в режиме предприятия нужно перезаписать (переинициализировать).
Метод найден Чтением/Думанием/Тыканием. Причины его работы науке неизвестны.




О как!?!
Легко и просто!
Теперь только фоновые победить. Может кто знает, как с фоновыми справиться?
Или у меня руки кривые — подскажите!
(1) YuraLu, дык, если я правильно понял вопрос, статья как раз это и описывает!
Фоновое — частный случай регламентного. Об этом и есть статья. Когда УЖЕ сработало регламентное (т.е. стало фоновым), вот тогда и есть проблема получить его ключ.
Или у Вас проблема в файловой базе? Если да, то увы, с ними не работаю, подсказать не могу.
большой и жирный ПЛЮС не за публикацию, а за последнюю фразу :
🙂
(3) Tippa, спасибо)))
Догадки, конечно, есть. Видимо, обращение к процедуре записывается вместе с элементом Регламентного Задания. Как только мы «проинициализировали» обращение с указанием параметра, дальше он при каждом запуске отрабатывает шаблоном.
Хм… Это есть в синтакс-помошнике. Регламентное задание, свойство «Параметры».
(5) bulpi, Гуд поинт. Вот только нет прямого описания как использовать. И уж тем более нет упоминания с другой стороны баррикады — со стороны процедуры
Ну если только в качестве информации такой способ и пойдет. Только автор правильно вопрос задал в начале статьи, но на него ответа так и не дал. И в самом деле- зачем? Применение одной процедуры для нескольких РЗ видимо связано с обязанностями пользователей, их правами. ИМХО, это изврат! 🙂 Плодить то зачем? Может стоит переосмыслить логику работы.
В пункте 1 — КлючРЗ. В пункте 2 — Ключ. Так и должно быть?
(8) V_V_V, Переменные в разных модулях. Если желаете, именуйте одинаково
(7) DoctorRoza,
Пример: Регламентное Задание в конфе (и процедура соответственно) настроены на выполнение определенных действий, например, на выборку файлов и выполнение определенных действий с ними, архивирование фор экзампл. Пользователь в режиме предприятия создает Регламентное Задание и настраивает Папку откуда брать файлы и Папку куда выкладывать архив. Подобных заданий может быть тысяча. А РЗ в Конфе ОДНА! Необходимо при запуске ФЗ определять по ключу РЗ настройки из Регистра сведений (как в примере, папки для архивирования).
Логику работы пересматривать не стоит, что-то мне мой опыт подсказывает, что это бесполезно)))
Я же максимально лаконично (чтобы не утомлять) написал причины в описание. Молодой человек, что ж Вы не додумываете сами, а заставляете работать пальцами других!
Да, для полноценного понимания нужно разделить термины РЗ в конфигурации и РЗ в пользовательском режиме. Я не стал на это акцентировать внимание в статье.
Спасибо большое. То что нужно. То перебор фоновых заданий какие-то косяки периодически выдавал
первый пункт не понял