1С 8.3 Управление расписанием регламентного задания
Данные > Примеры кода 1С > 1С 8.3 Приложение, система, интерфейс
Перейти в раздел примеры кода 1С 8.3:
Модуль управления расписанием предопределенного регламентного задания "ЗагрузкаДанныхСКасс".
Предназначен для:
- Настройки расписания автоматической загрузки данных с кассовых аппаратов
- Открытия стандартного диалога платформы для редактирования расписания
- Сохранения пользовательских настроек расписания на сервере
- Обработки ошибок поиска и записи регламентного задания
Структура:
- НастройкаЗадания() - открывает диалог редактирования
- РасписаниеЗагрузкиСКасс() - получает текущее расписание с сервера
- ПриЗакрытииФормыРасписания() - обработчик сохранения изменений
- СохранитьРасписание() - записывает новое расписание на сервер
Использование:
Вызывается из формы по кнопке "Настроить расписание загрузки с касс".
Требования:
- Доступ к метаданным.РегламентныеЗадания.ЗагрузкаДанныхСКасс
- Права на изменение свойств регламентных заданий
Управления расписанием предопределенного регламентного задания в 1С 8.3:
// Процедура открывает диалог настройки расписания предопределенного регламентного задания "ЗагрузкаДанныхСКасс"
&НаКлиенте
Процедура НастроитьЗадание(Команда)
// Получаем текущее расписание регламентного задания с сервера
РасписаниеРегламентногоЗадания = РасписаниеЗагрузкиСКасс();
// Создаем диалог для редактирования расписания
ДиалогРасписания = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеРегламентногоЗадания);
// Настраиваем оповещение для обработки результата редактирования
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗакрытииФормыРасписания", ЭтотОбъект);
ДиалогРасписания.Показать(ОписаниеОповещения);
КонецПроцедуры
// Возвращает текущее расписание предопределенного регламентного задания "ЗагрузкаДанныхСКасс"
// @return РасписаниеРегламентногоЗадания - текущее расписание или Неопределено при ошибке
&НаСервереБезКонтекста
Функция РасписаниеЗагрузкиСКасс()
Попытка
// Ищем предопределенное регламентное задание по метаданным
РегЗадание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ЗагрузкаДанныхСКасс);
// Проверяем, что задание найдено
Если РегЗадание = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат РегЗадание.Расписание;
Исключение
// В случае ошибки возвращаем Неопределено
Возврат Неопределено;
КонецПопытки;
КонецФункции
// Обработчик закрытия диалога расписания (вызывается автоматически)
// Параметры:
// ПараметрРасписание - РасписаниеРегламентногоЗадания, Неопределено - выбранное пользователем расписание
// ДополнительныеПараметры - Неопределено - зарезервировано платформой
&НаКлиенте
Процедура ПриЗакрытииФормыРасписания(ПараметрРасписание, ДополнительныеПараметры) Экспорт
// Проверяем, что пользователь выбрал расписание (не нажал Отмена)
Если ПараметрРасписание <> Неопределено Тогда
// Сохраняем новое расписание на сервере
СохранитьРасписание(ПараметрРасписание);
КонецЕсли;
КонецПроцедуры
// Сохраняет новое расписание в свойствах регламентного задания на сервере
// Параметры:
// РасписаниеРегЗадания - РасписаниеРегламентногоЗадания - новое расписание для записи
&НаСервере
Процедура СохранитьРасписание(РасписаниеРегЗадания)
Перем Задание;
Попытка
// Находим предопределенное регламентное задание
Задание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ЗагрузкаДанныхСКасс);
// Проверяем существование задания
Если Задание = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Регламентное задание ""ЗагрузкаДанныхСКасс"" не найдено'");
КонецЕсли;
// Устанавливаем новое расписание и активируем задание
Задание.Расписание = РасписаниеРегЗадания;
Задание.Использование = Истина;
// Сохраняем изменения
Задание.Записать();
Исключение
// Выводим сообщение об ошибке пользователю
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон(НСтр("ru = 'Ошибка сохранения расписания: %1'"), ОписаниеОшибки()));
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура НастроитьЗадание(Команда)
// Получаем текущее расписание регламентного задания с сервера
РасписаниеРегламентногоЗадания = РасписаниеЗагрузкиСКасс();
// Создаем диалог для редактирования расписания
ДиалогРасписания = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеРегламентногоЗадания);
// Настраиваем оповещение для обработки результата редактирования
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗакрытииФормыРасписания", ЭтотОбъект);
ДиалогРасписания.Показать(ОписаниеОповещения);
КонецПроцедуры
// Возвращает текущее расписание предопределенного регламентного задания "ЗагрузкаДанныхСКасс"
// @return РасписаниеРегламентногоЗадания - текущее расписание или Неопределено при ошибке
&НаСервереБезКонтекста
Функция РасписаниеЗагрузкиСКасс()
Попытка
// Ищем предопределенное регламентное задание по метаданным
РегЗадание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ЗагрузкаДанныхСКасс);
// Проверяем, что задание найдено
Если РегЗадание = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат РегЗадание.Расписание;
Исключение
// В случае ошибки возвращаем Неопределено
Возврат Неопределено;
КонецПопытки;
КонецФункции
// Обработчик закрытия диалога расписания (вызывается автоматически)
// Параметры:
// ПараметрРасписание - РасписаниеРегламентногоЗадания, Неопределено - выбранное пользователем расписание
// ДополнительныеПараметры - Неопределено - зарезервировано платформой
&НаКлиенте
Процедура ПриЗакрытииФормыРасписания(ПараметрРасписание, ДополнительныеПараметры) Экспорт
// Проверяем, что пользователь выбрал расписание (не нажал Отмена)
Если ПараметрРасписание <> Неопределено Тогда
// Сохраняем новое расписание на сервере
СохранитьРасписание(ПараметрРасписание);
КонецЕсли;
КонецПроцедуры
// Сохраняет новое расписание в свойствах регламентного задания на сервере
// Параметры:
// РасписаниеРегЗадания - РасписаниеРегламентногоЗадания - новое расписание для записи
&НаСервере
Процедура СохранитьРасписание(РасписаниеРегЗадания)
Перем Задание;
Попытка
// Находим предопределенное регламентное задание
Задание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ЗагрузкаДанныхСКасс);
// Проверяем существование задания
Если Задание = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Регламентное задание ""ЗагрузкаДанныхСКасс"" не найдено'");
КонецЕсли;
// Устанавливаем новое расписание и активируем задание
Задание.Расписание = РасписаниеРегЗадания;
Задание.Использование = Истина;
// Сохраняем изменения
Задание.Записать();
Исключение
// Выводим сообщение об ошибке пользователю
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон(НСтр("ru = 'Ошибка сохранения расписания: %1'"), ОписаниеОшибки()));
КонецПопытки;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник