Расширение функционала формирования графиков суммированного учета рабочего времени. ЗУП 3.1

11.09.24

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
ЗУП 3.1. Расширение функционала формирования графиков суммированного учета рабочего времени.:
.cfe 80,22Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

Расширение позволяет реализовать дополнительный функционал при формировании графиков суммированного учета рабочего времени (СУРВ): сдвигать смену на праздничный и/или выходные дни, а также сдвигать первый день начала смены.

Рассмотрим режим работы из двух смен (А и Б) по 11,5 часов с чередованием для каждой смены 2 дня работа, 2 дня отдых. «Дополнительный нюанс 1» - праздничные дни тоже являются днями отдыха (закрашены красным). «Дополнительный нюанс 2» -  работодатель решил установить дополнительные конкретные дни отдыха (закрашены оранжевым).

 

Время работы

ЯНВАРЬ

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

7.30 – 20.00

 

 

 

 

 

 

 

 

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Вых.дни

АБ

АБ

АБ

АБ

АБ

АБ

АБ

АБ

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

Время работы

ФЕВРАЛЬ

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

 

 

7.30 – 20.00

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

 

А

А

Б

Б

А

А

 

 

Вых.дни

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

АБ

Б

Б

А

А

Б

Б

 

 

Время работы

МАРТ

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

7.30 – 20.00

Б

Б

А

А

Б

Б

А

 

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

Вых.дни

А

А

Б

Б

А

А

Б

АБ

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Время работы

АПРЕЛЬ

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

 

7.30 – 20.00

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

 

 

 

 

Вых.дни

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

АБ

АБ

АБ

 

Время работы

МАЙ

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

7.30 – 20.00

 

Б

А

 

 

А

Б

Б

 

 

 

 

А

 

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Вых.дни

АБ

А

Б

АБ

АБ

Б

А

А

АБ

АБ

АБ

АБ

Б

АБ

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

А

А

Б

Б

                                                                 

 

Установка флажка «При заполнении учитывать праздничные дни» в праздничные дни:

 

 

не проставит рабочие часы, но не «перенесёт/сдвинет» их на следующий не праздничный день (а как учесть дополнительные конкретные дни отдыха - завести специальный производственный календарь???):

 

Месяц

Смена А (учитывать праздничные дни)

 
 

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

 

Январь

                 

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

 

Февраль

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

     

11,5

   

11,5

11,5

 

Х

Х

 

Март

 

11,5

11,5

   

11,5

10,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

 

1 квартал

                                                               

Апрель

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

Х

 

Май

 

11,5

   

11,5

11,5

     

11,5

   

10,5

     

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

 

Для «сдвига» необходимо установить флажок расширения «При заполнении сдвигать смену с учетом праздничных дней» и добавить в список «Нерабочих праздничных дней» нужные праздники и дополнительные конкретные дни отдыха:

 

 

Рабочее время, попавшее на дни из списка «Нерабочих праздничных дней», будет переноситься/сдвигаться на следующий день не из этого списка:

 

Месяц

Смена А (сдвигать на праздничные и дополнительные конкретные дни отдыха)

 
 

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

 

Январь

                 

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

 

Февраль

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

     

11,5

11,5

   

11,5

11,5

Х

Х

 

Март

   

11,5

11,5

   

11,5

 

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

     

1 квартал

                                                               

Апрель

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

       

Х

 

Май

   

11,5

   

11,5

           

11,5

 

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

   

11,5

11,5

 

 

Аналогичный подход применяется если надо сделать дополнительными конкретные днями отдыха и все выходные (Субботу и Воскресенье) – устанавливаем флажок «При заполнении сдвигать смену с учетом выходных дней» (доступен только если сдвигаются праздники!):

 

Месяц

Смена А (сдвигать на праздничные, дополнительные конкретные дни отдыха и все выходные)

 
 

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

 

Январь

                 

11,5

11,5

       

11,5

11,5

       

11,5

11,5

   

11,5

   

11,5

     

Февраль

11,5

11,5

       

11,5

11,5

       

11,5

11,5

       

11,5

11,5

         

11,5

11,5

   

Х

Х

 

Март

11,5

   

11,5

   

11,5

     

11,5

   

11,5

11,5

       

11,5

11,5

       

11,5

11,5

         

1 квартал

                                                               

Апрель

11,5

11,5

   

11,5

   

11,5

   

11,5

11,5

       

11,5

11,5

       

11,5

11,5

   

11,5

     

Х

 

Май

 

11,5

       

11,5

11,5

             

11,5

11,5

       

11,5

11,5

       

11,5

11,5

     

 

Если смена устроена как 8 часов вечером с 18-00 до 00-00 и 8 часов утром с 00-00 до 08-00 и нужно, чтобы сотрудники приходили так, чтобы их часть (вторая половина) смены всегда была в рабочий день, а часть (первая половина) смены могла приходится на «нерабочий день» (праздничный, выходной, дополнительный конкретный день отдыха). Например, это сотрудники, которые заряжают батареи электроинструмента/электротранспорта перед сменой сотрудников, использующих электротехнику. Т.е. они должны работать, как и сотрудники, использующие электротехнику, но выходить в день перед ними! Почему бы просто не сделать им дату отсчета на день меньше? – некорректно будут работать сдвиги выходных!

В этом случае устанавливается флажок «При заполнении сдвигать смену на предыдущий день» и дату начала отсчета указываем как первый рабочий день сотрудников, использующих электротехнику:

 

Месяц

Часы по видам времени "Явка", "Вечерние часы", выведены в формате Я/ВЧ

 
 

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

 

Январь

             

8

8

8

8

   

8

8

8

8

8

8

   

8

8

8

8

   

8

8

8

8

 
               

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

 

Февраль

8

8

   

8

8

8

8

   

8

8

8

8

8

8

   

8

8

8

8

     

8

8

8

8

Х

Х

 
 

6/2

2/6

   

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

     

6/2

2/6

6/2

2/6

 

Март

   

8

8

8

8

     

8

8

8

8

8

8

   

8

8

8

8

   

8

8

8

8

8

8

     
     

6/2

2/6

6/2

2/6

     

6/2

2/6

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

6/2

2/6

     

1 квартал

                                                               
                                                                 

Апрель

8

8

8

8

   

8

8

8

8

8

8

   

8

8

8

8

   

8

8

8

8

8

8

       

Х

 
 

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

6/2

2/6

         

Май

8

8

   

8

8

8

8

         

8

8

8

8

   

8

8

8

8

   

8

8

8

8

8

8

 
 

6/2

2/6

   

6/2

2/6

6/2

2/6

         

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

   

6/2

2/6

6/2

2/6

6/2

2/6

 

 

Способ реализации такого алгоритма следующий:

Создаем в справочнике «Графики» дополнительные реквизиты для хранения нужных значений (и настраиваем ввод/изменение/сохранение на форме элемента):

 

 

В случае с графиками этого в принципе достаточно, а если надо функционал добавить и к режимам работы – то аналогичные реквизиты создать в справочнике «Режимы работы сотрудников» и реализовать код по переносу их в форму «Графика» при создании графиков из режимов работы.

Для заполнения графика с учетом новых параметров надо внести изменения в 2 процедуры модуля объекта справочника «Графики»:

В процедуру "ЗаполнитьДанныеГрафика" в начало добавить: 

//РСГ # begin
НачинаемСдвигатьПраздникиВыходные = Ложь; // Если дата начала построения графика приходится на праздник или выходной и стоит сдвигать
// - то сдвиг начинаем после первого отработанного(не праздник и не выходной) дня.
//РСГ # en

а код заполнения рабочего времени за день: 

Если ЗаполнятьВремяЗаДень(ОбрабатываемаяДата, ВидДня, ПеренесенныеДни) Тогда
	ЗаполнитьВремяЗаДень(ОбрабатываемаяДата, ВидДня, ЧасовЗаДень, ДанныеГрафика, ПриоритетВидовВремениДляПредпраздничных, ОтражатьЧасыВДеньНачалаСмены);
КонецЕсли;
				
ОбрабатываемаяДата = ОбрабатываемаяДата + ДлинаСуток;
	
НомерДняЦикла = НомерДняЦикла + 1;

заменить на:

