Зависшие задачи в 1С. Документообороте

1. user714249 01.12.17 09:51 Сейчас в теме
Добрый день уважаемые коллеги, помогите пожалуйста разобраться с проблемой. Летом в компании был осуществлен переход на ДО КОРП ред.2.1 (2.1.5.6 релиз ) с предыдущей версии, недавно я заметила, что в системе с 2014 года по ряду задач (согласование, ознакомление, исполнение) зависли процессы, выглядит это так как на картинке под цифрой 1, когда заходишь в саму задачу там появляется оповещение (цифра 2)" Задача находится в очереди для выполнения. Выполнение задачи произойдет автоматически в ближайшее время." - нет возможности даже от Администратора нажать на кнопку "исполнить" т.к. ее там просто нет.

Когда такая проблема возникает с актуальными документами 2017 года, например ноябрьские смотрели, то просто выкидываем пользователей, которые мешают друг другу работе с документом и вроде все налаживается, но предыдущие так и висят.

Пробовала выполнять "Фоновое задание" вручную - не помогло.
Попыталась через Эскалацию задач решить вопрос, указав необходимые условия, тоже не помогло.

Что можете посоветовать ? ....
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user714249 01.12.17 09:53 Сейчас в теме
Я только зарегистрировалась на форуме, буду рада если смогу помочь коллегам решать свои вопросы

Добрый день уважаемые коллеги, помогите пожалуйста разобраться с проблемой. Летом в компании был осуществлен переход на ДО КОРП ред.2.1 (2.1.5.6 релиз ) с предыдущей версии, недавно я заметила, что в системе с 2014 года по ряду задач (согласование, ознакомление, исполнение) зависли процессы, выглядит это так как на картинке под цифрой 1, когда заходишь в саму задачу там появляется оповещение (цифра 2)" Задача находится в очереди для выполнения. Выполнение задачи произойдет автоматически в ближайшее время." - нет возможности даже от Администратора нажать на кнопку "исполнить" т.к. ее там просто нет.

Когда такая проблема возникает с актуальными документами 2017 года, например ноябрьские смотрели, то просто выкидываем пользователей, которые мешают друг другу работе с документом и вроде все налаживается, но предыдущие так и висят.

Пробовала выполнять "Фоновое задание" вручную - не помогло.
Попыталась через Эскалацию задач решить вопрос, указав необходимые условия, тоже не помогло.

Что можете посоветовать ? ....
Прикрепленные файлы:
3. kolya_tlt 86 01.12.17 09:59 Сейчас в теме
могу посоветовать обновиться и написать в поддержку http://vk.com/1c.doc8
4. vnagapov 01.12.17 10:01 Сейчас в теме
Проверьте по журналу регистраций с отбором "РегламентыеЗадания - Фоновое выполнение задач" на ошибки и предупреждения. Скорее всего задача не может выполниться из-за ошибки прав.
5. CyberBob 4 01.12.17 10:29 Сейчас в теме
Очередь хранится в регистре сведений ЗадачиДляВыполнения. Можно попробовать удалить зависшие задачи. Только учтите, удаляется не задача, а только очередь. У меня после удаления очереди задачи стартовали сами.
MaxTolya; user809597; +2 Ответить
6. user714249 01.12.17 15:56 Сейчас в теме
(5) Данный вариант помог избавиться от тех заявок которые либо на паузе были, либо желтый значок был.

А причиной отмены выполнения является

Во время выполнения этой задачи произошла ошибка:
{ОбщийМодуль.ВыполнениеЗадачСервер.Модуль(313)}: Ошибка при вызове метода контекста (ВыполнитьЗадачу)
ЗадачаОбъект.ВыполнитьЗадачу();
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.РаботаСВизамиСогласования.Модуль(425)}: Ошибка при вызове метода контекста (Записать)
ОбъектВизы.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.РаботаСРабочимиГруппами.Модуль(


Задачи которые с той стрелочкой так и не появились тут (
7. Minakov00078 38 23.05.18 16:14 Сейчас в теме
Столкнулся с подобной проблемой при согласовании задачи по почте, пока ищу решение.
8. sergathome 4 23.05.18 16:28 Сейчас в теме
Имел щастье после обновления с интернешнл версии. Почему-то некоторые задачи, сформированные в ней, оказались принадлежащими другому узлу обмена, а стандартный исполнитель задач его проверяет ! Ниже решение проблемы - модифицированный исполнитель, не проверяющий узла.
Проталкивает сразу все повисшие задачи.
&НаСервере
// Обработчик рег. задания ВыполнениеЗадач
//
Процедура ВыполнениеЗадач() Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	ЭтотУзелОбмена = РаботаСБизнесПроцессами.ЭтотУзелОбменаДляОбработкиПроцессов();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗадачиДляВыполнения.Задача,
		|	ЗадачиДляВыполнения.Параметры,
		|	ЗадачаИсполнителя.Исполнитель,
		|	ЗадачаИсполнителя.Выполнена,
		|	ЗадачиДляВыполнения.КоличествоПопытокОбработки,
		|	ДанныеБизнесПроцессов.УзелОбмена КАК УзелОбмена
		|ИЗ
		|	РегистрСведений.ЗадачиДляВыполнения КАК ЗадачиДляВыполнения
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
		|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеБизнесПроцессов КАК ДанныеБизнесПроцессов
		|			ПО ЗадачаИсполнителя.БизнесПроцесс = ДанныеБизнесПроцессов.БизнесПроцесс
		|		ПО ЗадачиДляВыполнения.Задача = ЗадачаИсполнителя.Ссылка
		|ГДЕ
//		|	ДанныеБизнесПроцессов.УзелОбмена = &ЭтотУзелОбмена И
		|	ЗадачиДляВыполнения.СостояниеВыполнения = ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.ГотоваКВыполнению)
		|	И ЗадачиДляВыполнения.КоличествоПопытокОбработки <= 3
		|	И ДанныеБизнесПроцессов.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Активен)
		|	И ЗадачаИсполнителя.ПометкаУдаления = ЛОЖЬ
		|
		|УПОРЯДОЧИТЬ ПО
		|	ЗадачиДляВыполнения.МоментВремени";
		
//	Запрос.УстановитьПараметр("ЭтотУзелОбмена", ЭтотУзелОбмена);
		
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		Блокировка = Новый БлокировкаДанных;
		ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ЗадачиДляВыполнения");
		ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
		ЭлементБлокировки.УстановитьЗначение("Задача", Выборка.Задача);
		
		НачатьТранзакцию();
		
		// Пытаемся заблокировать задачу и запись в регистре ЗадачиДляВыполнения.
		// Если не удается, то пропускаем задачу и пробуем выполнить при след. обработке.
		Попытка
			ЗаблокироватьДанныеДляРедактирования(Выборка.Задача);
			Блокировка.Заблокировать();
		Исключение
			ОтменитьТранзакцию();
			Продолжить;
		КонецПопытки;
		
		Попытка
			
			РегистрыСведений.ЗадачиДляВыполнения.УдалитьЗадачуИзОчереди(Выборка.Задача);
			
			Если Не Выборка.Выполнена Тогда
			
				ЗадачаОбъект = Выборка.Задача.ПолучитьОбъект();
				
				лПараметры = Выборка.Параметры.Получить();
				Если ТипЗнч(лПараметры) <> Тип("Структура") Тогда
					лПараметры = Новый Структура;
				КонецЕсли;
				
				КлючеваяОперация = ИмяКлючевойОперацииДляЗадачи(ЗадачаОбъект, лПараметры);
				
				ПроцессОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
				ПроцессОбъект.ОбменДанными.Загрузка = Истина;
				лУзелОбменаБП = ПроцессОбъект.УзелОбмена;
				ПроцессОбъект.УзелОбмена = ЭтотУзелОбмена;
				ПроцессОбъект.Записать();
				
				ВыполнениеЗадачСервер.ВыполнитьЗадачуСПараметрами(ЗадачаОбъект, лПараметры);
				
				// Проверяем права участников на предметы процесса, чтобы
				// уведомить автора, о том, что в процессе есть недоступные предметы участникам
				// и они не смогут выполнить свои задачи.
				ПроцессОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
				ПроцессОбъект.ОбменДанными.Загрузка = Истина;
				ПроцессОбъект.УзелОбмена = лУзелОбменаБП;
				ПроцессОбъект.Записать();
				ПроцессОбъект.ОбменДанными.Загрузка = Ложь;
				АвторПроцесса = РаботаСБизнесПроцессами.АвторПроцессаЗадачи(ПроцессОбъект);
				МультипредметностьКОРП.ПроверитьПраваУчастниковПроцессаИОтправитьУведомления(ПроцессОбъект, АвторПроцесса);
				
			КонецЕсли;
			
			РазблокироватьДанныеДляРедактирования(Выборка.Задача);
			
			ЗафиксироватьТранзакцию();
			
		Исключение
			
			ИнформацияОбОшибке = ИнформацияОбОшибке();
			
			Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
			
			ОтменитьТранзакцию();
			
		КонецПопытки;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
9. Minakov00078 38 23.05.18 17:49 Сейчас в теме
Решение для меня было следующим: я зашел в регистр сведений: Задачи для выполнения и удалил "зависшую задачу", после этого в бизнес-процессе по данной задаче стали доступны кнопки, в том числе "Согласовать", вручную я двинул процесс дальше.
Прикрепленные файлы:
10. Gray-SV-02 21.06.18 10:21 Сейчас в теме
у нас тоже были похожие проблемы (при переходе с 1.2.8.1 на 2.0.18.1 - прошли 2 промежуточных обновления).
в итоге - решили отключить в настройках программы "Использовать фоновый старт процессов", "Использовать фоновое выполнение задач" (у разработчиков была ошибка в коде...в общем быстрее сами поправили видимость этой галочки, т.к. у нас есть синхронизация). Сейчас возможно в новых версиях можно спокойно отключить фоновое выполнение.
По поводу узлов - у нас раньше был настроен РИБ, но уже лет 5 не использовался. и вот при обновлении из-за него пошли разные узлы для процессов (в РС.БизнесПроцессы). нам разработчики прислали обработку по изменению номера узла.
user1114234; +1 Ответить
11. user1114234 21.07.20 08:07 Сейчас в теме
(10)Тоже самое было. У нового узла был идентификатор 0000-0000..., а старый перестал играть роль, так как у него ЭтотУзел = Ложь. Решил удаление нового узла (0000-0000...) и присвоением старому узлу ЭтотУзел = Истина.
Вот примерно как тут, в самом низу
https://forum.infostart.ru/forum81/topic153154/
12. user1114234 21.07.20 09:47 Сейчас в теме
Ещё проблема возникла, что за день пока разбирался, насоздавались процессы с новым идентификатором Узла Обмена. Не сразу допёр как провести объект бизнес процесса по регистрам. Записывал через ОбменДанных.Загрузка, хотя не стоило - в этом случае регистры оставались с нулевым идентификатором.

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

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