Здравствуйте. В БСП есть процедура ГрафикиРаботы.ОбновитьГрафикиРаботыПоДаннымПроизводственныхКалендарей(УсловияОбновления);
там же запрос

В комментах написано:
// Параметры:
// - УсловияОбновления - таблица значений с колонками.
// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились,
// - Год - год, за который нужно обновить данные.

Делаю так

```1c
    УсловияОбновления = Новый ТаблицаЗначений;
    УсловияОбновления.Колонки.Добавить("КодПроизводственногоКалендаря",ОписаниеТиповС);
    УсловияОбновления.Колонки.Добавить("Год");
    СтрокаУсловияОбновления = УсловияОбновления.Добавить();
    СтрокаУсловияОбновления.КодПроизводственногоКалендаря = "РФ";
    СтрокаУсловияОбновления.Год = 2021;
```

Вот сама процедура

```1c
    Процедура ОбновитьГрафикиРаботыПоДаннымПроизводственныхКалендарей(УсловияОбновления) Экспорт

    // Выявим графики, которые нужно обновить
    // получаем данные этих графиков
    // последовательно обновляем за каждый год.

    ТекстЗапроса =
    "ВЫБРАТЬ
    | УсловияОбновления.КодПроизводственногоКалендаря,
    | УсловияОбновления.Год,
    | ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, УсловияОбновления.Год - 1) КАК НачалоГода,
    | ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 12, 31), ГОД, УсловияОбновления.Год - 1) КАК КонецГода
    |ПОМЕСТИТЬ УсловияОбновления
    |ИЗ
    | &УсловияОбновления КАК УсловияОбновления
    |;
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Календари.Ссылка КАК ГрафикРаботы,
    | Календари.ПроизводственныйКалендарь,
    | Календари.ДатаНачала,
    | Календари.ДатаОкончания
    |ПОМЕСТИТЬ ВТГрафикиРаботыЗависимыеОтКалендарей
    |ИЗ
    | Справочник.Календари КАК Календари
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари
    | ПО (ПроизводственныеКалендари.Ссылка = Календари.ПроизводственныйКалендарь)
    | И (Календари.СпособЗаполнения = ЗНАЧЕНИЕ(Перечисление.СпособыЗаполненияГрафикаРаботы.ПоНеделям))
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | Календари.Ссылка,
    | Календари.ПроизводственныйКалендарь,
    | Календари.ДатаНачала,
    | Календари.ДатаОкончания
    |ИЗ
    | Справочник.Календари КАК Календари
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари
    | ПО (ПроизводственныеКалендари.Ссылка = Календари.ПроизводственныйКалендарь)
    | И (Календари.СпособЗаполнения = ЗНАЧЕНИЕ(Перечисление.СпособыЗаполненияГрафикаРаботы.ПоЦикламПроизвольнойДлины))
    |;
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Календари.ГрафикРаботы,
    | УсловияОбновления.Год,
    | ВЫБОР
    | КОГДА Календари.ДатаНачала < УсловияОбновления.НачалоГода
    | ТОГДА УсловияОбновления.НачалоГода
    | ИНАЧЕ Календари.ДатаНачала
    | КОНЕЦ КАК ДатаНачала,
    | ВЫБОР
    | КОГДА Календари.ДатаОкончания > УсловияОбновления.КонецГода
    | ТОГДА УсловияОбновления.КонецГода
    | ИНАЧЕ Календари.ДатаОкончания
    | КОНЕЦ КАК ДатаОкончания
    |ПОМЕСТИТЬ ВТГрафикиРаботыПоУсловиюОбновления
    |ИЗ
    | ВТГрафикиРаботыЗависимыеОтКалендарей КАК Календари
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ УсловияОбновления КАК УсловияОбновления
    | ПО (УсловияОбновления.КодПроизводственногоКалендаря = Календари.ПроизводственныйКалендарь.Код)
    | И Календари.ДатаНачала <= УсловияОбновления.КонецГода
    | И Календари.ДатаОкончания >= УсловияОбновления.НачалоГода
    | И (Календари.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1))
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | Календари.ГрафикРаботы,
    | УсловияОбновления.Год,
    | ВЫБОР
    | КОГДА Календари.ДатаНачала < УсловияОбновления.НачалоГода
    | ТОГДА УсловияОбновления.НачалоГода
    | ИНАЧЕ Календари.ДатаНачала
    | КОНЕЦ,
    | УсловияОбновления.КонецГода
    |ИЗ
    | ВТГрафикиРаботыЗависимыеОтКалендарей КАК Календари
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ УсловияОбновления КАК УсловияОбновления
    | ПО (УсловияОбновления.КодПроизводственногоКалендаря = Календари.ПроизводственныйКалендарь.Код)
    | И Календари.ДатаНачала <= УсловияОбновления.КонецГода
    | И (Календари.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1))
    |;
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | Календари.ГрафикРаботы,
    | Календари.Год,
    | Календари.ДатаНачала,
    | Календари.ДатаОкончания
    |ПОМЕСТИТЬ ВТОбновляемыеГрафикиРаботы
    |ИЗ
    | ВТГрафикиРаботыПоУсловиюОбновления КАК Календари
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РучныеИзмененияГрафиковРаботы КАК РучныеИзмененияПоВсемГодам
    | ПО (РучныеИзмененияПоВсемГодам.ГрафикРаботы = Календари.ГрафикРаботы)
    | И (РучныеИзмененияПоВсемГодам.Год = 0)
    |ГДЕ
    | РучныеИзмененияПоВсемГодам.ГрафикРаботы ЕСТЬ NULL
    |;
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ОбновляемыеГрафикиРаботы.ГрафикРаботы,
    | ОбновляемыеГрафикиРаботы.Год,
    | ПараметрыЗаполнения.СпособЗаполнения,
    | ПараметрыЗаполнения.ПроизводственныйКалендарь,
    | ОбновляемыеГрафикиРаботы.ДатаНачала,
    | ОбновляемыеГрафикиРаботы.ДатаОкончания,
    | ПараметрыЗаполнения.ДатаОтсчета,
    | ПараметрыЗаполнения.УчитыватьПраздники,
    | ПараметрыЗаполнения.УчитыватьНерабочиеПериоды
    |ИЗ
    | ВТОбновляемыеГрафикиРаботы КАК ОбновляемыеГрафикиРаботы
    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Календари ПараметрыЗаполнения
    | ПО ПараметрыЗаполнения.Ссылка = ОбновляемыеГрафикиРаботы.ГрафикРаботы
    |УПОРЯДОЧИТЬ ПО
    | ОбновляемыеГрафикиРаботы.ГрафикРаботы,
    | ОбновляемыеГрафикиРаботы.Год
    |;
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ШаблонЗаполнения.Ссылка КАК ГрафикРаботы,
    | ШаблонЗаполнения.НомерСтроки КАК НомерСтроки,
    | ШаблонЗаполнения.ДеньВключенВГрафик
    |ИЗ
    | Справочник.Календари.ШаблонЗаполнения КАК ШаблонЗаполнения
    |ГДЕ
    | ШаблонЗаполнения.Ссылка В
    | (ВЫБРАТЬ
    | ВТОбновляемыеГрафикиРаботы.ГрафикРаботы
    | ИЗ
    | ВТОбновляемыеГрафикиРаботы)
    |УПОРЯДОЧИТЬ ПО
    | ГрафикРаботы,
    | НомерСтроки";

    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("УсловияОбновления", УсловияОбновления);

    РезультатыЗапроса = Запрос.ВыполнитьПакет(); // Массив Из РезультатЗапроса
    ВыборкаПоГрафикам = РезультатыЗапроса[РезультатыЗапроса.ВГраница() - 1].Выбрать();
    ВыборкаПоШаблону = РезультатыЗапроса[РезультатыЗапроса.ВГраница()].Выбрать();

    ШаблонЗаполнения = Новый ТаблицаЗначений;
    ШаблонЗаполнения.Колонки.Добавить("ДеньВключенВГрафик", Новый ОписаниеТипов("Булево"));

    Пока ВыборкаПоГрафикам.СледующийПоЗначениюПоля("ГрафикРаботы") Цикл
    ШаблонЗаполнения.Очистить();
    Пока ВыборкаПоШаблону.НайтиСледующий(ВыборкаПоГрафикам.ГрафикРаботы, "ГрафикРаботы") Цикл
    НоваяСтрока = ШаблонЗаполнения.Добавить();
    НоваяСтрока.ДеньВключенВГрафик = ВыборкаПоШаблону.ДеньВключенВГрафик;
    КонецЦикла;
    Пока ВыборкаПоГрафикам.СледующийПоЗначениюПоля("ДатаНачала") Цикл
    // Если дата окончания не указана, она будет подобрана по производственному календарю.
    ПараметрыЗаполнения = РегистрыСведений.КалендарныеГрафики.ПараметрыЗаполненияГрафика();
    ПараметрыЗаполнения.СпособЗаполнения = ВыборкаПоГрафикам.СпособЗаполнения;
    ПараметрыЗаполнения.ШаблонЗаполнения = ШаблонЗаполнения;
    ПараметрыЗаполнения.ПроизводственныйКалендарь = ВыборкаПоГрафикам.ПроизводственныйКалендарь;
    ПараметрыЗаполнения.УчитыватьПраздники = ВыборкаПоГрафикам.УчитыватьПраздники;
    ПараметрыЗаполнения.УчитыватьНерабочиеПериоды = ВыборкаПоГрафикам.УчитыватьНерабочиеПериоды;
    ПараметрыЗаполнения.ДатаОтсчета = ВыборкаПоГрафикам.ДатаОтсчета;
    ДниВключенныеВГрафик = РегистрыСведений.КалендарныеГрафики.ДниВключенныеВГрафик(
    ВыборкаПоГрафикам.ДатаНачала, ВыборкаПоГрафикам.ДатаОкончания, ПараметрыЗаполнения);
    ЗаписатьДанныеГрафикаВРегистр(
    ВыборкаПоГрафикам.ГрафикРаботы, ДниВключенныеВГрафик, ВыборкаПоГрафикам.ДатаНачала, ВыборкаПоГрафикам.ДатаОкончания);
    КонецЦикла;
    КонецЦикла;

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

При выполнении выдает ошибку
{(4, 41)}: Неверные параметры "-"
ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), ГОД, <<?>>УсловияОбновления.Год - 1) КАК НачалоГода,
Если запрос сделать через консоль запросов, то всё выполняется корректно. Что я упускаю?
---
все колонки ТЗ передаваемой в запрос в виде параметра ДОЛЖНЫ быть типизированы!!!!

    УсловияОбновления = Новый ТаблицаЗначений;
    УсловияОбновления.Колонки.Добавить("КодПроизводственногоКалендаря",ОписаниеТиповС); //здесь вроде какой-то тип указан
    УсловияОбновления.Колонки.Добавить("Год"); //а здесь типа нет, наверно Число надо ?
---
все колонки ТЗ передаваемой в запрос в виде параметра ДОЛЖНЫ быть типизированы!!!!

    УсловияОбновления = Новый ТаблицаЗначений;
    УсловияОбновления.Колонки.Добавить("КодПроизводственногоКалендаря",ОписаниеТиповС); //здесь вроде какой-то тип указан
    УсловияОбновления.Колонки.Добавить("Год"); //а здесь типа нет, наверно Число надо ?