Где найти или как самостоятельно создать консоль заданий для 1С на управляемых формах без БСП

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке или поддержке легковесных конфигураций на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией, когда использование мощной Библиотеки стандартных подсистем (БСП) избыточно или невозможно. Одной из критически важных функций при этом остается управление регламентными и фоновыми заданиями. Стандартная консоль, поставляемая на дисках ИТС, часто рассчитана на обычные формы, а поиск версии для управляемого интерфейса без зависимостей от БСП может стать проблемой.

В этой статье мы подробно разберем, где взять готовую консоль, как использовать инструменты самой платформы и как написать минималистичную, но рабочую версию консоли своими руками.

Вариант 1: Извлечение консоли из демонстрационных конфигураций «1С»

Рассмотрим первый и самый надежный способ получения легального инструмента. Фирма «1С» в составе дистрибутивов технологической платформы поставляет демонстрационную конфигурацию «Управляемое приложение». Это «чистый» пример реализации интерфейса на управляемых формах без БСП.

Разберем по шагам, как получить из нее консоль:

  1. Найдем в папке установки шаблонов (обычно это AppData\Roaming\1C\1cv8\tmpls\...) базу «Управляемое приложение».
  2. Запустим ее в режиме Конфигуратора.
  3. В дереве метаданных найдем ветку Обработки.
  4. Найдем объект КонсольЗаданий.
  5. Нажмем правую кнопку мыши и выберем пункт Сохранить как внешнюю обработку (файл .epf).

Эта обработка написана максимально универсально. Мы можем запустить ее в любой базе 8.3. Она позволяет просматривать список заданий, менять расписание, включать/выключать их и просматривать состояние выполнения.

Вариант 2: Сторонние разработки и профессиональный инструментарий

Проанализируем альтернативные решения, которые часто упоминаются в сообществе разработчиков. Если стандартного функционала недостаточно, стоит обратить внимание на специализированные наборы инструментов.

Инструменты разработчика (IR) от Сергея Старых. Это, пожалуй, самый мощный комплекс. В его составе есть консоль заданий, которая обладает следующими преимуществами:

Также существуют решения на портале Infostart. При поиске следует обращать внимание на те обработки, в описании которых явно указано: «не требует БСП» или «написано на чистом коде». Такие инструменты используют только методы встроенного языка 1С и не обращаются к общим модулям библиотек.

Вариант 3: Создание собственной консоли (программный подход)

Выясним, как быстро написать свою консоль, если под рукой нет интернета или готовых файлов. Платформа 1С предоставляет мощные менеджеры для управления заданиями. Основная логика работы будет строиться вокруг объекта РегламентныеЗадания.

Разберем пример кода для получения списка заданий на сервере. Создадим форму обработки, добавим таблицу значений СписокЗаданий и заполним ее:


&НаСервере
Процедура ОбновитьСписокЗаданийНаСервере()
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Наименование");
    ТЗ.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево"));
    ТЗ.Колонки.Добавить("Состояние");
    ТЗ.Колонки.Добавить("UUID");
    
    // Получаем все регламентные задания из базы
    Задания = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
    
    Для Каждого Задание Из Задания Цикл
        НоваяСтрока = ТЗ.Добавить();
        НоваяСтрока.Наименование = Задание.Метаданные.Синоним;
        НоваяСтрока.Использование = Задание.Использование;
        НоваяСтрока.Состояние = Задание.ПоследнееЗадание.Состояние;
        НоваяСтрока.UUID = Задание.УникальныйИдентификатор;
    КонецЦикла;
    
    ЗначениеВРеквизитФормы(ТЗ, "СписокЗаданий");
    
КонецПроцедуры

Для управления расписанием мы можем использовать стандартный диалог платформы. Рассмотрим, как вызвать форму редактирования расписания для конкретного задания:


&НаКлиенте
Процедура РедактироватьРасписание(Команда)
    
    ТекущиеДанные = Элементы.СписокЗаданий.ТекущиеДанные;
    Если ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    // Получаем текущее расписание с сервера
    Расписание = ПолучитьРасписаниеНаСервере(ТекущиеДанные.UUID);
    
    Диалог = Новый ДиалогРасписанияРегламентногоЗадания(Расписание);
    Если Диалог.ОткрытьМодально() Тогда
        УстановитьРасписаниеНаСервере(ТекущиеДанные.UUID, Диалог.Расписание);
    КонецЕсли;
    
КонецПроцедуры

Технические нюансы работы без БСП

Проанализируем важные отличия, которые необходимо учитывать при работе в конфигурациях без библиотек:

  1. Журнал регистрации: В консолях на БСП история выполнения подтягивается автоматически через механизмы логгирования подсистемы. В «голой» конфигурации нам придется самостоятельно использовать объект ЖурналРегистрации с отбором по ИмяПриложения (BackgroundJob) и метаданным, чтобы увидеть причины падения заданий.
  2. Файловый режим: Помним, что в файловой базе регламентные задания не выполняются сами по себе, если не запущен специальный сеанс. БСП умеет «подталкивать» выполнение через обработчик ожидания в пользовательском сеансе. В самописной консоли нам нужно будет либо держать открытым один сеанс с кодом ВыполнитьОбработкуЗаданий(), либо настроить параметр AllowExecuteScheduledJobs в строке соединения.
  3. Права доступа: Работа с объектом РегламентныеЗадания требует административных прав. При запуске под пользователем с ограниченными правами методы ПолучитьРегламентныеЗадания() вызовут исключение.

Подведем итог: Самый быстрый путь для получения консоли на управляемых формах — извлечение ее из демо-конфигурации «Управляемое приложение». Если же требуется глубокая диагностика, лучшим выбором станут «Инструменты разработчика» Сергея Старых. А для понимания внутренней механики платформы полезно реализовать простейшую форму управления через менеджер РегламентныеЗадания самостоятельно.

← На главную