Регламентные задания 1с linux

Регламентные задания

Всем привет!
Есть желание запускать в клиент-серверной базе регламентные задания так же, как в файловой версии, т.е. выделить пользователя, под которым все это будет происходить. Возможно ли такое?

(1) PAAG, очень странное желание. Интересно, зачем? Тем более, что в 8.3 файловой, 1С пытаются уйти от привязки регламентных заданий к конкретному пользователю. Это всегда отдельный поток, который запускается с привязкой к первому попавшемуся рабочему сеансу. Конечно можно запустить клиента с указанием, что бы поток привязывался только к нему, но это работает только при работе этого клиента. Потом снова пытается найти любой рабочий сеанс и привязаться к нему. Если рабочих сеансов нет, то и регламентные задания прекращают работу.
В серверной он всегда работает. Но при желание можно заблокировать работу через утилиту администрирования сервера1С.

Да, как заблокировать в настройках базы — это понятно. А вот как сделать, чтобы запускалось под пользователем?
Связано это с настройками сервера, боюсь, что не будут работать под сервером регламентные задания. 🙁
А под клиентом они работают нормально.

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

(4) spacecraft, с релиза 8.3.3 (ну примерно — точно не помню) — в файловой работает абсолютно также как и в серверной базе.
есть некоторые минусы/разница у файлового варианта, да, но — работает.

(6) spacecraft, так я именно и не понял. поэтому и написал, что не пытаются, а в 8.3.3 уже отошли от необходимости сеансов пользователя.
или я не прав?

(7) Salavat, не прав. Да это и не возможно в принципе. Файловая база это просто файл. Он может быть где угодно. Без сеанса пользователя это ничто. В тонком клиенте (файловый вариант) есть отдельная область, которая эмулирует работу сервера. В ней выполняется весь код &НаСервере и запуск на выполнение регламентных (фоновых) заданий. Единственно, теперь не надо указывать конкретного пользователя для выполнения этих заданий на нем. Повторяться не буду, выше все описал.

(8) spacecraft, ясно, Спасибо!
хотя конечно былобы лучше — описание официальное посмотреть.
по-крайней мере — я тоже заметил, что даже если запущено Предприятие (без каких-либо привязок — просто регламентное задание создано), приходится ждать время (по полчаса было), пока оно запустится.

Я, наверное, не в той теме написал, т.к. хоть платформа у нас 8.3, но используется торговля 10.3, с обычными формами и толстым клиентом.

Опишу подробнее проблему. Есть обмен с сайтом на битриксе. Битриксоиды написали обмен, пока база была файловая, он работал нормально в заранее отведенном ему пользователе.

Сейчас базу перевели в клиент-серверный режим, причем сам 1с сервер стоит на линуксе, т.е. все файловые настройки у него свои, не такие как на клиенте. Т.е. если прописать пути для сохранения лога клиентские, то задание по обмену будет ругаться, если прописать линуксовые, то вручную обмен не запустить, но это детали, даже если запускается задание на сервере, то оно работает некорректно.

Читайте также:  Все команды используемые в линукс

Я решил, что можно также запускать его на клиенте, чтобы все настройки были клиентские, включил в базе (на сервере) блокировку регламентных заданий, а в модуле обычного приложения сделал так, чтобы обработчик ожидания запускался даже для клиент-серверной базы.

Но проблема в том, что процедура выполняется

Процедура ПоддержкаРегламентныхЗаданиеДляФайловойВерсии() Экспорт ВыполнитьОбработкуЗаданий(); КонецПроцедуры

т.е. точка остановки внутри нее срабатывает, а вот сами задания не выполняются, т.е. в консоли заданий я не вижу ничего.

Про «ВыполнитьОбработкуЗаданий» в хелпе ничего нет.

Источник

Регламентные задания в 1С

Здесь я постараюсь коротко и по существу рассказать о таком инструменте, как регламентные задания в 1С. Как это устроено и для чего нужно.

Как это работает

Чтобы получилось регламентное задание, надо соединить код и расписание. Тут никаких подвохов нет. Все так же, как и в других системах, не 1С.

Обязательное требование заключается в том, что код должен размещаться в т.н. общем модуле. При этом вызываемая процедура должна иметь атрибут экспорт.

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