//РСГ # begin  
Если НЕ НачинаемСдвигатьПраздникиВыходные Тогда //Проверяем надо ли сдвигать праздники и выходные
	Если (СдвигатьПраздники И ВидДня <> Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник) 
		Или ((СдвигатьПраздники И ВидДня <> Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник)
		И (СдвигатьВыходные И ВидДня <> Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота	
		И ВидДня <> Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье)) Тогда 
		НачинаемСдвигатьПраздникиВыходные = Истина; //Устанавливаем флаг сдвига
	КонецЕсли;
КонецЕсли;	
Если НачинаемСдвигатьПраздникиВыходные	//Сдвигаем 
	И (СдвигатьПраздники 									//праздники
	Или СдвигатьВыходные) Тогда					//и выходные		
	Если ЗаполнятьВремяЗаДень(ОбрабатываемаяДата, ВидДня, ПеренесенныеДни) Тогда	//Сдвиг не нужен
		Если СдвигатьСмену 								//Сдвигаем смену по календарным дням
			И ДнейСдвигаСмены <> 0 Тогда	//вперед или назад на отличное от нуля значение 
			ЗаполнитьВремяЗаДень(ОбрабатываемаяДата + ДнейСдвигаСмены, ВидДня, ЧасовЗаДень, ДанныеГрафика, ПриоритетВидовВремениДляПредпраздничных, ОтражатьЧасыВДеньНачалаСмены);						
		Иначе	//Не сдвигаем смену по календарным дням
			ЗаполнитьВремяЗаДень(ОбрабатываемаяДата, ВидДня, ЧасовЗаДень, ДанныеГрафика, ПриоритетВидовВремениДляПредпраздничных, ОтражатьЧасыВДеньНачалаСмены);
		КонецЕсли;	
		НомерДняЦикла = НомерДняЦикла + 1;
	КонецЕсли;

	ОбрабатываемаяДата = ОбрабатываемаяДата + ДлинаСуток;

Иначе // Обычный порядок	
	Если ЗаполнятьВремяЗаДень(ОбрабатываемаяДата, ВидДня, ПеренесенныеДни) Тогда
		ЗаполнитьВремяЗаДень(ОбрабатываемаяДата, ВидДня, ЧасовЗаДень, ДанныеГрафика, ПриоритетВидовВремениДляПредпраздничных, ОтражатьЧасыВДеньНачалаСмены);
	КонецЕсли;

	ОбрабатываемаяДата = ОбрабатываемаяДата + ДлинаСуток;

	НомерДняЦикла = НомерДняЦикла + 1;
КонецЕсли;	
//РСГ # end

В функцию "ЗаполнятьВремяЗаДень" в конец надо добавить проверки на флаги "сдвига":

//РСГ # begin
Если СдвигатьПраздники Тогда //Сдвигаем праздники - Свой список праздников        
	Если НерабочиеПраздничныеДни.Найти(ОбрабатываемаяДата, "Дата") <> Неопределено Тогда     
		Возврат Ложь;			
	КонецЕсли;	
КонецЕсли;

Если СдвигатьВыходные //Сдвигаем выходные
	И (ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота
	Или ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье) Тогда 
	Возврат Ложь;			
КонецЕсли;	
//РСГ # end
 
 Полный текст доработанных процедур модуля объекта

 

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

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

ЗУП график режим смена формирование заполнение СУРВ

См. также

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта Платформа 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    96372    116    1    

123

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

Готовая интеграция для управляемых форм. Встраивается в вашу 1С как расширение. Реализует автоматический обмен данными между 1С и популярными СКУД, автоматизирует бизнес-процессы по созданию и учету сотрудников в СКУД. Значительно упрощает работу специалистов отдела кадров и отдела безопасности: избавляет от двойного ввода информации в 1С и СКУД, сокращает время составления табеля учета рабочего времени.

98000 руб.

30.01.2024    3306    131    0    

5

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    7246    19    13    

28

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

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

4500 руб.

23.08.2019    59092    185    64    

179

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3500 руб.

07.02.2023    7945    86    17    

43

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

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

3600 руб.

06.09.2016    40630    90    63    

52
Оставьте свое сообщение