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