Процедура ЗагрузитьАктуальныйКурс(ПараметрыЗагрузки = Неопределено, АдресРезультата = Неопределено) Экспорт Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда Обработки["ЗагрузкаКурсовВалют"].ЗагрузитьАктуальныйКурс(ПараметрыЗагрузки, АдресРезультата); КонецЕсли; КонецПроцедуры 

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

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

Можно догадаться, что Использование отвечает за включение и выключение регламентного задания. Тут сразу возникают вопросы. Зачем создавать в метаданных выключенное регламентное задание? И как оно потом включается? Только в конфигураторе? Или есть возможность включать и выключать задания из пользовательского режима программно?

В дереве метаданных мы видим список регламентных заданий. Казалось бы, все, что нам нужно для запуска задания в работу это создать его, указать точку входа в код (какую-нибудь экспортную процедуру общего модуля), настроить расписание и не забыть поставить галочку Использование. Интуиция подсказывает нам, что если мы создали что-то и взвели галочку использования, то это должно работать.

Но, нет. Тут мы сталкиваемся с контринтуитивным моментом. Дело в том, что список регламентных заданий, который мы видим в режиме конфигуратора, это на самом деле список шаблонов регламентных заданий. И для того, чтобы созданное в конфигураторе регламентное задание заработало в пользовательском режиме, надо его создать из шаблона. Если в режиме конфигуратора у созданного вами регламентного задания (которое на самом деле не задание, а шаблон задания) установить опцию Предопределенное, тогда в пользовательском режиме создавать задание из шаблона не требуется, оно будет создано автоматически в момент применения конфигурации к базе данных.

Читайте также:  Linux screen exit all

Если вы до сих пор не запутались, тогда вот вам еще. Получается, что у нас есть список шаблонов регламентных заданий в конфигураторе. В пользовательском режиме мы можем создавать работающие регламентные задания из шаблонов. Причем из одного шаблона можно создать множество работающих регламентных заданий. А чтобы такого не происходило (действительно, что может быть хорошего во множестве однотипных регламентных заданий?) вы можете в режиме конфигуратора указать ключ регламентного задания. Хотя, как по мне, то для того , чтобы этого не происходило было бы достаточно «не городить огород» там, где в нем нет необходимости.

В отличие от, например, справочников или документов у регламентных заданий нет «встроенной» визуализации. Чтобы в пользовательском режиме посмотреть на список регламентных заданий в типовых конфигурациях надо перейти в соответствующий раздел «Администрирование». В нетиповых следует пользоваться т.н. библиотекой стандартных подсистем. Если нет желания в нее погружаться, можно сделать свою визуализацию. Это не займет много времени (есть объект под названием МенеджерРегламентныхЗаданий, а у него есть метод ПолучитьРегламентныеЗадания() ).

Для обычных форм такая визуализация есть на сайте ИТС

можно «подсмотреть» как это работает.

Зачем это нужно

Без регламентных заданий нам не обойтись, если мы решаем в том или ином виде задачи интеграции. Мы принимаем данные в 1С и отправляем данные из 1С. И конечно нам хотелось бы. чтобы это происходило по расписанию.

И это наиболее очевидный способ применения регламентных заданий. Но, хорошего специалиста в любой области отличает знание вещей, которые менее очевидны.

Дайте пользователю отчет и он захочет его улучшить для себя. Потом еще раз улучшить. И на каждом шаге это будет означать существенное усложнение, и как следствие, замедление. Это, хоть и не обязательно, но имеет высокую вероятность. Изначально приемлемо быстрый отчет работает все медленнее и медленнее. Возникает вопрос, как бы получить и то, и другое. И прежнюю скорость, и новую сложность. Регламентные задания позволяют это сделать! Идея заключается в том, чтобы готовить «тяжелые» отчеты заранее, по расписанию. А когда пользователь захочет получить такой отчет, выдавать ему уже готовый.

