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