Функция ОпределитьДатыСотрудника(Сотр, ПоОдномуСотр, ПроверятьПодразделение, ДатаПриема, ДеньН, ДеньК)
ОК = 1;
Если ПустоеЗначение(Сотр) = 1 Тогда
Сотр = Сотрудник;
КонецЕсли;
Если Сотр.Выбран() = 0 Тогда
ОК = 0;
ИначеЕсли Сотр.ЭтоГруппа() = 1 Тогда
ОК = 0;
Иначе
ДатаПриема = Сотр.ДатаПриема;
Если СобытиеПроизойдетПозже(ДатаПриема, КонДата) = 1 Тогда
// принят после месяца табеля
ОК = 0;
Иначе
ДатаУв = Сотр.ДатаУвольнения;
Если СобытиеУжеЗакончилось(ДатаУв, ДатаНач) = 1 Тогда
// уволен до месяца табеля
ОК = 0;
Иначе
УволенВТекМесяце = 0;
ДатаСотрК = КонДата;
Если КонМесяца(ДатаУв) = КонДата Тогда
// уволен в месяце табеля
УволенВТекМесяце = 1;
ДатаСотрК = ДатаУв;
КонецЕсли;
Если (ПроверятьПодразделение = 1) Тогда
Если Сотр.Подразделение.Получить(ДатаСотрК) <> Подразделение Тогда
ОК = 0;
КонецЕсли;
КонецЕсли;
Если ОК = 1 Тогда
ДеньН = 1;
ДеньК = ДатаЧисло(ДатаСотрК);
Если ПоОдномуСотр = 0 Тогда
НоваяСтрока();
Сотрудник = Сотр.ТекущийЭлемент();
КонецЕсли;
Прочерк = Перечисление.Табель.Нет;
Если КонМесяца(ДатаПриема) = КонДата Тогда
// принят в месяце табеля
ДеньН = ДатаЧисло(ДатаПриема);
УстановитьОбозначениеДня(1, ДеньН - 1, Прочерк);
КонецЕсли;
Если УволенВТекМесяце = 1 Тогда
// уволен в месяце табеля
УстановитьОбозначениеДня(ДеньК + 1, ДатаЧисло(КонДата), Прочерк);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат ОК
КонецФункции // ОпределитьДатыСотрудника()
i | Выделяйте код |
Похоже, что Подразделение у Сотрудника это не периодический реквизит.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua