0
nomanacc
27.08.18
✎
15:49
|
Много пишут про скрытую на партнерском форуме 1с статью с документацией по общему модулю КадровыйУчет, не настало ли время её достать?
Первая попытка приблизиться к "беcтабличной" технике получения работающих сотрудников выглядела так
ДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Ложь, СотрудникСсылка, "Подразделение,Должность", НачалоДня(ТекущаяДатаСеанса()) - 1);
и дала таблицу значений с колонками:
Сотрудник ДатаОкончания ДатаНачала ГоловнаяОрганизация ФизическоеЛицо ПериодЗаписи Год ПериодПредыдущейЗаписи ВидСобытия Организация Должность ГоловнойСотрудник ЭтоГоловнойСотрудник Подразделение ДолжностьПоШтатномуРасписанию КоличествоСтавок ВидДоговора РегистраторЗаписи РегистраторСобытия ПустойИнтервал
Дальше можно использовать отбор
ВидСобытия <> Перечисления.ВидыКадровыхСобытий.Увольнение
но хочется избежать "угадайки" в боевых базах, где по-человечески описан рекомендованный Нуралиевым АПИ доступа к кадровым данным?
--
_[0] СтрокаТаблицыЗначений СтрокаТаблицыЗначений
ВидДоговора Трудовой договор ПеречислениеСсылка.ВидыДоговоровССотрудниками
ВидСобытия Увольнение ПеречислениеСсылка.ВидыКадровыхСобытий
Год 01.01.2017 00:00:00 Дата
ГоловнаяОрганизация ООО СправочникСсылка.Организации
ГоловнойСотрудник Иван Иванович Иванов (ув.) СправочникСсылка.Сотрудники
ДатаНачала 18.08.2017 00:00:05 Дата
ДатаОкончания 31.12.3999 23:59:59 Дата
Должность Слесарь-ремонтник СправочникСсылка.Должности
ДолжностьПоШтатномуРасписанию Слесарь-ремонтник, 4 разряд /Производственный участок/ СправочникСсылка.ШтатноеРасписание
КоличествоСтавок 1 Число
Организация ООО СправочникСсылка.Организации
Период 26.08.2018 23:59:59 Дата
ПериодВозвратногоСобытия 01.01.0001 00:00:00 Дата
ПериодЗаписи 18.08.2017 00:00:05 Дата
ПериодПредыдущейЗаписи 18.05.2017 00:00:20 Дата
Подразделение Производственный участок СправочникСсылка.ПодразделенияОрганизаций
ПустойИнтервал Ложь Булево
Регистратор Увольнение 7700-000008 от 17.08.2017 ДокументСсылка.Увольнение
РегистраторЗаписи Увольнение 7700-000008 от 17.08.2017 ДокументСсылка.Увольнение
РегистраторСобытия Увольнение 7700-000008 от 17.08.2017 ДокументСсылка.Увольнение
Сотрудник Иван Иванович Иванов (ув.) СправочникСсылка.Сотрудники
ФизическоеЛицо Бигалиев Ильдар Мансурович СправочникСсылка.ФизическиеЛица
ЭтоВозвратноеСобытие Ложь Булево
ЭтоГоловнойСотрудник Истина Булево
--
|
|
1
nomanacc
05.09.18
✎
12:40
|
Просто оставлю текущий вариант заполнения тут, может, кто укажет более оптимальный способ, чем последовательный вызов
КадровыйУчет.СоздатьВТСотрудникиОрганизации()
КадровыйУчет.КадровыеДанныеСотрудников()
В частности, хотелось бы штатный отбор по подразделению освоить
&НаСервере
Процедура мДанныеСотрудников_инит()
мДата = объект.Дата;//дата(2018,08,20);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
ПараметрыПолученияСотрудников.НачалоПериода = мДата;
ПараметрыПолученияСотрудников.ОкончаниеПериода = мДата;
КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияСотрудников, "ВТСотрудникиОрганизации");
Запрос.Текст =
"ВЫБРАТЬ Сотрудник//,Должность
|ИЗ
| ВТСотрудникиОрганизации КАК СотрудникиОрганизации"; //| где Подразделение=&Подразделение и ВидСобытия<>&ВидСобытия
_=Запрос.Выполнить().Выгрузить();
ДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Ложь, _.ВыгрузитьКолонку("Сотрудник"), "Должность", НачалоДня(мдата)); //Подразделение
мДанныеСотрудников.Очистить();
ВидСобытия = Перечисления.ВидыКадровыхСобытий.Увольнение;
для каждого вы из ДанныеСотрудников Цикл//Пока вы.следующий() Цикл
если вы.Подразделение = Объект.Подразделение
и вы.ВидСобытия <> ВидСобытия Тогда
_=мДанныеСотрудников.Добавить();
_.Сотрудник=вы.сотрудник;
_.Должность=вы.должность;
конецЕсли;
КонецЦикла;
КонецПроцедуры
|
|