Можно пойти и дальше. Зачастую мы используем отчеты для того, чтобы контролировать какие-либо процессы. Сравниваем что стало с тем, что было и смотрим, чтобы это не выходило за определенные рамки. И здесь было бы неплохо, если бы кто-то или что-то делало за нас эту скучную работу. Регламентные задания походят для этого как нельзя лучше. Вообще, существует такая крайняя точка зрения, что отчеты не нужны вовсе, а если они присутствуют в приложении, значит его недостаточно хорошо продумали. Объясняется это тем, что человек все равно не в состоянии воспринимать тот объем информации, который ему выдают в отчетах. Поэтому для людей в приложении должны быть боты-помощники (и тут нам понадобятся регламентные задания), а для сторонних приложений должен быть хорошо продуманный API.

Читайте также:  Connecting to wifi in linux mint

Заключение

Регламентные задания довольно простой, если не обращать внимание на описанные выше сложности, и при этом очень эффективный инструмент. С его помощью вы сможете придать своему решению современный вид.

Напоследок хочу порекомендовать вам бесплатный вебинар, в рамках которого преподаватели из OTUS расскажут про основные возможности EDT и научат вас вести через EDT разработку.

Источник

Зачем блокировать регламентные задания на Сервере 1С

Коллега, в этой статье, мы расследуем один интересный случай из обычной демо базой «Управляемое приложение» в клиент-серверном варианте работы 1С 8.3 21, а заодно и разберемся с вопросом: «Стоит или нет, блокировать регламентные задания на Сервере 1С».

Я фактически всегда рекомендую еще при создании ИБ на Сервере 1С блокировать регламентные задания, установив птичку в соответствующем разделе (в свойствах базы).

ВНИМАНИЕ! Полная блокировка регламентных заданий может отключить авто-обновление курсов валют, авто-обновление конфигурации 1С и прочего! Рекомендуется проводить данную настройку из разработчиком 1С, чтоб учесть возможные, нежелательные последствия.

blokirovka_reglamentnix_zadaniy_v_1C

Но давайте по порядку…

На днях обнаружил, что Сервер 1С сильно грузит процессор 15 -30% и это без пользователей и с базой в пару мегабайт )

Простая демо база «Управляемое приложение» и ложит сервер на не последнем процессоре (core i9) 10 того поколения.

dispetcher_gruzit_rphost_1c

Как Вам такое : -)

Копнув глубже, я обнаружил, что вдобавок с огромной скоростью забивается и диск файлами из каталога полнотекстового поиска: «files_for_accept».

files_for_accept_1C

Буквально за 30 мин Сервер 1С создал в нем больше миллиона файлов!

Понятно, что раз в базе не работают пользователи, то всему виной регламентные задания и процессы что они порождают.

Заблокировав их в свойствах информационной базы на Сервере 1С проблема, как и предполагалось, ушла!

Но осадочек то остался )

Решив расследовать причину, я обратно снял птичку «блокировки» РЗ и уже понимая, что дело связанно с «Полнотекстовым поиском в 1С», так как файлы растут в папке: «files_for_accept» решил отключить «Полнотекстовый поиск» в базе, что на вкладе «Сервис» – «Административный сервис» -«Управление полнотекстовым поиском»

И опять ошибка:

polnotekstoviy_poisk_1C_UP

«Ошибка при вызове метода контекста» (УстановитьРежимПолнотекстовогоПоиска)

Вероятно, запущено регламентное задание обновления индекса. Попробуйте еще раз некоторое время спустя.»

Скажу сразу, что дождаться можно только полного отсутствия свободного места на диске и увеличения и без того большой нагрузки на ЦПУ.

Вернув на место птичку в свойствах базы «Блокировка регламентных заданий» и перезапустив Сервер 1С, я смог, наконец, отключить «Полнотекстовый поиск» и проблема была решена, так как регламентное задание обновления индекса в полнотекстовом поиске, было отключено уже на уровне самой конфигурации 1С «Управляемое приложение».

net_osibki_polnotekstoviy_poisk_1c

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

Смотрите ниже видео, о том, как я обнаружил и расследовал по шагам данную проблему:

Зачем блокировать регламентные задания на Сервере 1С

Все уроки по администрированию 1С здесь :

Изображение

Присоединяетесь к нашей группе телеграмм: Здесь вы получите ценную помощь от умного бота «Коли» (ChatGPT) + знания сотен ее участников.

Похожие записи

Источник

Оцените статью
Adblock
detector