Расширение функционала формирования графиков суммированного учета рабочего времени. ЗУП 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С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

14800 руб.

01.11.2012    93098    108    1    

116

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

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

29400 руб.

29.06.2023    5634    14    5    

24

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

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

4500 руб.

23.08.2019    56331    169    64    

163

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3896    11    0    

29

Рабочее место Учет рабочего времени Пользователь Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Конфигурация предназначена для выдачи пропусков с qr-кодами и для учета рабочего времени сотрудников. Кроме того, конфигурация подойдет для организации пропускной системы на предприятиях, при массовых мероприятиях и др. Детальное описание конфигурации, вопросы лицензирования, внедрения и многое другое подробно описано в руководстве пользователя.

12000 руб.

16.02.2018    41239    8    25    

17

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

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

5400 руб.

18.12.2019    26969    30    6    

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