Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

MSSQL Error 14243: The job does not exist — решение ошибки SQL Agent

Обновлено: 25.08.2026  ·  Официальная база знаний
  • Регламентные скрипты или триггеры возвращают ошибку Msg 14243, Level 16, State 1: The job '%ls' does not exist.
  • Планы обслуживания (Maintenance Plans) для баз 1С не запускаются по расписанию.
  • При вызове sp_start_job или sp_stop_job процесс завершается аварийно.
  • Рассинхронизация между идентификаторами job_id в msdb.dbo.sysjobs и вызовами внешних систем мониторинга.

1. Проверка существования задания по имени и job_id

USE msdb;
GO
SELECT job_id, name, enabled, date_created 
FROM msdb.dbo.sysjobs 
WHERE name LIKE '%1C%Backup%' OR job_id = 'A7D2A782-5060-4C96-BEE8-55418EAE364C';

2. Поиск скрытых символов и проблем с кодировкой в имени

SELECT name, CAST(name AS VARBINARY(100)) AS NameBinary 
FROM msdb.dbo.sysjobs;

3. Корректный вызов задания через job_id вместо строкового имени

DECLARE @JobID BINARY(16);
SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE name = N'1C_Daily_Maintenance';

IF @JobID IS NOT NULL
    EXEC msdb.dbo.sp_start_job @job_id = @JobID;
ELSE
    PRINT 'Error: Job not found in msdb.dbo.sysjobs';

4. Восстановление поврежденного задания Плана обслуживания

Если задание пропало после сбоя msdb или миграции:

-- Пересоздание системных представлений и проверка целостности msdb
DBCC CHECKDB ('msdb');
Практический опыт инженера: При написании PowerShell скриптов и триггеров для 1С всегда вызывайте задания SQL Agent по постоянному GUID (job_id), а не по строковому имени, так как имя может быть непреднамеренно изменено другими администраторами.

Частые вопросы (FAQ)

Почему имя задания отображается в SSMS, но T-SQL возвращает ошибку 14243?

Это часто происходит из-за непечатаемых символов (пробелы в конце строки, смешение кириллических и латинских символов 'C' / 'С' в имени '1C') или вызова задания под пользователем без прав в msdb.

Какие роли в msdb необходимы для запуска заданий?

Пользователь должен состоять в роли SQLAgentUserRole, SQLAgentReaderRole или SQLAgentOperatorRole в системной базе данных msdb.

Что делать, если Maintenance Plan есть в Object Explorer, но связанные задания отсутствуют?

Откройте план обслуживания в конструкторе SSMS, внесите любое незначительное изменение (например, комментарий) и сохраните его. SSMS автоматически перегенерирует недостающие задания в sysjobs.

Может ли ошибка 14243 быть вызвана регистрозависимой коллацией (CS)?

Да, если база msdb или весь инстанс установлены с параметром Case-Sensitive (например, Cyrillic_General_CS_AS), имена заданий должны передаваться в строго точном регистре.