&НаСервере
Процедура ОбработатьИзменениеГода(ЗаписыватьДанныеГрафика)
Если ЗаписыватьДанныеГрафика Тогда
Если Объект.Ссылка.Пустая() Тогда
Записать(Новый Структура("НомерГода", НомерТекущегоГода));
Иначе
ЗаписатьДанныеПроизводственногоКалендаряНаСервере(НомерТекущегоГода, РеквизитФормыВЗначение("Объект"));
КонецЕсли;
КонецЕсли;
// 1. Сначала подгружаем дефолты из макета, если в регистре данных нет
Если ЗначениеЗаполнено(Объект.ПроизводственныйКалендарь) Тогда
// Убедитесь, что передается строковый код календаря
КодКалендаря = ?(ТипЗнч(Объект.ПроизводственныйКалендарь) = Тип("Строка"),
Объект.ПроизводственныйКалендарь, Объект.ПроизводственныйКалендарь.Код);
ДанныеПоУмолчанию = Справочники.ГрафикРаботы.РезультатЗаполненияПроизводственногоКалендаряПоУмолчанию(
КодКалендаря, НомерТекущегоГода, КодКалендаря
);
ПреобразоватьДанныеПроизводственногоКалендаря(ДанныеПоУмолчанию);
КонецЕсли;
// 2. Затем считываем данные текущего года и формируем ДниГрафика
ЗаполнитьДаннымиТекущегоГода();
// 3. Формируем расписание фона по шаблону
ЗаполнитьПоШаблонуНаСервере();
КонецПроцедуры