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