Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

MSSQL_ERROR_14243 1С:Предприятие и СУБД

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), имена заданий должны передаваться в строго точном регистре.

Полезные материалы
Рекомендуем