Данные отработанного времени

1 Добавил: Эльдар Мингалиев

Получить данные рабочего (отработанного) времени, данные табеля Т-13

ЗУП 3
//В ДАННОМ ПРИМЕРЕ МОЖНО ПОЛУЧИТЬ ДАННЫЕ ВРЕМЕНИ ТОЛЬКО ЗА ОДИН МЕСЯЦ

&НаСервере
Процедура Команда1НаСервере()
	
    ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени();
    ДатаНачала = '20180901';
    ДатаОкончания = КонецМесяца(ДатаНачала);
    ПараметрыПолученияДанных.ДатаНачала = ДатаНачала;
    ПараметрыПолученияДанных.ДатаОкончания = ДатаОкончания;
    
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
	//Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
	//               |	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
	//               |ИЗ
	//               |	ВТСотрудники КАК Сотрудники";
	//МассивСотрудников = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ФизическоеЛицо");
	
    МассивСотрудников = Новый Массив;
    МассивСотрудников.Добавить(Справочники.Сотрудники.НайтиПоНаименованию("Иванов Иван Иванович"));
	
    СоздатьВТСотрудники(МенеджерВременныхТаблиц, МассивСотрудников, ДатаНачала);
    УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников(МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных);
	
	//Колонка "План" говорит о наличии введенного документа Табель, если значение Ложь значит создан документ Табель.
	
	ДанныеТабеляТ13 = МенеджерВременныхТаблиц.Таблицы.Найти("ВТДанныеУчетаРабочегоВремениСотрудников").ПолучитьДанные().Выгрузить();
	
	НормаПоГрафику = МенеджерВременныхТаблиц.Таблицы.Найти("ВТНормаВремени").ПолучитьДанные().Выгрузить();
	
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура СоздатьВТСотрудники(МенеджерВременныхТаблиц, МассивСотрудников, Месяц, ДатаАктуальности = Неопределено, ДатаНачала = Неопределено, ДатаОкончания = Неопределено)
	
    ТаблицаСотрудники = Новый ТаблицаЗначений;
    ТаблицаСотрудники.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
    ТаблицаСотрудники.Колонки.Добавить("Месяц", Новый ОписаниеТипов("Дата"));
    ТаблицаСотрудники.Колонки.Добавить("ДатаАктуальности", Новый ОписаниеТипов("Дата"));
    ТаблицаСотрудники.Колонки.Добавить("ДатаНачала", Новый ОписаниеТипов("Дата"));
    ТаблицаСотрудники.Колонки.Добавить("ДатаОкончания", Новый ОписаниеТипов("Дата"));    
    
    Для Каждого Сотрудник Из МассивСотрудников Цикл
        СтрокаСотрудники = ТаблицаСотрудники.Добавить();
        СтрокаСотрудники.Сотрудник = Сотрудник;
    КонецЦикла;
    
    ТаблицаСотрудники.ЗаполнитьЗначения(Месяц, "Месяц");
    ТаблицаСотрудники.ЗаполнитьЗначения(?(ДатаАктуальности = Неопределено, ТекущаяДата(), ДатаАктуальности), "ДатаАктуальности");
    ТаблицаСотрудники.ЗаполнитьЗначения(?(ДатаНачала = Неопределено, Месяц, ДатаНачала), "ДатаНачала");
    ТаблицаСотрудники.ЗаполнитьЗначения(?(ДатаОкончания = Неопределено, КонецМесяца(Месяц), ДатаОкончания), "ДатаОкончания");
    
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |    ТаблицаСотрудники.Сотрудник,
    |    ТаблицаСотрудники.Месяц,
    |    ТаблицаСотрудники.ДатаАктуальности,        
    |    ТаблицаСотрудники.ДатаНачала,
    |    ТаблицаСотрудники.ДатаОкончания
    |ПОМЕСТИТЬ ВТСотрудники
    |ИЗ
    |    &ТаблицаСотрудники КАК ТаблицаСотрудники");
    
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("ТаблицаСотрудники", ТаблицаСотрудники);
    Запрос.Выполнить();
	
КонецПроцедуры
Назад к списку

Комментарии

FastCode - сервис поиска кода 1С

Уже более 1000 разработчиков используют FastCode в работе!