В процессе эксплуатации 1С:Предприятия 8.3 в файловом режиме пользователи часто сталкиваются с ситуацией, когда фоновые задания мешают выполнению административных действий, например, обновлению конфигурации или блокировке информационной базы — для этого подойдёт обработка для принудительного завершения сеансов. Особенность файлового режима заключается в том, что фоновые задания выполняются в контексте одного из активных сеансов или запускают скрытые процессы. В данной статье мы подробно разберем, как принудительно остановить и запретить выполнение регламентных и фоновых операций.
Одним из самых эффективных способов временного отключения механизма заданий является использование специального ключа при запуске программы. Рассмотрим, как правильно модифицировать ярлык запуска 1С.
Проанализируем структуру строки запуска. Для того чтобы запретить выполнение регламентных заданий, нам потребуется ключ /AllowExecuteScheduledJobs -Off. Разберем по шагам, как его применить:
1cv8.exe./AllowExecuteScheduledJobs -Off.Пример корректной строки запуска для файловой базы будет выглядеть следующим образом:
"C:\Program Files\1cv8\8.3.X.XXXX\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\Accounting" /N "Admin" /P "password" /AllowExecuteScheduledJobs -Off
Важно помнить, что если в строке запуска присутствует параметр /UC (код разрешения), его можно использовать совместно с запретом заданий для выполнения монопольных операций.
Если нам необходимо, чтобы база всегда запускалась с отключенными заданиями для всех пользователей через стандартное окно выбора баз, мы можем отредактировать файл ibases.v8i. Посмотрим, как это сделать:
Найдем файл списка баз (обычно он находится в профиле пользователя в папке AppData\Roaming\1C\1CEStart). Откроем его любым текстовым редактором и найдем секцию нашей базы. В параметр AdditionalParameters добавим нужный нам ключ.
Выясним, как это выглядит в файле:
[Название Вашей Базы]
Connect=File="C:\Bases\Accounting";
ID=...
OrderInList=...
Folder=/
AdditionalParameters=/AllowExecuteScheduledJobs -Off
После сохранения файла любой запуск этой базы через стартер будет блокировать старт фоновых потоков.
Если база позволяет войти в пользовательский режим, мы можем управлять заданиями напрямую. Разберем путь к нужным настройкам в современных версиях конфигураций на управляемых формах:
В открывшемся списке мы увидим все доступные задания. Здесь мы можем выделить нужные позиции и нажать кнопку Выключить. Однако стоит учитывать, что некоторые системные задания могут игнорировать ручное отключение, если не установлена общая блокировка.
Бывают ситуации, когда программа выдает ошибку: «Имеются активные сеансы с программой, которые не могут быть завершены принудительно». В файловом варианте это часто означает, что процесс фонового задания «завис» в памяти, хотя само окно 1С закрыто — поможет мониторинг и остановка фоновых заданий. Проанализируем, как очистить память компьютера:
1cv8.exe и 1cv8s.exe.Только после полной очистки процессов 1С из оперативной памяти блокировка фоновых заданий сработает корректно.
Часто самым «прожорливым» и неубиваемым фоновым заданием является индексация полнотекстового поиска. Рассмотрим, как его нейтрализовать:
В разделе Администрирование — Обслуживание найдем пункт Управление полнотекстовым поиском. Если мы снимем галочку Полнотекстовый поиск разрешен, система автоматически прекратит попытки запуска заданий по обновлению и слиянию индекса, что существенно освободит ресурсы в файловом режиме.
Если нам требуется гарантированно отключить задания программным путем (например, перед выполнением сложной обработки), мы можем использовать средства встроенного языка. Проанализируем пример кода, который устанавливает блокировку:
Процедура ЗаблокироватьЗадания()
Блокировка = РегламентныеЗаданияСервер.ПолучитьБлокировкуРегламентныхЗаданий();
Если Не Блокировка Тогда
РегламентныеЗаданияСервер.УстановитьБлокировкуРегламентныхЗаданий(Истина);
Сообщить("Выполнение регламентных заданий запрещено на уровне базы.");
КонецЕсли;
КонецПроцедуры
Этот метод устанавливает флаг в самой базе данных (в системных таблицах), и он будет действовать до тех пор, пока мы не вызовем аналогичную функцию с параметром Ложь. Для автоматизации этих действий есть обработка управления блокировкой регламентных заданий.
Иногда система «видит» фантомные активные задания из-за поврежденных файлов блокировок. Проанализируем ситуацию, когда стандартные методы не помогают. Нам потребуется зайти в каталог информационной базы через проводник и удалить служебные файлы:
*.lck (файлы блокировок).*.cfl.1Cv8Log и 1Cv8Job (в крайнем случае, предварительно создав бэкап).Важно: Перед удалением любых файлов в каталоге базы обязательно создайте резервную копию файла 1Cv8.1CD.
Подводя итог, отметим, что для разового обслуживания базы лучше всего подходит Метод 1 (ключ в ярлыке), а для постоянной работы в условиях ограниченных ресурсов сервера — комбинация Метода 3 и Метода 5. Мы рассмотрели все основные способы управления фоновыми процессами, что позволит вам эффективно администрировать файловые базы 1С.