Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • Типовые конфигурации
    • ЗУП 3.1
      • Разработка
        • Обработки
        • Отчеты
        • Печатные формы
        • Расширения
      • Инструкции
      • Ответы техподдержки 1С
      • Общие вопросы
    • ДО 2.1
    • УХ 3.2
    • УПП 1.3
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Обработки
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Разработки
    • Контакты
  • Toggle search form

Получение данных о времени ЗУП 3.1

Posted on 2 декабря 22 г.22 августа 24 г. By Алексей 1 комментарий к записи Получение данных о времени ЗУП 3.1

Содержание:

  • 1. Получение данных о времени сотрудников за период через процедуру СоздатьВТДанныеУчетаВремениИСостоянийСотрудников
  • 2. Получение данных о времени сотрудников за период через процедуру СоздатьВТДанныеУчетаРабочегоВремениСотрудников
  • Заключение

Для получения данных в ЗУП 3.1 лучше всего использовать стандартные механизмы заложенные в конфигурацию, такой подход позволяет не углубляться в структуру регистров, сохранить работоспособность кода после обновлений. При получении данных о времени, легко запутаться в двух похожих по названию, но отличающихся по конечному результату процедурах: 1) СоздатьВТДанныеУчетаВремениИСостоянийСотрудников и 2) СоздатьВТДанныеУчетаРабочегоВремениСотрудников. Первая процедура подходит для получения времени аналогичного «Табелю Т-13» с учетом отсутствий сотрудников, вторая процедура не учитывает отсутствия, т.е. больше подходит для получения планового времени с учетом работ в выходные, сверхурочных.

