Коллеги, добрый день. будьте добры подскажите пожалуйста, второй день бьюсь не могу понять почему обработка не запускается по расписанию. Вот код:
Что самое интересное, если убрать комментарий на проверку Рабочая база или нет то этот код срабатывает, если команду запускаю из формы обработки и отладчиком иду по коду то все работает, а вот по расписанию ничего не происходит, подскажите пожалуйста в чем ошибка?
&НаСервере
Процедура кнЗапуститьАвтоматическоеВыполнениеНаСервере() Экспорт
ЗначениеОбъекта = РеквизитФормыВЗначение("Объект");
ЗначениеОбъекта.ВыполнитьКоманду("Команда_Выгрузить");
ЗначениеВРеквизитФормы(ЗначениеОбъекта, "Объект");
КонецПроцедуры
&НаКлиенте
Процедура кнЗапуститьАвтоматическоеВыполнение(Команда)Экспорт
кнЗапуститьАвтоматическоеВыполнениеНаСервере();
КонецПроцедуры
Это процедуры в модуле формы.
Перем Команда_ФормаВыгрузить Экспорт;
Перем Команда_Выгрузить Экспорт;
Перем ИмяФайлаЛОГа Экспорт;
Перем ПолныйПутьКФайлуЛОГа Экспорт;
Перем ЗаписьЛога Экспорт;
Функция СведенияОВнешнейОбработке() Экспорт
ИмяОбработки = Метаданные().Представление();
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Назначение", Неопределено);
ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = '" + ИмяОбработки + "'"));
ПараметрыРегистрации.Вставить("Версия", "3.2");
ПараметрыРегистрации.Вставить("БезопасныйРежим", ложь);
ПараметрыРегистрации.Вставить("Информация", НСтр("ru = '" + ИмяОбработки + "'"));
//ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = '" + ИмяОбработки + " (форма)'"),
Команда_ФормаВыгрузить,
"ОткрытиеФормы",
Истина);
ДобавитьКоманду(ТаблицаКоманд,
НСтр("ru = '" + ИмяОбработки + " (по расписанию)'"),
КомандаСоздать,
"ВызовСерверногоМетода",
Истина);
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
/////////////////////////////////////////////////////////////////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
УстановитьПривилегированныйРежим(Истина);
//
//{Проверка, что база Рабочая
Если ИдентификаторКоманды = "Команда_Создать" Тогда
//СтрокаСоединенияИнформационнойБазы = Врег(СтрокаСоединенияИнформационнойБазы());
//СтрокаСоединенияИнформационнойБазы = СтрЗаменить(СтрокаСоединенияИнформационнойБазы, ".RU55", "");
//СтрокаСоединенияИнформационнойБазы = СтрЗаменить(СтрокаСоединенияИнформационнойБазы, ".LOCAL", "");
//Если СтрокаСоединенияИнформационнойБазы = ВРег(константы.Реактор_ПутьРабочейБазы.Получить()) Тогда
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю("ЭТО РАБОЧАЯ");
//Иначе
//
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю("" + ВРег(СтрокаСоединенияИнформационнойБазы()));
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю("" + ВРег(Константы.Реактор_ПутьРабочейБазы.Получить()));
// ВызватьИсключение "ЭТО КОПИЯ ЗАПУСК ФОНОВЫХ ЗАДАНИЙ ЗАПРЕЩЕН!!!"
// + Символы.ПС + ВРег(СтрокаСоединенияИнформационнойБазы())
// + Символы.ПС + ВРег(Константы.Реактор_ПутьРабочейБазы.Получить());
//КонецЕсли;
//КонецЕсли;
//}Проверка, что база Рабочая
ВыгрузитьОстатки();
КонецПроцедуры
ПоказатьЧто самое интересное, если убрать комментарий на проверку Рабочая база или нет то этот код срабатывает, если команду запускаю из формы обработки и отладчиком иду по коду то все работает, а вот по расписанию ничего не происходит, подскажите пожалуйста в чем ошибка?
По теме из базы знаний
- Запуск любой внешней обработки по расписанию
- Запуск обработок по расписанию, не меняя конфигурации
- Обработка 7.7 по расписанию
- Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска
- Выполнение внешней обработки по расписанию для управляемого и обычного приложения
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот