Регламентное задание на ПКО через расширение

1. user2070470 03.10.24 10:40 Сейчас в теме
БП Корп 8.3.25.1374/3.0.161.19
Задача: реализовать групповое проведение документов ПКО через регламентное задание в расширении.
Реализовывал по Радченко М. Г., Хрусталева Е. Ю. 1С:Предприятие 8.P. Практическое пособие разработчика. 20 занятие

Конфигуратор > Конфигурация > Общие модули / ПроведениеДокументовБП - ПКМ Добавить в расширение / вставил код
Процедура ДК1_ОбработкаПроведенияФормированиеЗаписейРаздела7ДекларацииНДС(Документ, Движения, Отказ) Экспорт

Функция ДК1_ПодготовитьПараметрыПроведения(ДокументСсылка, Отказ) Экспорт
, куда добавил:

 ВыборкаПКОДокументы = Документы.ПриходныйКассовыйОрдер.Выбрать(); 	// Создаём выборку документов ПКО, которые нужно перепровести - сюда вписывать?

	Пока ВыборкаПКОДокументы.Следующий() Цикл
		Попытка 							//Попробуем перепровести документ. Обработка Ошибок: Попытка - Исключение
			Документ = ВыборкаПКОДокументы.ПолучитьОбъект();
			Документ.Перепровести(); 				//Метод Перепровести()
			Сообщить("Документ ПКО " + Документ.Номер + " успешно перепроведен.", СтатусСообщения.Информация)
		Исключение
			Сообщить("Ошибка перепроведения документа ПКО " + ВыборкаПКОДокументы.Номер + ": " + ОписаниеОшибки(), СтатусСообщения.Ошибка);
		КонецПопытки;
	КонецЦикла;
Показать


Конфигуратор > ДоработкаКорп > Общие > Регламентрые задания > ПерепроведениеПКО / имя метода: ПроведениеДокументовБП.ДК1_ПодготовитьПараметрыПроведения
Предопределенное

Запускаю на отладке:
1С:Предприятие > Администрование > Регламентные операции > Регламентные и фоновые задания > ДК1 перепроведение ПКО > Выполнить сейчас - при выполнении пишет: "Недостаточно фактических параметров для метода фонового задания". При том, что в расширение отладчик даже не заходит.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. user2070470 21.10.24 07:11 Сейчас в теме
Всё получилось. Вот рабочий код расширения Общий модуль ПроведениеДокументовБП: Модуль
 Процедура ВыполнитьКоманду() Экспорт
	 
	 ИмяСобытия = НСтр("ru = 'ДК1_ПерепроведениеПКО'", ОбщегоНазначения.КодОсновногоЯзыка());
	 Комментарий = НСтр("ru = 'Задание выполнено!'", ОбщегоНазначения.КодОсновногоЯзыка());
	 ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Примечание, , , Комментарий);
	 	 
	 // Получить ссылки на проведенные документы в требуемом интервале
	 Запрос = Новый Запрос();
	 Запрос.Текст =
	 "ВЫБРАТЬ
	 |  ПриходныйКассовыйОрдер.Ссылка
	 |ИЗ
	 |  Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
	 |ГДЕ
	 |  ПриходныйКассовыйОрдер.Дата = &ТекущаяДата И
	 |  ПриходныйКассовыйОрдер.Проведен = ИСТИНА";     
	Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
	 Результат = Запрос.Выполнить();
	 Выборка = Результат.Выбрать();
	 Пока Выборка.Следующий() Цикл
		 // Перепровести каждый документ неоперативно
		 Документ = Выборка.Ссылка.ПолучитьОбъект(); 
		 Документ.Дата = ТекущаяДата();
		 Попытка
			 Документ.Записать(РежимЗаписиДокумента.Проведение); 
			 Сообщить("Документ ПКО " + Документ.Номер + " успешно перепроведен.", СтатусСообщения.Информация)
		 Исключение
			 Сообщить("Ошибка перепроведения документа ПКО " + Документ.Номер + ": " + ОписаниеОшибки(), СтатусСообщения.Ошибка);
		 КонецПопытки;
	 КонецЦикла;
	 
 КонецПроцедуры  
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BarsukM 03.10.24 12:37 Сейчас в теме
При том, что в расширение отладчик даже не заходит.

Может галка "Фоновые задания" не стоит в настройках автоподключения отладчика.
user2070470; +1 Ответить
3. user2070470 04.10.24 07:15 Сейчас в теме
(2) Спасибо.
Галочку проставил. Теперь в самих фоновых заданиях не определено регламентное.

Здесь прописывается ()?
ВыборкаПКОДокументы = Документы.ПриходныйКассовыйОрдер.Выбрать(); 
Прикрепленные файлы:
4. user2070470 04.10.24 08:50 Сейчас в теме
Фоновые задания проходят, но Задание завершено с ошибками

В скопированном с конфигурации в расширение Общие модули / ПроведениеДокументовБП переопределены две процедуры:

&Вместо("ОбработкаПроведенияФормированиеЗаписейРаздела7ДекларацииНДС­")
ДК1_ОбработкаПроведенияФормированиеЗаписейРаздела7Декларации­НДС


&Вместо("ВПодготовитьПараметрыПроведения") со вставкой кода на автоматическое перепроведение документов ПКО
ДК1_ПодготовитьПараметрыПроведения


Отладчик до этих процедур не доходит.
Прикрепленные файлы:
5. user1837694 16.10.24 00:50 Сейчас в теме
Попробовал реализовать групповое проведение документов ПКО через регламентное задание не через расширение, а через созданную обработку РегламетноеЗадание.epf с тем же кодом в функциональной части, что и в расширении.

И опять при запуске ДК1 перепроведение ПКО отладчик в обработку не заходит, как так?

UPD:
https://dzen.ru/a/Y492fsOVOURrzdzA - п.2, ещё, как вариант, пытался переопределить регламентное задание конфигурации ЗагрузкаКурсовВалют, тоже не срабатывает
Прикрепленные файлы:
РегламетноеЗадание.epf
6. user2070470 21.10.24 07:11 Сейчас в теме
Всё получилось. Вот рабочий код расширения Общий модуль ПроведениеДокументовБП: Модуль
 Процедура ВыполнитьКоманду() Экспорт
	 
	 ИмяСобытия = НСтр("ru = 'ДК1_ПерепроведениеПКО'", ОбщегоНазначения.КодОсновногоЯзыка());
	 Комментарий = НСтр("ru = 'Задание выполнено!'", ОбщегоНазначения.КодОсновногоЯзыка());
	 ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Примечание, , , Комментарий);
	 	 
	 // Получить ссылки на проведенные документы в требуемом интервале
	 Запрос = Новый Запрос();
	 Запрос.Текст =
	 "ВЫБРАТЬ
	 |  ПриходныйКассовыйОрдер.Ссылка
	 |ИЗ
	 |  Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
	 |ГДЕ
	 |  ПриходныйКассовыйОрдер.Дата = &ТекущаяДата И
	 |  ПриходныйКассовыйОрдер.Проведен = ИСТИНА";     
	Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
	 Результат = Запрос.Выполнить();
	 Выборка = Результат.Выбрать();
	 Пока Выборка.Следующий() Цикл
		 // Перепровести каждый документ неоперативно
		 Документ = Выборка.Ссылка.ПолучитьОбъект(); 
		 Документ.Дата = ТекущаяДата();
		 Попытка
			 Документ.Записать(РежимЗаписиДокумента.Проведение); 
			 Сообщить("Документ ПКО " + Документ.Номер + " успешно перепроведен.", СтатусСообщения.Информация)
		 Исключение
			 Сообщить("Ошибка перепроведения документа ПКО " + Документ.Номер + ": " + ОписаниеОшибки(), СтатусСообщения.Ошибка);
		 КонецПопытки;
	 КонецЦикла;
	 
 КонецПроцедуры  
Показать
Оставьте свое сообщение

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