Добавил в общий модуль процедуру выполнения фонового задания.
В само задание передаю в качестве параметра массив значений:

```1c
    ПараметрыФЗ = Новый Массив();
    ПараметрыФЗ.Добавить(СписокНоменклатур); //это список значений
    ПараметрыФЗ.Добавить(Параметры.ДатаНачала);
    ПараметрыФЗ.Добавить(Параметры.ДатаОкончания);
    ПараметрыФЗ.Добавить(Подразделение.Значение);
    Задание = ФоновыеЗадания.Выполнить("РасчетФоновоеВыполнение.Расчитать", ПараметрыФЗ, Строка(Новый УникальныйИдентификатор()), НаименованиеЗадания);
```

Проходит все без ошибок, но в ЖР вижу, что задание выполнено якобы с ошибками, много фактических параметров для метода фонового задания.

Задание не предопределенное.
Как можно исправить ситуацию?
---
ошибка была в том, что в вызываемой процедуре было мало входящих параметров.
Для этого и было сказано, чтобы увеличить их в самой процедуре.

```1c
    Процедура Расчитать(СписокНоменклатур, ДатаНачала, ДатаОкончания, Подразделение) Экспорт
```

Вот теперь сделано правильно. Но зачем-то и месте вызова поменяли.

Поймите главное. Даже в (11) привели информацию из СП.
В вызове метода Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>) должно быть только 4 параметра и 2 параметр это массив, в котором каждый добавленный элемент это и есть добавленный параметр в порядке следования входящих параметров процедуры для вызова в фоновом задании.

Итого должно быть так:
Вызов фонового задания:

```1c
    ПараметрыФЗ = Новый Массив();
    ПараметрыФЗ.Добавить(СписокНоменклатур); //это список значений
    ПараметрыФЗ.Добавить(Параметры.ДатаНачала);
    ПараметрыФЗ.Добавить(Параметры.ДатаОкончания);
    ПараметрыФЗ.Добавить(Подразделение.Значение);
    Задание = ФоновыеЗадания.Выполнить("РасчетФоновоеВыполнение.Расчитать", ПараметрыФЗ, Строка(Новый УникальныйИдентификатор()), НаименованиеЗадания);
```

Процедура вызываемая в фоновом задании:

```1c
    Процедура Расчитать(СписокНоменклатур, ДатаНачала, ДатаОкончания, Подразделение) Экспорт
    ...
```

Вот так должно отрабатывать.
---
у процедуры РасчетФоновоеВыполнение.Расчитать сколько входных параметров?
---
один, он же массив.
---
а передаете в него аж 4 параметра. Каждый элемент массива ПараметрыФЗ это отдельный параметр для выполняемой процедуры в фоновом задании, в порядке следования.
---
и как выйти из ситуации?
мне нужно именоо четыре значения передать.
я хочу пакетно выполнять регл. задание.
и как раз данный метод задумывался, чтобы в фон.задание передавались данные по значениям, в которых первый пакет обрабтывается к примеру для поразделения1, потом все так же, только для подразделения2 и там далее.
---
Значит нужно метод РасчетФоновоеВыполнение.Расчитать изменить на получение 4 параметров соответствующих типов, или переделать ПараметрыФЗ на добавление 1 элемента, в котором и передавать нужные данные. Тут уж сами решайте, как удобнее.
---
сейчас все сводится к тому, что выполняется код равносильный такому:

```1c
    РасчетФоновоеВыполнение.Расчитать(СписокНоменклатур, Параметры.ДатаНачала, Параметры.ДатаОкончания, Подразделение.Значение);
```

Вот из этого и исходите.
---
а если формально задать также, т.е передавать 4 параметра и получать 4 - так должно взлететь?
---
ошибка вызова исчезнет. Но нужно понимать, что теперь в самой процедуре нужно переделывать на работу с этими параметрами.
---
так на этапе выполнения регл. задания вываливается ошибка "Слишком много фактических параметров"
---
показывайте текущий запуск фонового задания и начало процедуры Выполнить из общего модуля РасчетФоновоеВыполнение
---
и вообще-то согласно СП
"Синтаксис:
Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>)
Параметры:
<ИмяМетода> (обязательный)
<Параметры> (необязательный)
Тип: Массив.
Массив параметров, передаваемых в метод. Количество и типы параметров должны соответствовать параметрам метода.
Все передаваемые параметры должны поддерживать сериализацию. В противном случае будет выдано исключение и фоновое задание не будет запущено.
Если последние параметры метода имеют значения по-умолчанию, то их можно не задавать в массиве.
Если все параметры метода имеют значение по-умолчанию, то массив можно не передавать вообще.
Размер передаваемых данных ограничен 1 ГБ. Если внутреннее представление превышает указанное значение, будет вызвано исключение. Параметры большого размера рекомендуется передавать через базу данных."
не пойму в чем же правда и как надо.
---
передаю так

```1c
    Задание = ФоновыеЗадания.Выполнить("РасчетФоновоеВыполнение.Расчитать", СписокНоменклатур, Параметры.ДатаНачала, Параметры.ДатаОкончания, Подразделение.Значение, Строка(Новый УникальныйИдентификатор()), НаименованиеЗадания);
```

в фоновом задании прописал так:

```1c
    Процедура Расчитать(СписокНоменклатур, ДатаНачала, ДатаОкончания, Подразделение) Экспорт

    Для Каждого Строка из СписокНоменклатур Цикл

    Номенклатура = Строка.Значение;
    НачалоПериода = ДатаНачала;
    КонецПериода = ДатаОкончания;
    Подразделение = Подразделение;

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

    Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
    Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Склад", Подразделение);

    Выборка = Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл

    НовыйНаборЗаписей = РегистрыСведений.Расчет.СоздатьНаборЗаписей();
    НовыйНаборЗаписей.Отбор.Подразделение.Установить(Подразделение);
    НовыйНаборЗаписей.Отбор.Номенклатура.Установить(Номенклатура);
    НоваяЗапись = НовыйНаборЗаписей.Добавить();
    НоваяЗапись.Подразделение = Подразделение;
    НоваяЗапись.Номенклатура = Номенклатура;

    НовыйНаборЗаписей.Записать();

    КонецЦикла;

    КонецЦикла;

    КонецПроцедуры
```
---
Задание = ФоновыеЗадания.Выполнить("РасчетФоновоеВыполнение.Расчитать", СписокНоменклатур, Параметры.ДатаНачала, Параметры.ДатаОкончания, Подразделение.Значение, Строка(Новый УникальныйИдентификатор()), НаименованиеЗадания);
Вот это совсем не так. Нужно было оставить как было раньше.
Вторым параметром передается массив, в котором каждый элемент это принимаемый параметр в вызываемой функции. Верните вызов фонового задания, как было раньше и вызов будет отрабатывать.
---
но ведь не отрабатывал.
само регламентное задание как-бы выполнялось, но фоновое всегда было с ошибкой.
---
ошибка была в том, что в вызываемой процедуре было мало входящих параметров.
Для этого и было сказано, чтобы увеличить их в самой процедуре.

```1c
    Процедура Расчитать(СписокНоменклатур, ДатаНачала, ДатаОкончания, Подразделение) Экспорт
```

Вот теперь сделано правильно. Но зачем-то и месте вызова поменяли.

Поймите главное. Даже в (11) привели информацию из СП.
В вызове метода Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>) должно быть только 4 параметра и 2 параметр это массив, в котором каждый добавленный элемент это и есть добавленный параметр в порядке следования входящих параметров процедуры для вызова в фоновом задании.

Итого должно быть так:
Вызов фонового задания:

```1c
    ПараметрыФЗ = Новый Массив();
    ПараметрыФЗ.Добавить(СписокНоменклатур); //это список значений
    ПараметрыФЗ.Добавить(Параметры.ДатаНачала);
    ПараметрыФЗ.Добавить(Параметры.ДатаОкончания);
    ПараметрыФЗ.Добавить(Подразделение.Значение);
    Задание = ФоновыеЗадания.Выполнить("РасчетФоновоеВыполнение.Расчитать", ПараметрыФЗ, Строка(Новый УникальныйИдентификатор()), НаименованиеЗадания);
```

Процедура вызываемая в фоновом задании:

```1c
    Процедура Расчитать(СписокНоменклатур, ДатаНачала, ДатаОкончания, Подразделение) Экспорт
    ...
```

Вот так должно отрабатывать.