Получение отработанного времени "Отработано часов", "Отработано дней", "Норма часов" сотрудников в ЗУП 3.1

18.08.25

Учетные задачи - Учет рабочего времени

Внешнее расширение содержит общий модуль с различными функциями получения отработанного сотрудником времени. Чтобы при разработке печатных форм, дополнительного функционала и т.п. просто обратиться к экспортной функции и получить нужные данные.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Получение отработанного времени в ЗУП 3.1
.cfe 10,13Kb
1 2 150 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

При разработке печатных форм, обработок и т.п. часто возникает задача получить отработанное время сотрудника за определённый период. Когда у меня возникла подобная необходимость, я не смог найти в общих модулях учета времени экспортную функцию, к которой можно было бы обратиться и получить данные по времени в простом виде (возможно, плохо искал). Основной модуль учета времени в программе называется "УчетРабочегоВремениРасширенный". Изучение текста запросов в модуле вызывает, скажем так, желание "уйти в отпуск". В интернете чего то простого я также не нашёл.

При получении отработанного времени следует учитывать, доступны ли на момент получения данные документа "Табель". Брать ли информацию из движений документа "Табель" напрямую или нужно получить данные по времени с учетом всех "отсутствий" ("состояний") сотрудника и его графиков.


Функции модуля возвращают данные в структуру, пример:

СтрЧасыОтр = МодульИзмененияКонфигурации.изм_ДанныеТабельногоУчетаРабочегоВремениСотрудников(Сотрудник,ДатаНачала,ДатаОкончания,Организация);
ЧасовНачисления = СтрЧасыОтр.ОтработаноЧасов;

Расширение содержит функции:

    1. изм_ПолучитьОтработаноЧасовСотрудникаЗаМесяц(Сотрудник,ПериодМесяц,Организация)

возвращает структуру с ключами "ОтработаноЧасов","НормаЧасов

вид времени - РабочееВремя, по данным отсутствий

   2. изм_ПолучитьОтработаноЧасовСотрудникаЗаПериод(Сотрудник,ДатаНачала,ДатаОкончания,Организация)

возвращает структуру с ключами"ОтработаноЧасов","НормаЧасов" , по данным отсутствий

вид времени - РабочееВремя

   3. изм_ДанныеТабельногоУчетаРабочегоВремениСотрудников(Сотрудник,ДатаНачала,ДатаОкончания,Организация)

возвращает структуру с ключами"ОтработаноЧасов","ОтработаноДней

вид времени - Явка, НочныеЧасы, по данным табеля

   4. изм_ДанныеТабельногоУчетаРабочегоВремениСотрудниковСверхурочно(Сотрудник,ДатаНачала,ДатаОкончания,Организация)

возвращает структуру с ключами"ОтработаноЧасов","ОтработаноДней

вид времени - Сверхурочные, СверхурочныеБезПовышеннойОплаты, по данным табеля

   5. изм_ДанныеТабельногоУчетаРабочегоВремениСотрудниковПоВидамВремени(Сотрудник,ДатаНачала,ДатаОкончания,Организация)

возвращает  строку вида "ОТ 18; Б 5; "  - перечисление всех отсутствий, по данным табеля

вид времени - все кроме Явка, НочныеЧасы, ВыходныеДни

   6. изм_НормаЧасовПоГрафикуСотрудника(Сотрудник, ПериодМесяц)

возвращает структуру с ключами"НормаДней","НормаЧасов" , по данным графиков сотрудника

Основная функция по данным табеля:

функция изм_ДанныеТабельногоУчетаРабочегоВремениСотрудников(Сотрудник,ДатаНачала,ДатаОкончания,Организация) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	СУММА(ДанныеТабельногоУчетаРабочегоВремениСотрудников.Дни) КАК Дни,
	               |	СУММА(ДанныеТабельногоУчетаРабочегоВремениСотрудников.Часы) КАК Часы
	               |ИЗ
	               |	РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК ДанныеТабельногоУчетаРабочегоВремениСотрудников
	               |ГДЕ
	               |	ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период МЕЖДУ &НачалоПериода И &КонецПериода
	               |	И ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник = &Сотрудник
	               |	И ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени В(&МассивВидов)
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник";
	
	Запрос.Параметры.Вставить("Сотрудник",Сотрудник);
	Запрос.Параметры.Вставить("НачалоПериода"  ,Началодня(ДатаНачала));
	Запрос.Параметры.Вставить("КонецПериода"   ,КонецДня(ДатаОкончания));
	МассивВидов = Новый Массив;
	МассивВидов.Добавить(Справочники.ВидыИспользованияРабочегоВремени.Явка);
	МассивВидов.Добавить(Справочники.ВидыИспользованияРабочегоВремени.РаботаНочныеЧасы);
	Запрос.Параметры.Вставить("МассивВидов",МассивВидов);
	
	ДанныеТабеля = Запрос.Выполнить().Выгрузить(); 
	
	СтрВозврат = Новый Структура;
	СтрВозврат.Вставить("ОтработаноЧасов",0);
	СтрВозврат.Вставить("ОтработаноДней",0);
	
	Если ДанныеТабеля.Количество() > 0 Тогда 
		
		Если ЗначениеЗаполнено(ДанныеТабеля[0].Часы) Тогда
			СтрВозврат.Вставить("ОтработаноЧасов",ДанныеТабеля[0].Часы);
		КонецЕсли;
		
		Если ЗначениеЗаполнено(ДанныеТабеля[0].Дни) Тогда
			СтрВозврат.Вставить("ОтработаноДней",ДанныеТабеля[0].Дни);
		КонецЕсли;
	КонецЕсли;
	
	Возврат СтрВозврат; 

	
