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

Конфигуратор > Конфигурация > Общие модули / ПроведениеДокументовБП - ПКМ Добавить в расширение / вставил код

```1c
    Процедура ДК1_ОбработкаПроведенияФормированиеЗаписейРаздела7ДекларацииНДС(Документ, Движения, Отказ) Экспорт
```

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

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

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

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

Запускаю на отладке:
1С:Предприятие > Администрование > Регламентные операции > Регламентные и фоновые задания > ДК1 перепроведение ПКО > Выполнить сейчас - при выполнении пишет: "Недостаточно фактических параметров для метода фонового задания". При том, что в расширение отладчик даже не заходит.
---
Всё получилось. Вот рабочий код расширения Общий модуль ПроведениеДокументовБП: Модуль

```1c
    Процедура ВыполнитьКоманду() Экспорт

    ИмяСобытия = НСтр("ru = 'ДК1_ПерепроведениеПКО'", ОбщегоНазначения.КодОсновногоЯзыка());
    Комментарий = НСтр("ru = 'Задание выполнено!'", ОбщегоНазначения.КодОсновногоЯзыка());
    ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Примечание, , , Комментарий);

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

    КонецПроцедуры
```
---
При том, что в расширение отладчик даже не заходит.
Может галка "Фоновые задания" не стоит в настройках автоподключения отладчика.
---
Спасибо.
Галочку проставил. Теперь в самих фоновых заданиях не определено регламентное.

Здесь прописывается ()?

```1c
    ВыборкаПКОДокументы = Документы.ПриходныйКассовыйОрдер.Выбрать();
```
---
Фоновые задания проходят, но Задание завершено с ошибками

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

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

 //ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
 ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(Документ);

 ПараметрыПроведения = ДК1_ПодготовитьПараметрыПроведения(Документ.Ссылка, Отказ);

 Если Документ.РучнаяКорректировка Тогда
  Возврат;
 КонецЕсли;

 Если Отказ Тогда
  Возврат;
 КонецЕсли;

 // ФОРМИРОВАНИЕ ДВИЖЕНИЙ
 СформироватьДвиженияРаздела7ДекларацииНДС(
  ПараметрыПроведения.ТаблицаЗаписиРаздела7, Движения, Отказ);

 СформироватьДвиженияСписаниеНеоблагаемыхНДСОпераций(
  ПараметрыПроведения.ТаблицаНеоблагаемыеОперации, Движения, Отказ);

 РегистрыСведений.ВыполнениеРегламентныхОперацийНДС.СформироватьДвиженияФактВыполненияРегламентнойОперации(
  ПараметрыПроведения.ДанныеРегламентнойОперации, Отказ);

 ПроведениеСервер.УстановитьЗаписьОчищаемыхНаборовЗаписей(Документ);

КонецПроцедуры

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

 ПараметрыПроведения = Новый Структура;

 Запрос = Новый Запрос;

 Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
 Запрос.Текст = ТекстЗапросаРеквизитыДокумента();
 Результат = Запрос.Выполнить();
 ПараметрыПроведения.Вставить("Реквизиты", Результат.Выгрузить());
 Реквизиты = ПараметрыПроведения.Реквизиты[0];

 Если НЕ УчетнаяПолитика.Существует(Реквизиты.Организация, Реквизиты.Период, Истина, ДокументСсылка) Тогда
  Отказ = Истина;
  Возврат ПараметрыПроведения;
 КонецЕсли;

 Запрос.УстановитьПараметр("Организация", Реквизиты.Организация);
 Запрос.УстановитьПараметр("ДатаДокумента", Реквизиты.Период);
 Запрос.УстановитьПараметр("ДатаГраница", Новый Граница(КонецДня(Реквизиты.Период), ВидГраницы.Включая));
 Запрос.УстановитьПараметр("КодыРеализацийНеНаТерриторииРФ",
  Справочники.КодыОперацийРаздела7ДекларацииПоНДС.КодыРеализацииНеНаТерриторииРФ());
 Запрос.УстановитьПараметр("ПравилаЗаполненияДекларацииС4кв2020",
  УчетНДС.ПравилаЗаполненияДекларацииС4кв2020(Реквизиты.Период));

 НомераТаблиц = Новый Структура;
 Запрос.Текст = ТекстЗапросаЗаписиРаздела7(НомераТаблиц)
  + ТекстЗапросаНеоблагаемыеНДСОперации(НомераТаблиц)
  + ТекстЗапросаПоФормированиюРегламентнойОперации(НомераТаблиц);

 Результат = Запрос.ВыполнитьПакет();

 Для каждого НомерТаблицы Из НомераТаблиц Цикл
  ПараметрыПроведения.Вставить(НомерТаблицы.Ключ, Результат[НомерТаблицы.Значение].Выгрузить());
 КонецЦикла;

 Возврат ПараметрыПроведения;

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

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

КонецФункции

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

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

UPD:
https://dzen.ru/a/Y492fsOVOURrzdzA - п.2, ещё, как вариант, пытался переопределить регламентное задание конфигурации ЗагрузкаКурсовВалют, тоже не срабатывает
---
Всё получилось. Вот рабочий код расширения Общий модуль ПроведениеДокументовБП: Модуль

```1c
    Процедура ВыполнитьКоманду() Экспорт

    ИмяСобытия = НСтр("ru = 'ДК1_ПерепроведениеПКО'", ОбщегоНазначения.КодОсновногоЯзыка());
    Комментарий = НСтр("ru = 'Задание выполнено!'", ОбщегоНазначения.КодОсновногоЯзыка());
    ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Примечание, , , Комментарий);

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

    КонецПроцедуры
```