Проблема с регламентным заданием. Далион Про

1. OLaF1973 2 09.01.20 10:09 Сейчас в теме
Доброго времени суток.

Прошу помочь разобраться. Платформа 8.3.1, Конфигурация Далион Про 1.2.51

Написал обработку для автоматического восстановления последовательности (написал громко сказано - взял кусок из штатной и подкорректировал).

В режиме клиента выполняется все правильно, А в режиме фонового задания попадает на исключение на строчке:
"Выборка.Регистратор.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);"

Может имеет значение, что тестирую на файловой базе. По результату будет крутиться на серверной ....

Процедура ВосстановитьПоследовательность(Знач ДатаОкончания = Неопределено) Экспорт
	
	Граница = Последовательности.ПартионныйУчет.ПолучитьГраницу(); 
	
	Запрос = Новый Запрос;
	
	Запрос.УстановитьПараметр("Граница"       , Граница); 
	Запрос.УстановитьПараметр("Дата"          , Граница.Дата); 

	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ПартионныйУчет.Регистратор,
	|	ПартионныйУчет.Период КАК Период,
	|	ПартионныйУчет.Регистратор.Проведен КАК Проведен
	|ИЗ
	|	Последовательность.ПартионныйУчет КАК ПартионныйУчет
	|ГДЕ
	|	ПартионныйУчет.МоментВремени > &Граница
	|	И ПартионныйУчет.Период >= &Дата
	|
	|УПОРЯДОЧИТЬ ПО
	|	Период,
	|	ПартионныйУчет.МоментВремени" ;
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		
		Попытка
		
			Выборка.Регистратор.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);

		Исключение
			
			#Если ТолстыйКлиентОбычноеПриложение Тогда
			Предупреждение("Операция не выполнена!");
			#Иначе
			Сообщить("Операция не выполнена!");
			#КонецЕсли

			Прервать;
			
		КонецПопытки;
		
	КонецЦикла;

КонецПроцедуры
Показать
Найденные решения
6. OLaF1973 2 09.01.20 13:28 Сейчас в теме
Касается конкретно конфигурации Далион УМ Про 1,2,51:

Любые операции проведения - запускают проверку на ключ защиты. Даже если поправить в конфигурации проверку ключа - дальше все равно ломается, надо пол модуля переписывать. Так-что при необходимости что-то автоматизировать связанное с проведением документов необходимо:
1. Создать специализированного пользователя;
2. В "Модуле обычного приложения" в "ПриНачалеРаботыСистемы()" Вставить что-то типа
Если  ТекущийПользователь.Имя = "ИмяПользователя"  Тогда
		
		Обработка =  Обработки.ВосстановлениеПоследовательности.ПолучитьФорму("Форма");
		Обработка.Открыть();
		//Обработки.ВосстановлениеПоследовательности.Создать().ВосстановлениеПоследовательности(); - а вот так тоже не сработает -((
				
	КонецЕсли;

3. В самой обработке отслеживать время выполнения (если надо), и при открытии запускать нужную процедуру.
4. В Windows в TaskManager добавить задачу типа
"C:\Program Files (x86)\1cv8\8.3.10.2580\bin\1cv8s.exe" с параметрами типа: Enterprise /S localhost/dalion /N "ИмяПользователя" /P "пароль"

Понимаю, что многим это итак понятно -), но вдруг кому-то пригодиться.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Гарин 1 09.01.20 10:17 Сейчас в теме
посмотрите что в описании ошибки выдает
3. OLaF1973 2 09.01.20 10:21 Сейчас в теме
глТекстОшибокПриПроведении "" Строка
ОписаниеОшибки() "" Строка

К сожалению ничего (результат из табло по прерыванию после исключения).
Может не то смотрю?
4. Гарин 1 09.01.20 10:28 Сейчас в теме
я бы добавил в исключение ЗаписьЖурналаРегистрации(...
5. OLaF1973 2 09.01.20 10:51 Сейчас в теме
Спасибо, натолкнул на мысль. Отключил попытку и наконец получил ошибку:

{ОбщийМодуль.ВосстановлениеПоследовательности.Модуль(65)}: Ошибка при вызове метода контекста (Записать)
Выборка.Регистратор.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{CommonModule.ПартионныйУчет.Module(3695)}: Ошибка при вызове метода контекста (Выполнить)

Сообщение пользователю:

{Обработка.ОбработкаЗащиты.МодульОбъекта(5)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,1)}: Переменная не определена (DalionGuardant)

Похоже Далион отказывается это делать без подключенного ключа защиты для данного пользователя, а для фонового задания - не подключает.

Печалька ....
6. OLaF1973 2 09.01.20 13:28 Сейчас в теме
Касается конкретно конфигурации Далион УМ Про 1,2,51:

Любые операции проведения - запускают проверку на ключ защиты. Даже если поправить в конфигурации проверку ключа - дальше все равно ломается, надо пол модуля переписывать. Так-что при необходимости что-то автоматизировать связанное с проведением документов необходимо:
1. Создать специализированного пользователя;
2. В "Модуле обычного приложения" в "ПриНачалеРаботыСистемы()" Вставить что-то типа
Если  ТекущийПользователь.Имя = "ИмяПользователя"  Тогда
		
		Обработка =  Обработки.ВосстановлениеПоследовательности.ПолучитьФорму("Форма");
		Обработка.Открыть();
		//Обработки.ВосстановлениеПоследовательности.Создать().ВосстановлениеПоследовательности(); - а вот так тоже не сработает -((
				
	КонецЕсли;

3. В самой обработке отслеживать время выполнения (если надо), и при открытии запускать нужную процедуру.
4. В Windows в TaskManager добавить задачу типа
"C:\Program Files (x86)\1cv8\8.3.10.2580\bin\1cv8s.exe" с параметрами типа: Enterprise /S localhost/dalion /N "ИмяПользователя" /P "пароль"

Понимаю, что многим это итак понятно -), но вдруг кому-то пригодиться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот