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

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

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

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

MSSQL Error 14262: The specified @job_name does not exist

Обновлено: 25.08.2026 · Официальная документация ↗
  • Ошибка выполнения хранимых процедур управления агентом: Msg 14262, Level 16, State 1: The specified @job_name ('%ls') does not exist.
  • Скрипты автоматического развертывания баз 1С падают на этапе создания шагов задания (sp_add_jobstep).
  • Сторонние утилиты бэкапа и обслуживания не могут инициировать запуск регламентных задач.

1. Проверка наличия задания в таблицах msdb

USE msdb;
GO
IF NOT EXISTS (SELECT 1 FROM msdb.dbo.sysjobs WHERE name = N'1C_Full_Backup')
BEGIN
    PRINT 'Job does not exist. Creating...';
END

2. Правильный паттерн создания задания и добавления шагов

Для предотвращения ошибки 14262 используйте выходную переменную @job_id:

DECLARE @JobID UNIQUEIDENTIFIER;

-- 1. Создание задания с возвратом GUID
EXEC msdb.dbo.sp_add_job 
    @job_name = N'1C_Index_Defrag',
    @enabled = 1,
    @job_id = @JobID OUTPUT;

-- 2. Добавление шага по ID вместо имени
EXEC msdb.dbo.sp_add_jobstep 
    @job_id = @JobID,
    @step_name = N'Execute Defrag',
    @subsystem = N'TSQL',
    @command = N'EXEC sp_updatestats;',
    @retry_attempts = 3,
    @retry_interval = 5;

-- 3. Привязка к локальному серверу
EXEC msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)';

3. Проверка контекста базы данных

Убедитесь, что вызов процедур управления агентом выполняется в контексте базы msdb:

USE msdb; -- Обязательно перед вызовом sp_delete_job / sp_start_job
💡 Практика специалистов: Если вы управляете регламентными заданиями 1С через CI/CD или скрипты автодеплоя, всегда используйте проверку IF EXISTS перед удалением или модификацией джобов и передавайте параметры через явный параметр @job_id OUTPUT.

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

Почему при выполнении скрипта создания задания возникает ошибка 14262?

Скрипт пытается вызвать sp_add_jobstep или sp_add_jobserver по параметру @job_name до того, как транзакция создания родительского задания через sp_add_job была зафиксирована.

Как проверить точное имя задания без учета проблем с пробелами?

Выполните запрос: SELECT job_id, '[' + name + ']' FROM msdb.dbo.sysjobs. Квадратные скобки позволят увидеть случайные начальные или конечные пробелы.

Может ли ошибка возникать из-за прав учетной записи?

Да. Если учетная запись не является sysadmin, она видит только те задания в msdb, владельцем (owner) которых является ее собственный login.

Как сменить владельца задания на sa?

Выполните: EXEC msdb.dbo.sp_update_job @job_name = N'YourJobName', @owner_login_name = N'sa'.

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