Зависают регламентные задания 1с
Вынесенный нами в заголовок статьи вопрос является актуальным для многих системных администраторов, работающих с данным продуктом. По мере возможностей мы стараемся рассказывать о параметрах, влияющих на производительность 1С и развенчивать популярные мифы. Сегодня, на примере одного недавнего случая, мы хотим рассказать вам об еще одном аспекте, способном серьезно влиять на производительность - регламентных заданиях.
Начнем с реального случая. Не так давно к нам обратился один наш клиент с жалобой на "тормоза" 1С у одного из его сотрудников. Симптомы выражались в том, что через некоторый промежуток времени конфигурация Управление Торговлей 10 начинала сильно тормозить, а проще говоря подвисала на какое-то время.
При более подробном разборе ситуации выяснилось, что это происходит только у одного сотрудника, причем на любом рабочем месте, происходит давно, но если раньше "тормоза" продолжались около секунды, то теперь, после обновления, они могут продолжаться до 15-20 секунд, что делает работу крайне некомфортной.
В принципе, исходных данных уже достаточно, чтобы сделать первые выводы. Приведем их еще раз:
- "Тормоза" происходят постоянно, с определенной периодичностью
- "Тормозит" только у одного пользователя
- "Тормозит" на любом рабочем месте
Чтобы подтвердить свои догадки заглянем в Настройки параметров учета:
Действительно, "проблемный" пользователь указан как пользователь для выполнения регламентных заданий. Как выяснилось, когда-то давно от имени этого пользователя работало задание автообмена РИБ. Осталось посмотреть, что именно являлось причиной эпизодического "торможения". Это тоже несложно сделать:
А вот и "виновник торжества" - задание обновления индекса полнотекстового поиска, которое запускалось один раз в 2,5 минуты. В данном случае проблема была полностью решена отключением выполнения регламентных заданий под этим пользователем, однако это не всегда возможно или целесообразно, поэтому ниже мы рассмотрим каким образом можно управлять регламентными заданиями и как сделать так, чтобы они не оказывали негативного влияния на производительность.
Обычное приложение
В конфигурациях на основе обычного приложения единого инструментария для управления регламентными заданиями нет. Во многом это связано с тем, что на момент их первоначальной разработки сама концепция регламентных заданий была развита довольно слабо.
Управление многими регламентными заданиями производится через настройку связанных с ними подсистем. Например, настройки регламентных заданий, связанных с обменом данными следует искать в настройках обмена, связанные с ЕГАИС в настройках торговлей алкоголем и т.д.
На первый взгляд все довольно логично, но отсутствие единого инструмента затрудняет возможность контроля за настроенными регламентными заданиями и оптимальностью их настроек. Хорошо, если заданий одно - два, а если их больше или, как в нашем случае, есть подозрение на какое-либо из регламентных заданий, но вы не имеете представления кто и что настраивал в этой базе.
В этом случае следует воспользоваться внешней обработкой КонсольЗаданий (JobsConsole), которая входит в набор стандартных обработок на диске ИТС. Обработка предоставляет единый интерфейс для всех заданий и позволяет выполнять их централизованную настройку, а также контролировать выполняющиеся в текущее время задания.
Данный список нужно тщательно изучить, все ненужные задания следует отключить, а у нужных привести расписание в соответствие с насущными потребностями и здравым смыслом. Например, в нашем случае, нет никакой необходимости обрабатывать ответы ЕГАИС раз в 30 секунд (эта настройка сделана для тестирования) и в рабочем режиме вполне достаточно будет делать это скажем раз в полчаса.
Управляемое приложение
В конфигурациях на основе управляемого приложения регламентным заданиям отведена более значительная роль, с их помощью могут выполняться различные задания по обслуживанию информационной базы и поддержанию ее в актуальном состоянии, но в тоже время именно регламентные задания чаще всего становятся причиной "тормозов".
Для управления регламентными заданиями предназначен отельный пункт в меню Администрирование - Поддержка и обслуживание.
Сразу можно отметить, что заданий значительно прибавилось (для примера мы взяли одну и ту же конфигурацию - Розница) и их грамотная настройка способна существенно улучшить производительность информационной базы. Настройки по умолчанию выполнены 1С исходя из потребностей средней сферической фирмы в вакууме и не являются оптимальными даже близко.
Прежде всего отключаем то, что явно ненужно, с чем вы не работаете. Потом оптимизируем расписание редко используемых функций, скажем обновление классификатора банков в Рознице, как и проверку контрагентов, можно проводить раз в неделю в нерабочее время или в конце (начале) рабочего дня.
Отдельное внимание следует уделить всему, что связано с поисковым индексом. Полнотекстовый поиск безусловно удобная вещь, но работа с его индексом является весьма и весьма ресурсоемкой задачей. Поэтому не стоит впадать в крайность и отказываться от него, но следует серьезно пересмотреть и настроить его параметры.
Начнем с извлечения текста, данная операция позволяет производить поиск по содержимому приложенных файлов, поэтому если вы не используете их, не производите поиск по ним, или у вас там одни изображения - то данную операцию можно отключить, в любом случае выполнять ее раз в 85 секунд - явный перебор.
Обновление индекса ППД - одна из самых ресурсоемких операций, по умолчанию выполняется раз в минуту.
Тоже самое относится и к слиянию индекса ППД, если вы обновляете индекс раз в день, то следует настроить слияние на выполнение раз в неделю, при этом выбрав в качестве начала задания наименее мешающее работе время.
Эти несложные операции позволят вам без особого ущерба для функциональности конфигурации поднять комфортность работы с ней на новый уровень за счет отказа от частого выполнения достаточно ресурсоемких операций. Только не следует впадать в крайности, грамотно рассудите, насколько вам необходимы те или иные возможности и как часто следует выполнять связанные с ними задания.
В одной внедряемой информационной системе значение регламентных заданий (РЗ) оказалось очень велико. С помощью них осуществляется автоматизированная проверка и загрузка исходных данных в систему. И надо же было такому случиться, РЗ стали иногда подвисать. Несколько раз в месяц, после перезапуска сервера 1С Предприятия, все РЗ переставали выполняться. Выяснилось, что ситуация легко локально лечится перезаписью каждого РЗ. После чего они начинают нормально работать.
Поиск в Инете показал, что мы не одиноки. Подобная проблема встречается давно, но есть нюансы. Один из хорошо известных случаев, когда сервер sql и сервер 1С стоят на одной машине. После физического перезапуска сервера сервис 1С Предприятия стартует раньше сервиса sql, и модуль обработки регламентных заданий не может ещё прочитать их из базы. И считает, что их нет. Есть даже рекомендация Микрософт для данной ситуации, которая предусматривает настройку зависимости сервиса 1С Предприятия от сервиса sql. То есть он всегда буде стартовать после. Решение! Но это был не наш случай, так как физического перезапуска сервера у нас не было. Только остановка и старт сервиса. Были проанализированы и другие аспекты. Сервер sql работает непрерывно. Базы в кластер если и добавляются, то порядком реже, чем сбоят РЗ. Разделителей нет. После перезапуска сервера 1С Предприятия РЗ стартуют независимо.
Dim v82 , base
Set v82 = CreateObject ( "V82.ComConnector" )
ConnString = "Srvr=имя_сервера;Ref=имя_базы"
Set base = v82 . Connect ( ConnString )
base . CheckScheduledTasks
В зависимости от настроек, в строку соединения возможно придется добавить пользователя и пароль: "usr=пользователь;pwd=пароль".
В конфигурацию я добавил процедуру в Модуль внешнего соединения, которая вызывает процедуру из Общего модуля:
Процедура CheckScheduledTasks () Экспорт
РегламентныеЗадания . ПроверитьПерезаписатьРегламентныеЗадания ();
КонецПроцедуры
// Процедура проверяет выполнение и перезаписывает все включенные регламентные задания
Процедура ПроверитьПерезаписатьРегламентныеЗадания () Экспорт
мРЗ = РегламентныеЗадания . ПолучитьРегламентныеЗадания (Новый Структура ( "Использование" , Истина));
Если мРЗ . Количество () = 0 тогда
ЗаписьЖурналаРегистрации ( "Регламентные задания" , УровеньЖурналаРегистрации . Информация . "Отсутствуют Регламентные задания с признаком Использование" );
КонецЕсли;
стрТекущееВремя = "00010101" + Формат ( Час ( ТекущаяДата ()), "ЧЦ=2; ЧН=00; ЧВН color: red;">)+ Формат ( Минута ( ТекущаяДата ()), "ЧЦ=2; ЧН=00; ЧВН color: red;">)+
Формат ( Секунда ( ТекущаяДата ()), "ЧЦ=2; ЧН=00; ЧВН color: red;">);
ТекущееВремя = Дата ( стрТекущееВремя );
мПозже = Новый Массив ;
фПерезаписываем = Ложь;
Для каждого РЗ из мРЗ цикл
Если РЗ . Расписание . ВремяНачала > ТекущееВремя тогда
мПозже . Добавить ( РЗ );
ИначеЕсли РЗ . ПоследнееЗадание = Неопределено тогда
РЗ . Записать ();
фПерезаписываем = Истина;
ЗаписьЖурналаРегистрации ( "Регламентные задания" , УровеньЖурналаРегистрации . Предупреждение , РЗ . Метаданные , РЗ , "Перезаписано - " + РЗ . Метаданные . Имя );
Иначе
ЗаписьЖурналаРегистрации ( "Регламентные задания" , УровеньЖурналаРегистрации . Информация , РЗ . Метаданные , РЗ , "Нормально выполняется - " + РЗ . Метаданные . Имя );
КонецЕсли;
КонецЦикла;
Если фПерезаписываем тогда
Для каждого РЗ из мПозже цикл
РЗ . Записать ();
ЗаписьЖурналаРегистрации ( "Регламентные задания" , УровеньЖурналаРегистрации . Предупреждение , РЗ . Метаданные , РЗ , "Перезаписано - " + РЗ . Метаданные . Имя );
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Последний модуль был доработан. Обрабатываются все используемые РЗ. Если РЗ должно было начать выполняться до момента проверки, но не выполнялось, то перезаписываем его. Если были обновления, то перезаписываем и более поздние РЗ.
Подскажите пожалуйста. УТ11,3 файловый вариант. Регламентные задания работают исправно несколько дней, после чего просто перестают работать по расписанию. То есть в понедельник запускаем компьютер, клиент 1С и оставляем так на неделю. В след понедельник смотрим - у всех заданий время последнего выполнения - прошлый четверг например. Перезапуск клиента (в т.ч. на всех компьютерах в сети) результата не даёт. Вот если перезагрузить сам компьютер, на котором база лежит, то всё по-новой.
Комп с базой на Win-7 (64), SSD, 12GB RAM (сеть на 3 ПК всего)
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Sql-запрос В Файловой Базе 1с 7.7
Как в файловой базе 1С 7.7 выполняется sql-запрос? Кто выполняет роль сервера ? Где при этом.
Отладка веб-сервисов на файловой базе 1с
Добрый день. есть файловая база, локальный веб сервер с публикацией на нем некоторых веб.
Найти в файловой базе данных студентов, средний балл которых больше, чем заданный
Бинаний файл. Задали структуру "Студент", содержащий поля "Фамилия", "Средняя оценка". Создать.
Сейчас закрыл 1С, но в процессах остался висеть процесс 1cv8.exe. Посмотрел детальнее:
Дата и время создания этого процесса в точности соответствует дате и времени последнего выполнения РЗ.
Это может о чём-то говорить?
Ранее я замечал, что при одном запущенном клиенте иногда висят два процесса с одинаковым именем.
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Написал. Говорят, что у меня нет подписки ИТС и отказываются отвечать по своему косяку. Послал их к кренделям, сказав, чтоб убрали свои лапы из наших карманов))
Блин не буду же я ненужную хрень покупать ради этого.
Кажется разобрался в чём проблема, но всё= нужна ваша помощь!
Вобщем наткнулся в сети на следующий текст:
Сразу же полез во вкладку "Фоновые задания" и обнаружил там два задания, запущенных, но не законченных в тот день и время, на которых последний раз выполнялись РЗ. 3 дня назад. Я вручную отменил выполнение этих двух фоновых заданий и сразу же выполнились все "застрявшие" регламентные! Вот эти два фоновых задания:
Проверка подключения
ЦентрМониторингаСлужебный.ПриВыполненииСтандартныхПериодичес кихПроверокНаСервере
Собственно вопрос, какого черта они три дня висели и не могли выполниться? Как можно автоматически останавливать такие задания, если они "зависли"?
Блин не понимаю, почему на клиенте стоит запрет на регламентные задания,а они всё-равно выполняются? Да ещё и пользователь <Неопределен>регл. задания запускаются под тем пользователем который указан в консоле регл. заданий
Добавлено через 1 минуту
а вот с какого компьютера определяешь через параметр запуска
Добавлено через 39 секунд
и отключи лишние регл. задания.
Благодарю! Ну лишние я отключил, которые считал ненужными. А как понять, есть-ли ещё лишние? Список всех прилагаю.
В консоле регл заданий вообще не указаны пользователи по-умолчанию. Но тем не менее НА ВСЕХ компах кроме сервера в параметре запуска стоит запрет на выполнение РЗ. Так почему же они всё-равно выполняются на других компах блин? (((
Думал уже у программиста заказать автоубивание зависших заданий, но вот проблема - почему они запускаются на компах, где их выполнение запрещено параметром запуска.
Добавлено через 41 секунду
Может этот параметр запуска неверно по синтаксу указан? Или может в ярлык это прописать?
Проверка подключения
ЦентрМониторингаСлужебный.ПриВ ыполненииСтандартныхПериодическихПроверокНаСервере
Собственно вопрос, какого черта они три дня висели и не могли выполниться? Как можно автоматически останавливать такие задания, если они "зависли"? Конкретно ЦентрМониторингаСлужебный.ПриВ ыполненииСтандартныхПериодическихПроверокНаСервере Среди зависших заданий присутствует всегда. Будто оно и является "зачинщиком" Но у этого задания нет регламентного родителя. Вот всё, что по нему известно (собственно вот опять зависло.. Только что скриншот сделал - а дата выполнения вчерашняя):
Так это не регламентное задание, это фоновое задание
Добавлено через 49 секунд
Они выполняются постоянно, при любой длительной операции. (сформировать отчет и т.д.)
Добавлено через 4 минуты
Нужно проверять, возможно эта функция ломится куда-нибудь на внешний ресурс к которому нет доступа у пользователя и наглухо зависает
мне аж самому стало интересно.
Хех))) попкорн уже кончается? ))))
Да пока на паузе. Всё настроено верно, всё лишнее отключено и т.д. И всё-равно зависают. Буду программиста просить разобраться.
Добавлено через 10 секунд
Не знаю уже чего и попробовать ещё
Пробежался по конфе - эта процедура выполняется каждые 20 минут. И если во время выполнения этого задания начнёт выполняться фоновое задание по синхронизации с сайтом, то эти ФЗ виснут наглухо, не давая выполняться другим ФЗ. Помогает только, если в консоли грохнуть этот ЦентрМониторинга.
Как думаете, закомментить?
Проблема с юзером в базе
Всем привет! При создании админ пользователя во время установки скрипта,пользватель некорректно.
Проблема с датой в базе данных
Ребят, подскажите, пожалуйста. Записываю в базу данных SQL Server сегодняшнюю дату. Делаю несколько.
Проблема с обращением к базе данных
Всем привет. В общем пишу небольшой сайтик, с php до этого работал не очень много но некоторые.
Проблема с подключение к базе данных
Осваиваю EF, не получается подключиться к базе данных, подскажите что делать с такой ошибкой
Проблема с подключением к базе данных
При отладке выдаёт такую ошибку, я только начал учить базы данных, поэтому не уверен правильно ли.
Проблема с определением пути к базе данных.
Проблема следующего характера: на форме имеется текстовое поле, в которое вводиться полный путь к.
А что реально делается каждую минуту? Проверяется почта или ещё отправляется куча писем? Я к тому, что каких-нибудь ограничений яндекса не превышаете?
kalapanga, Да все дело в том что менеджеры по продажам цари и боги и их величество хотят что бы письма отправлялись сию секнду (получение почты в 1С не настроено только отправка), счетов выписывается много
Виктор Л, если основной процесс в вашей организации - это продажи, то таки да - продажники могут требовать любые хотел, которые им облегчают работу.
Константин Нагибович, Да мне глубоко плевать что они там требуют просто есть проблема ее надо решить главное что бы меня от моей работы не отвлекали а то приходится теперь одним глазом смотреть 1С отправляется почта или нет
Виктор Л, вам уже дали дельный совет - посмотреть под отладчиком.
Виктор Л, Я бы тогда яндексовые нормы поискал или прямо в их техподдержке поинтересовался. Кто их знает, что они там считают. Может частоту обращений, может количество писем с адреса в день/час/. Дело-то житейское - выписан счёт, надо его отправлять. Но при этом ещё бы в спамеры не попасть.
И ещё, у Вас почта для домена или обычный адрес на яндексе? Тоже разные нормы могут быть.
kalapanga, если была бы ошибка от яндекса, она бы прилетала в журнал, а задача завершилась бы ошибкой. Тут же просто подвисает событие.
Denis Melnikov, Оно просто зависает по жескому даже после отмены оно продолжает висеть помогает только перезагрузка в журнале кстати не особо много инфы по этому событию
Если запустить не регламентом и пройти отладкой, все ок ?
не пробовал если честно, просто в терминальном режиме работает куча 'манагеров' кто его знает когда они там что отправляют но все нужно что бы почта мгновенно была у клиента
Получается нужно отключить регламентное задание и самому запускать его ?
Виктор Л, нужно хотя бы попробовать это сделать.
Выключаете регламент и запускаете процедуру/функцию в ручную, ту, что запускается регламентов и смотрите что происходит, если подвисает, то дебагом проходим и смотрим где.
Denis Melnikov, Про дебагер немного не понял это все делается через стандартные мех платформы? Я могу посмотреть журнал но и то что там будет, задание просто зависает и приходится его удалять Сервер 1С предприятие и то они продолжают там висеть до перезагрузки
Виктор Л, если ни когда не делали дебаг кода, то наверное стоит прочитать про него.
Это отладка, через точки останова в конфигураторе.
В журнале не будет ошибок, так как задача не завершена ни как.
Denis Melnikov, Свои простенькие обработки и отчеты я 'дебажил' я не работал 'дебагером' с регламентными заданиями:
Я правильно понимаю что мне нужно
сервер 1С должен запустить с ключем debug
И потом просто запускать регламентное задание и ждать когда оно накроется?
Виктор Л, в целом да. Серверные вызовы должны быть с ключем дебажены.
Виктор Л, как вариант, можете в своей внешней обработке вызвать процедуру регламентного задания. "Провалиться" в нее и посмотреть что и как.
Читайте также: