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

18.08.25

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

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

Файлы

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

Наименование Скачано Купить файл
Получение отработанного времени в ЗУП 3.1
.cfe 10,13Kb
2 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    100814    119    1    

130

Печатные формы Учет рабочего времени Учет ОС и НМА Бухгалтер 1С v8.3 Бухгалтерский учет Оперативный учет Управляемые формы 1C:ERP Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Программа для автоматизации учета путевых листов в 1С - расширение, добавляющее в конфигурацию "ERP", документ Путевой лист и печатные формы установленных образцов для легковых и грузовых авто, расчет и списание нормативного количества топлива, отчет "Реестр путевых листов" с отбором по автомобилю и по водителю (через настройки) Позволит контролировать расход топлива, потому что сразу будет виден сверхнормативный расход.

25200 руб.

23.07.2025    1264    4    0    

4

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

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

7200 руб.

23.08.2019    62483    196    65    

190

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

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

9600 руб.

21.03.2022    17399    9    21    

23

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

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

5000 руб.

26.02.2019    21346    16    1    

16

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

Конфигурация для учебных занятий на базе 1С. Подходит для школ, рок-школ, кружков для ведения учета занятий, репетиций, уроков, мероприятий и оплат по ним. Учет зарплат педагогов. Бонусные системы. Абонементы. Также внедряется в вашу 1с Бухгалтерию 3.0 или УНФ посредством расширения конфигурации. Доступен мобильный клиент.

3600 руб.

06.09.2016    41558    91    63    

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