КонецФункции

 

Подключаем расширение: в меню Администрирование, "Печатные формы, отчеты и обработки", Расширения нажимаем "Добавить из файла", убираем галку "Безопасный режим".

Проверено на следующих конфигурациях и релизах:

  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.34.40

Вступайте в нашу телеграмм-группу Инфостарт

Отработано часов Отработано дней Норма часов Норма дней ЗУП

См. также

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта 1С v8.3 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

16800 руб.

01.11.2012    99356    119    1    

130

Печатные формы Учет рабочего времени Бухгалтер Пользователь 1С v8.3 Бухгалтерский учет Оперативный учет 1С:Бухгалтерия 3.0 Транспорт, автопарки, такси Россия Бухгалтерский учет Платные (руб)

Программа «Путевой лист грузового автомобиля в 1С:БП 3.0» - заполнить, распечатать, сохранить. Вы можете не только внести всю информацию и распечатать путевой лист грузового автомобиля в 1С, но и повторно использовать ранее введенные данные спустя любое время - данные путевого листа водителя сохраняются в "1С:Бухгалтерия 3.0" без каких-либо доработок.

5700 руб.

23.08.2019    61561    195    65    

189

Зарплата Учет рабочего времени Кадровый учет Мессенджеры и боты Бухгалтер Пользователь 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Сделайте взаимодействие сотрудников компании и бухгалтерии быстрым и удобным. С Личным кабинетом сотрудника в 1С:ЗУП 3.1 и КА 2.5 для Telegram больше не нужно лично посещать бухгалтерию и отдел кадров – все документы доступны в Telegram.

9600 руб.

21.03.2022    16905    9    21    

23

Зарплата Учет рабочего времени Программист Бизнес-аналитик Бухгалтер Пользователь 1С v8.3 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Платные (руб)

Обработка предназначена для заполнения нецикличных графиков работы для вахтового метода работы и для работы в полевых условиях труда. Вводятся все виды времени вахтового цикла. Календарь вахтовика позволяет не заполнять индивидуальные графики работы на каждого сотрудника, что сильно снижает трудозатраты на ввод данных. Решение предназначено для ЗУП 3.х; ЕРП 2.х; КА 2.х; ЗКГУ 3.х. Благодаря использованию обычных графиков работы, норму времени можно указать по графику пятидневки.

6600 руб.

18.12.2019    29228    36    6    

33

Загрузка и выгрузка в Excel Зарплата Учет рабочего времени Бухгалтер 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Внешняя обработка, позволяет пакетно создать шаблоны по подразделениям для заполнения табеля в Excel, после чего загрузить заполненные шаблоны в документы ЗУП "Табель учета рабочего времени", «Данные для расчета зарплаты». Поддерживается заполнение до 6 видов рабочего времени. Тестировалась на ЗУП 3.1.25.40. Подключается как дополнительная внешняя обработка. Необходима версия платформы с 8.3.18.

7800 руб.

23.03.2017    61988    83    99    

98

Зарплата Учет рабочего времени Бухгалтер Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Ищете решение, как оформить простой в 1С ЗУП? Автоматическое создание и документов "Простои сотрудников" на основании времени, введенного через документ "Табель учета рабочего времени" поможет вам.

2400 руб.

26.02.2019    21167    16    1    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Grigoriy251 137 28.07.25 16:48 Сейчас в теме
А почему бы не получить так:
                ДанныеТабеля = Новый Структура();
                ДанныеТабеля.Вставить("Дата", КонецМесяца(Объект.ПериодРегистрации));
                ДанныеТабеля.Вставить("Номер", "");
                ДанныеТабеля.Вставить("ПериодРегистрации", НачалоМесяца(Объект.ПериодРегистрации));
                ДанныеТабеля.Вставить("ДатаНачалаПериода", НачалоМесяца(Объект.ПериодРегистрации));
                ДанныеТабеля.Вставить("ДатаОкончанияПериода", КонецМесяца(Объект.ПериодРегистрации));
                ДанныеТабеля.Вставить("Подразделение", Неопределено);
                ДанныеТабеля.Вставить("Ссылка", Документы.ТабельУчетаРабочегоВремени.ПустаяСсылка());
                ДанныеТабеля.Вставить("ИсправленныйДокумент",        Документы.ТабельУчетаРабочегоВремени.ПустаяСсылка());
                 ДанныеТабеля.Вставить("Организация", Объект.Организация);
                ДанныеТабеля.Вставить("ОрганизацияНаименование", Объект.Организация.ПолноеНаименование());
                ДанныеТабеля.Вставить("ОрганизацияКодПоОКПО", Объект.Организация.КодОКОПФ);
                ДанныеТабеля.Вставить("ПодразделениеНаименование", "");
                ДанныеТабеля.Вставить("ПериодВводаДанныхОВремени", Перечисления.ПериодыВводаДанныхОВремени.ТекущийМесяц);
ВыборкаВремениСотрудников = ТабельУчетаРабочегоВремени. ВыборкаДанныхОВремени(ДанныеТабеля, СписокСотрудников, Ложь);
Показать
2. plkt2 25 28.07.25 17:45 Сейчас в теме
(1) Так наверно тоже можно.
3. Grigoriy251 137 28.07.25 19:10 Сейчас в теме
(2) так, получаешь табель со всеми отклонениями не зависимо тот использования документа табель, а если быть точным так заполняется табель. И в тоже время эти данные используются при расчёте заработной платы сотрудников
Оставьте свое сообщение