1. Получение данных о времени сотрудников за период через процедуру СоздатьВТДанныеУчетаВремениИСостоянийСотрудников
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
|   &Сотрудник Сотрудник,
| &ДатаНачала КАК ДатаНачала,
| &ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ ВТСотрудники";
 
Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
Запрос.УстановитьПараметр("ДатаНачала", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", Объект.Период.ДатаОкончания);
 
Запрос.Выполнить();
ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыДляЗапросВТДанныеУчетаВремениИСостоянийСотрудников();
ПараметрыПолученияДанных.ДатаНачала = Объект.Период.ДатаНачала;
ПараметрыПолученияДанных.ДатаОкончания = Объект.Период.ДатаОкончания;
ПараметрыПолученияДанных.МесяцДатаНачала = Объект.МесяцДатаНачала;
ПараметрыПолученияДанных.МесяцДатаОкончания = Объект.МесяцДатаОкончания;
ПараметрыПолученияДанных.ДатаАктуальности = Объект.ДатаАктуальности;
//ПараметрыПолученияДанных.Организация = Организация; // отбор по организации
//ПараметрыПолученияДанных.Подразделение = Подразделение; // отбор по подразделениям
//ПараметрыПолученияДанных.ПолучатьУсловияТрудаИТерритории = Ложь;
//ПараметрыПолученияДанных.ВыделятьВыходныеВПериодыОтклонений = Истина;
//ПараметрыПолученияДанных.УчитыватьТабельныеДанныеОТерриториях = Истина;
//ПараметрыПолученияДанных.ОтноситьПереходящуюЧастьСменыКДнюНачала = Ложь; // "Норма" для переходящих смен рассчитывается только при значении Истина
//ПараметрыПолученияДанных.РассчитыватьПлановоеВремя = Истина;
//ПараметрыПолученияДанных.НеучитываемыеРегистраторы = Новый Массив;
//ПараметрыПолученияДанных.ПолучатьУжеРассчитанныеДанные = Истина;
//ПараметрыПолученияДанных.ПересчитыватьФактическоеВремя = Ложь;  
//ПараметрыПолученияДанных.ИмяВТСотрудники = "ВТСотрудники";
//ПараметрыПолученияДанных.ИмяВТРезультат = "ВТДанныеУчетаВремениИСостоянийСотрудников";
УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаВремениИСостоянийСотрудников(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных);
ДанныеТабеляТ13 = Запрос.МенеджерВременныхТаблиц.Таблицы.Найти("ВТДанныеУчетаВремениИСостоянийСотрудников").ПолучитьДанные().Выгрузить();
2. Получение данных о времени сотрудников за период через процедуру СоздатьВТДанныеУчетаРабочегоВремениСотрудников
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =     
"ВЫБРАТЬ
|   &Сотрудник КАК Сотрудник,
| НАЧАЛОПЕРИОДА(&ДатаНачала, МЕСЯЦ) КАК Месяц,
| &ДатаНачала КАК ДатаНачала,
| &ДатаОкончания КАК ДатаОкончания,
| &ДатаАктуальности КАК ДатаАктуальности
|ПОМЕСТИТЬ ВТСотрудники";
 
Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
Запрос.УстановитьПараметр("ДатаНачала", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ДатаАктуальности", Объект.ДатаАктуальности);
Запрос.Выполнить();
 
ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени();
ПараметрыПолученияДанных.ДатаНачала = Объект.Период.ДатаНачала;
ПараметрыПолученияДанных.ДатаОкончания = Объект.Период.ДатаОкончания;
//ПараметрыПолученияДанных.УчитыватьТолькоИндивидуальныеСведения = Ложь;
//ПараметрыПолученияДанных.ПолучатьДанныеФакт = Истина;
//ПараметрыПолученияДанных.ПолучатьДанныеПлан = Ложь;
//ПараметрыПолученияДанных.ПолучатьДанныеНорма = Истина;
//ПараметрыПолученияДанных.ИспользоватьУжеРассчитанныеДанные = Истина;
//ПараметрыПолученияДанных.ФормироватьПриНаличииРассчитанныхДанных = Истина;
//ПараметрыПолученияДанных.НеучитываемыеРегистраторы = Новый Массив;
//ПараметрыПолученияДанных.ПолучатьУсловияТрудаИТерритории = Ложь;
//ПараметрыПолученияДанных.УчитыватьТабельныеДанныеОТерриториях = Истина;
//ПараметрыПолученияДанных.ПолучатьНормуВремениЗаПолныйМесяц = Ложь;
//ПараметрыПолученияДанных.ИспользуемыеВидыДанных = Новый Массив;
//ПараметрыПолученияДанных.ИмяВТСотрудники = "ВТСотрудники";
//ПараметрыПолученияДанных.ИмяВТРезультат = "ВТДанныеУчетаРабочегоВремениСотрудников";
//ПараметрыПолученияДанных.Индексировать = Ложь;
//ПараметрыПолученияДанных.ОтноситьПереходящуюЧастьСменыКДнюНачала = Ложь;
УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных);
ДанныеТабеляТ13 = Запрос.МенеджерВременныхТаблиц.Таблицы.Найти("ВТДанныеУчетаРабочегоВремениСотрудников").ПолучитьДанные().Выгрузить();
Заключение

При использовании процедуры СоздатьВТДанныеУчетаВремениИСостоянийСотрудников можно получить время с учетом всех отклонений аналогичное табелю Т-13. В результате, получим таблицу со следующими полями: Дата, Сотрудник, Должность, Организация, Подразделение, ВидУчетаВремени, Смена, Дни, Часы, НормаЧасов, Отклонение, ПереходящаяЧастьТекущейСмены, ПереходящаяЧастьПредыдущейСмены, Территория, УсловияТруда. Для получения результата, данная процедура создаст 19 вспомогательных временных таблиц.

При использовании процедуры СоздатьВТДанныеУчетаРабочегоВремениСотрудников можно получить время без учета отклонений по сотрудникам, т.е. если сотрудник например был на больничном, то это не отразится в результате (в этот день будет выведена Явка). В результате, получим таблицу со следующими полями: Сотрудник, ПериодРегистрации, ВидУчетаВремени, ОсновноеВремя, Смена, Дней, Часов, ДнейПлан, ЧасовПлан, НормаЧасов, НормаДней, Отклонение, ВЦеломЗаПериод, План, ПереходящаяЧастьТекущейСмены, ПереходящаяЧастьПредыдущейСмены, Территория, УсловияТруда. Для получения результата, данная процедура создаст 10 вспомогательных временных таблиц.

Обработка «Сравнение процедур получения данных о времени в ЗУП 3.1»Скачать

Если необходимо получить данные о времени сотрудников через СКД, то можно использовать механизм представлений, более подробно тут — Представления «Данные о времени и состоянии сотрудников».

Рекомендации

  • Представления "Данные о времени и состоянии сотрудников"
  • Получение кадровых данных сотрудников ЗУП 3.1
  • Полезные функции из общего модуля ЗУП 3.1
ЗУП 3.1, Отчеты, Печатные формы, Шаблоны и заготовки Tags:рабочее время

Навигация по записям

Previous Post: Почему в документе «Отсутствие с сохранением оплаты» нет начислений
Next Post: Расширение «Присвоение свободного табельного номера ЗУП 3.1»

Комментарий (1) on “Получение данных о времени ЗУП 3.1”

  1. Алена:
    1 сентября 23 г. в 10:01

    Добрый день! Не подскажите зачем на форме двойное заполнение дат («Период» и «МесяцДатаНачала»,»МесяцДатаОкончания»)?

    Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ДзенTelegram

Разработки

  • Печатная форма "Расходный кассовый ордер" для ЗУП 3.1 Печатная форма "Расходный кассовый ордер" ЗУП 3.1 650,00 ₽
  • Отчет "План-факт отпусков сотрудников в виде диаграммы Ганта Отчет "План-факт по отпускам сотрудников" ЗУП 3.1 650,00 ₽
  • Приказ об отмене трудового договора (рис 1) Печатная форма "Отмена приема на работу" ЗУП 3.1 650,00 ₽
  • Обработка “Выплата сотруднику через банк” ЗУП 3.1 Обработка “Выплата сотруднику через банк” ЗУП 3.1 0,00 ₽
  • Тестирование API Яндекс GPT Обработка "Работа с API YandexGPT" 650,00 ₽

MDM web-сервис XML БСП ЕФС-1 ИИ КД 2.0 НДФЛ СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СФР СЭДО ФСС ФСС НС больничные листы взносы вычеты длительная операция запрос интерфейс кадровая история кадровые данные кадровые переводы легкий труд мастер-данных обмен данными общий модуль отбор отпуска печать без проверки печать с диалогом пользователи представление прием на работу резервы отпусков сверхурочные синхронизация ЗУП и БП средний заработок табель таблица периодов табличный документ фотография штатное расписание

Яндекс.Метрика

© 2022-2026 myblog-1c.ru

Пользовательское соглашение

Контакты