Как добавить расписание в 1с
Создание расписаний регламентных заданий
Расписание регламентного задания состоит из месячного, недельного и дневного расписания, а также одного или нескольких расписаний в пределах дня.
Создание нового расписания лучше начать с указания даты начала и даты окончания (во встроенном языке - свойства ДатаНачала и ДатаКонца расписания регламентного задания). В механизме расписаний существует соглашение, что если какой-то элемент расписания не указан, то он не участвует в создании расписания. Например, если мы не указали дату окончания, то расписание будет выполняться неограниченно долго. Также, если мы не указали дату начала, то расписание будет выполняться от текущего момента. Расписание не будет выполняться до даты начала, и после даты окончания расписания.
После того, как мы указали дату начала и окончания расписания нужно задать его периодичность, т.е. с каким периодом в днях, нужно выполнять расписание (задание периодичности в пределах дня мы рассмотрим далее). Периодичность в днях задается в диалоге редактирования расписания параметром Повторять каждые . дней (во встроенном языке - свойство ПериодПовтораДней расписания регламентного задания). Указав значение 0, мы задаем выполнение расписания только в пределах текущего дня. Указав значение 1, мы задаем выполнение расписания - каждый день. Указав значение 2 - через день и т.д.
Далее определим недельное и месячное расписания. Недельное и месячное расписания удобно рассматривать в виде фильтра по отношению к основному расписанию, т.е. они накладывают дополнительные ограничения на выполнение основного расписания. Недельное расписание указывает, по каким дням недели (в дополнение к основному расписанию, которое, как мы помним, выполняется с заданной периодичностью) следует выполнять расписание (во встроенном языке - свойство ДниНедели расписания регламентного задания). Например, расписание:
будет выполняться через день, но только по понедельникам, средам и пятницам. Если понедельник, среда или пятница выпадут на пропускаемый день, то расписание выполнено не будет.
В недельном расписании также можно задать период повтора недель - Повторять каждые . недель (во встроенном языке - свойство ПериодНедель расписания регламентного задания) . Указав значение 1, мы задаем выполнение расписания каждую неделю, 2 - через неделю (значение 0 не используется). Значение периода повтора недель является дополнением к основному расписанию. Например, расписание:
будет выполняться через неделю по вторникам.
Месячное расписание определяется аналогично недельному. Указав месяцы (во встроенном языке - свойство Месяцы расписания регламентного задания), мы задаем в дополнение к основному расписанию, по каким месяцам будет выполняться расписание. Указав выполнять в . день месяца (во встроенном языке - свойство ДеньВМесяце расписания регламентного задания), мы задаем - по каким дням, начиная с начала (положительные значения) или с конца (отрицательные значения), будет выполняться расписание. Например, расписание:
будет выполнено только в те понедельники, которые приходятся на конец месяца.
Указав выполнять в . день недели в месяце (во встроенном языке - свойство ДеньНеделиВМесяце расписания регламентного задания), мы задаем порядковый номер дня недели в месяце, когда нужно выполнять расписание. Положительные значения указывают порядковый номер с начала месяца, отрицательные - с конца. Следует учесть, что порядковый номер дня недели в общем случае не совпадает с порядковым номером недели в месяце. Например, расписание:
будет выполняться каждый первый понедельник месяца.
Рассмотрим, как определять расписание в течение дня. Расписание в течение дня задается в дополнение к основному расписанию, т.е. планировщик заданий сначала определяет, по каким дням следует выполнять расписание. Если текущий день подходит, то планировщик определяет, как в течение дня должно выполняться расписание. Механизм расписаний позволяет задавать несколько расписаний в течение дня.
Для начала зададим время начала и время окончания расписания (во встроенном языке - свойство ВремяНачала и ВремяКонца расписания регламентного задания). Время начала определяет, с какого времени будет выполняться расписание. Если время начала не задано, то берется время начала дня (00:00). Время окончания определяет, по какое время будет выполняться расписание. Если время конца не задано, то берется время конца дня (меньше 00:00 следующего дня).
Далее нужно задать периодичность в течение дня, когда будет выполняться расписание. Параметр повторять через . сек. (во встроенном языке - свойство ПериодПовтораВТечениеДня расписания регламентного задания) указывает, через сколько секунд после начала предыдущего запуска нужно запускать следующий (если предыдущий запуск не завершен, будет выполнено ожидание его завершения). Нулевое значение указывает на однократное в течение дня выполнение расписания. Например, расписание:
будет выполняться каждые две минуты.
Аналогичный параметр повторять с паузой . сек. (во встроенном языке - свойство ПаузаПовтора расписания регламентного задания) задает период повтора, но только с момента завершения предыдущего запуска.
Дополнительные параметры завершать после и завершать через (во встроенном языке - свойства ВремяЗавершения и ИнтервалЗавершения расписания регламентного задания) определяют время и интервал в секундах с момента запуска, после которого задание будет принудительно завершено, если к этому времени оно не завершилось самостоятельно. Эти параметры удобно применять, когда нужно принудительно завершать слишком долгие задания (например, ночные регламентные процедуры), чтобы они не мешали нормальной работе пользователей.
Следует учесть, что периоды, которые мы рассмотрели, задают минимальное время. Например, период повтора в течение дня задает минимальное время, через которое будет запущено задание. Если по каким-либо причинам, задание не может быть запущено в заданное время, запуск откладывается. Если отложенный запуск становится возможным в течение этого же дня, то при вычислении расписания используется время последнего запуска этого дня. Если запуск откладывается до следующего дня, до время последнего запуска сбрасывается, т.е. считается, что задание этим днем не выполнялось.
Для самописной конфигурации на базе БСП была разработана обработка "Календарь", в которой используется планировщик 1С. В публикации пойдёт речь о реализации с его помощью некоторых задач, таких как перетаскивание элементов календаря мышью или настройка повторения событий по расписанию.
В нашем "Календаре" отображаются стандартные "Задачи исполнителя" и элементы собственного справочника "События".
На основании справочника "События" можно стартовать бизнес-процессы, кроме того, для них доступна настройка повторения по расписанию. Нужно отметить, что повторяются события только в календаре, новые элементы справочника при этом не создаются. А вот бизнес-процессы на основании этих виртуальных повторяемых событий должны создаваться вполне реальные, с реальными датами. Рассмотрим пример реализации данной задачи.
Справочник "События" выглядит следующим образом:
В режиме "Предприятие":
Расписание - реквизит формы с типом значения "Произвольный". При его редактировании свойства расписания записываются в реквизиты события, а при создании формы события - наооборот.
При заполнении календаря расписание элементов заполняется сходным образом:
Планировщик 1С обрабатывает элементы с заполненным расписанием следующим образом: на каждый период повтора создаётся элемент планировщика с датами начала и окончания, соответствующими периоду повтора, и значением единственного реального элемента, который мы добавили при обходе выборки.
Выглядит это так:
Обработка "ПередНачаломРедактирования" элемента планировщика у нас нестандартная и вызывает открытие формы задачи/события в зависимости от типа значения. Но какой бы элемент из повторяющихся мы не открывали, даты начала и окончания в форме будут исходные, в данном случае 18.08.2017 и 19.08.2017.
Значит, из календаря будем открывать форму с параметрами, и обрабатывать их при создании на сервере.
Обработчик при создании формы события:
Если присмотреться, на размещённом в начале статьи скриншоте с формой события по два элемента с заголовками "Дата начала" и "Дата окончания". В зависимости от того, повторяемый это элемент или основной, видны либо реальные "Дата начала" и "Дата окончания", либо реквизиты формы "Дата начала элемента повторения" и "Дата окончания элемента повторения".
Стандартный ввод на основании для повторяемых элементов тоже пришлось переписать:
Разумеется, все запущенные на основании повторяемых элементов бизнес-процессы будут подчинены единственному реальному событию.
А теперь о реализации так полюбившейся пользователям функции - перемещения элементов календаря мышкой с сохранением изменений. Планировщик позволяет перемещать элементы и изменять их границы мышью "из коробки". При этом у элементов планировщика меняются даты начала и окончания. Осталось только записать их в реальные объекты.
Удобно выделять элементы планировщика разных видов цветом. У элемента есть свойства "ЦветФона", "ЦветТекста" и "ЦветРамки". В зависимости от тех или иных условий можно выбирать какие угодно их сочетания. Планировщик сам позаботится о том, чтобы элементы остались видимыми. В нашей конфигурации задачи, не принятые к исполнению, выделяются одним цветом, принятые - другим, а для каждого события цвет выбирается пользователем и сохраняется в справочнике в реквизите типа "ХранилищеЗначений". При заполнении планировщика данными цвет события устанавливается так:
Вот и всё самое интересное, что мне удалось выяснить в процессе работы с планировщиком. Возможно, кому-нибудь эта информация будет полезна.
Во многих конфигурациях возникает необходимость в отображении данных в виде календаря, расписания. Задачи визуального планирования, например, часто возникают при автоматизации салонов красоты, стоматологических и ветеринарных клиник, фитнес-центров и т.д. При большом желании такие задачи можно было частично автоматизировать, используя существующие в платформе инструменты: табличный документ или диаграмму Ганта. Однако реализация подобных решений всегда была очень трудоёмкой, а их функциональность - недостаточной. К тому же они плохо переносились из одной конфигурации в другую, и не гарантировали одинаковую работоспособность в разных клиентских приложениях и разных операционных системах.
По этим причинам мы реализовали в платформе новый инструмент - Планировщик. Он предназначен для того, чтобы автоматизировать планирование задач, событий, встреч, составление календарей, расписаний и тому подобных задач.
Архитектура
По большому счёту весь инструмент представляет собой совокупность двух новых сущностей: объекта встроенного языка Планировщик и поля формы, имеющего вид Поле планировщика. Реквизит формы типа Планировщик отображается в поле формы, благодаря чему становится возможным визуализация данных в удобном для планирования виде и их интерактивное изменение.
Планировщик не является объектом конфигурации, поэтому никакой собственной структуры для хранения данных в СУБД он не имеет. Однако с помощью встроенного языка вы можете загрузить в него данные практически любого объекта конфигурации, лишь бы этот объект обладал двумя реквизитами типа Дата. Один из них будет указывать на начало элемента на оси времени, а другой - на конец этого элемента.
После того, как пользователь изменил в форме какой-либо элемент планировщика, платформа генерирует событие ПриОкончанииРедактирования. В этом событии вы можете изменить соответствующие данные того объекта конфигурации, из которого они загружались, и сохранить их в СУБД.
Каждый элемент планировщика имеет начало и конец (тип Дата), текст, картинку и значение. Значение не отображается в форме, а служит для связи элемента с конкретным объектом данных. Например, это может быть ссылка на элемент справочника, если планировщик отображает данные этого справочника. Естественно, цвет фона и шрифт каждого элемента также можно настроить индивидуально.
Кроме элементов планировщик обладает ещё одной важной коллекцией - это измерения. Каждое измерение позволяет группировать элементы планировщика по отношению к каждому значению этого измерения. Например, в качестве измерения может выступать учебная группа. Тогда элементы планировщика (события) вы можете анализировать по их отношению к каждой из имеющихся у вас учебных групп: 961 группа, 962 группа и 963 группа.
Представление данных
Планировщик имеет три важных свойства, с помощью которых вы можете создавать различные представления данных. Это свойства ЕдиницаПериодическогоВарианта, КратностьПериодическогоВарианта и ПоложениеШкалыВремени. С помощью этих свойств можно создавать такие знакомые вам представления как «День», «Неделя» или «Месяц».
Проще всего понять работу этих свойств на примерах.
Например, чтобы показать один день, вы можете задать единицу - час, кратность - 24 и расположить шкалу слева:
Чтобы показать рабочую неделю вертикально, вы можете задать единицу - день, кратность - 5 и расположить шкалу слева:
Чтобы показать полную неделю горизонтально, вы можете задать единицу - день, кратность - 7 и расположить шкалу вверху:
На этом же примере удобно показать ещё одно интересное свойство планировщика - отображаемый интервал. Если задать отображаемый интервал больше, чем «кратность единиц», то есть в данном случае больше, чем 7 дней, то планировщик начнёт переносить временную шкалу. В данном случае вниз. Это позволяет показать все даты из отображаемого интервала:
Таким образом вы можете показать полный месяц или другой произвольный интервал дат.
Интересным является то, что отображаемый интервал - это на самом деле коллекция элементов. Коллекция отображаемых интервалов. В этом примере мы задали один такой интервал, но их можно задать несколько. И совсем не обязательно, что эти интервалы должны следовать друг за другом непрерывно.
Например, задав три отображаемых интервала (7 февраля, 14 февраля и 21 февраля) вы можете одновременно показать три пятницы, чтобы сравнить состав дел в эти дни и, возможно, перенести невыполненные дела на следующую пятницу:
Отображение шкалы времени и элементов
Планировщик может содержать не одну, а несколько шкал времени, каждая со своей периодичностью. Это удобно в тех случаях, когда отображаемые данные нужно идентифицировать, например, с точностью до дня и часа:
Вы можете выравнивать элементы по шкале времени, или наоборот, отображать реальный промежуток времени:
Саму шкалу времени вы можете показать полностью, либо скрыть её начало и/или конец. Это удобно, например, для отображения только рабочих часов:
Если все элементы, которые нужно отобразить, не помещаются в одну ячейку, вместо них Планировщик выводит надпись «+ Ещё» и количество элементов, которые скрыты. Нажав на эту надпись вы можете увидеть список всех скрытых элементов и открыть любой из них:
По желанию в планировщике можно включить или выключить отображение текущего времени:
Элементы планировщика могут отображать время начала и окончания, только время начала или не отображать время вообще:
Вы можете раскрасить интервалы фона чтобы, например, выделить другим цветом нерабочие часы или выходные дни:
Редактирование данных
Добавление данных в планировщик осуществляется простым щелчком мыши. При этом открывается окно быстрого редактирования элемента планировщика:
В этом окне вы можете задать текст элемента (события). Если нужно изменить другие свойства элемента, по кнопке Редактировать в этом окне открывается стандартная форма для редактирования элемента планировщика:
В ней уже можно задать начало, конец элемента, указать значения измерений, если они используются, а также задать расписание для элемента, если это событие повторяющееся.
Переопределить эти формы можно в событиях ПередНачаломБыстрогоРедактирования и ПередНачаломРедактирования.
Редактирование существующих элементов вы можете выполнять как через эти формы, так и перетаскиванием элементов и изменением их границ с помощью мыши:
Планировщик поддерживает групповые операции редактирования. То есть вы можете выделить сразу несколько элементов и переместить, скопировать, изменить или удалить их:
Планировщик обеспечивает перетаскивание не только в пределах «себя самого», но и в/из других элементов формы. Эта возможность может быть полезна, например, для того, чтобы из общего списка дел, показанного в форме в виде таблицы, можно было перетащить в планировщик отдельные события.
Расписание
Для любого элемента вы можете задать расписание - периодичность, с которой будет повторяться это событие:
При этом можно ограничить интервал, в течение которого событие будет повторяться:
При необходимости можно изменить не только отдельное из повторяющихся событий, но и все события одновременно. Для этого в форме редактирования нужно установить флажок Применить редактирование ко всем повторам:
Где найти и как заполнить график работы в 1С, особенности заполнения и настроек нестандартных графиков работы в 1С:ЗУП3.8 – читайте в нашей статье.
Работодатель устанавливает графики в соответствии с целями продуктивности на своем предприятие. Рассмотрим их отражение в программе 1С:Зарплата и управление персоналом 8.3 (1С:ЗУП).
Где и как заполнить график работы в 1С:ЗУП 8.3: «пятидневка»
Для заполнения графиков в программе зайдем в меню «Настройки» - раздел «Предприятие» - графики работы сотрудников. По кнопке «Создать» открывается настройка и создание нового графика. Указываем его наименование, устанавливаем текущий год и проваливаемся в предложенное нам меню «Изменить свойства графика».
Сначала рассмотрим настройку графика в 1С, по которому работает большинство россиян – пятидневка. Указываем:
- Способ заполнения графика « По дням недели (пятидневка, шестидневка, и т.п.)» и что при заполнении учитываются праздничные дни. Расписание работы будет заполнено автоматически в соответствии с заданными настройками.
- В разделе «Виды времени» устанавливаем «Явка». После всех действий мы видим, что длительность рабочей недели составляет 40 часов (Рис.1).
- Нажимаем кнопку «ОК» и график в 1С автоматически заполняется, указывая все рабочие дни цифрами «8», а выходные и праздничные дни пустыми красными графами. Удобно, что настройки мы производим единожды – на следующий год достаточно указать новый период и по кнопке «Заполнить» график будет настроен.
Заполняем график при неполном рабочем времени в 1С:ЗУП 8.3
Встречаются случаи, когда сотрудник работает пять дней в неделю, на неполном рабочем дне. В этом случае мы:
- создаем новый график, указываем такие же настройки, как и в графике «Пятидневка»
- устанавливаем галку «Неполное рабочее время» - неполный рабочий день (здесь же можно указать, что ведется учет по неполной рабочей недели); и считать норму по другому графику «Пятидневка».
- В табличной части с расписанием работы необходимо вручную указать количество часов работы на каждый день.
Заполняем сменный график работы в 1С:ЗУП 8.3
Существует учет по видам времени: явка, ночные часы и вечерние часы – они берутся за основу составления графиков со сменным характером работы на каждом предприятие. Рассмотрим составления такого графика, например график: день – явка (12 часов), второй день – вечернее время (3 часа) и ночное (9 часов), третий день – отсыпной, четвертый - выходной.
- В свойствах графика указываем способ заполнения «По циклам произвольной длины (сменные графики)» и то, что при заполнении не стоит учитывать праздничные дни; ведется суммированный учет рабочего времени; при подсчете переработок определять норму по «Производственному календарю».
- Виды времени: если на предприятие ведется учет не только ночного времени, но и вечернего (а в нашем примере таковой учет и ведется); устанавливаем флажки на «Явка», «Ночные часы» и «Вечерние часы».
- В таблице «Расписание работы» указываем номер дня «1»: явка 13; номер дня «2»: ночные часы 9, вечерние часы 3; два последних дня остаются пустыми (Рис.2). После нажатия кнопки «Ок» график заполнится корректно.
Существует большое количество способов составления в программе «Зарплата и управление персоналом, редакция 3.0», стоит лишь задать правильные параметры и заполнить график.
Читайте, как рассчитать в 1С:ЗУП 8.3 часовую тарифную ставку в зависимости от нормы по графику сотрудника, здесь
Важно! Без составленных графиков зарплата сотрудникам начисляться не будет. График необходимо подвязать к сотруднику при приеме на работу, а изменить график на другой можно с помощью документа «Кадровый перевод» или «Кадровый перевод списком» (добавить сотрудника – на закладке «Главное» устанавливаем галку «Перевести на другой график»).
Заполняем индивидуальный график работы в 1С:ЗУП 8.3
Если у сотрудника нет определенного, установленного графика, то есть ежемесячно изменяются рабочие дни, в этом случае рекомендовано создавать «Индивидуальные графики работы» (меню «Зарплата» - Учет времени - Индивидуальные графики). В данном случае график заполняется вручную ежемесячно: в верхней колонке указываем «Явку» и количество часов, в нижней части «ночное» или «вечернее» время и количество часов (Рис.3).
Итак, мы рассмотрели, где и как заполнить графики работы в 1С:ЗУП 3.8, сделали настройки нестандартных графиков работы в 1С.
Если у вас остались вопросы по заполнению и настройке графиков работы в 1С:ЗУП 3.8, ответим на нашей Линии консультаций 1С. Наши эксперты не только консультируют устно, но и могут подключиться к вашей рабочей базе 1С, чтобы помочь найти ошибку или сделать настройку программы 1С.
Данные производственного календаря сами по себе не используются в учете, на основании него формируются графики работы подразделений и сотрудников. Поэтому его заполнение необходимо проверять перед началом каждого календарного года до заполнения общих графиков сотрудников.
В программе 1С: Зарплата и управление персоналом 8 предусмотрено создание нескольких производственных календарей. Это может понадобиться, если в программе ведется учет по нескольким организациям, находящимся в различных регионах, или для организаций, обособленные подразделения или филиалы которых расположены в регионах, имеющих собственные праздничные дни, например, Татарстан или Башкортостан (для таких регионов норма дней не совпадает с общероссийским производственным календарем).
Возможно создавать региональные производственные календари, заполненные по заложенному в программу шаблону, заполненному в соответствии с региональным законодательством. При необходимости их можно создать самостоятельно.
Список всех производственных календарей хранится в справочнике Настройка - Производственные календари.
По умолчанию используется включенный в поставку программы производственный календарь с наименованием «Российская Федерация» - это общегосударственный календарь, праздничные дни и переносы выходных дней в котором заполнены (обновляются) автоматически в соответствии с законодательством РФ. Каждый вид дня в производственном календаре обозначается своим цветом:
- рабочий день – черным,
- предпраздничный – темно-синим,
- праздничный – фиолетовым,
- суббота – темно-красным,
- воскресенье – красным.
Настройка производственного календаря осуществляется на каждый календарный год. Выбор года производится в поле Год с помощью кнопок со стрелками. В программе производственный календарь Российская Федерация на 2021 год заполняется автоматически в соответствии с изменениями на этот год.
Информация обо всех выполненных переносах отображается в нижней части формы производственного календаря.
Внесение ручных правок в календарь
- Если в последующем будет необходимо перенести выходной день, совпадающий с праздничным .
Для этого нужно выделить в календаре выходной день, который требуется перенести, нажатием правой кнопки мыши на выделенном дне вызвать контекстное меню и выбрать пункт Перенести день (или нажать на кнопку Перенести день в верхней части формы производственного календаря).
В появившемся диалоговом окне указать дату, на которую следует перенести выходной день. Перенос выходного дня выполняется аналогично переносу выходного дня при его совпадении с праздничным днем.
- Если необходимо назначить определенный день региональным праздничным днем .
Для этого нужно выделить в календаре необходимый день, нажатием правой кнопки мыши на выделенном дне вызвать контекстное меню и выбрать пункт Изменить день (или нажать на кнопку Изменить день в верхней части формы производственного календаря).
В появившемся списке указать вид дня Праздник. Для отмены данного назначения необходимо нажатием правой кнопки мыши на «ошибочном» дне вызвать контекстное меню и выбрать пункт Изменить день (или нажать на кнопку Изменить день в верхней части формы производственного календаря), и в появившемся списке указать вид дня: Рабочий, Суббота, Воскресенье или Предпраздничный.
- Если необходимо назначить определенный день рабочим предпраздничным днем .
Нужно выделить в календаре необходимый день, нажатием правой кнопки мыши вызвать контекстное меню и выбрать пункт Изменить день (или нажать на кнопку Изменить день в верхней части формы производственного календаря), и в появившемся списке указать вид дня Предпраздничный.
Для отмены данного назначения необходимо нажатием правой кнопки мыши на «ошибочном» дне вызвать контекстное меню и выбрать пункт Изменить день (или нажать на кнопку Изменить день в верхней части формы производственного календаря), и в появившемся списке указать вид дня: Рабочий, Суббота, Воскресенье или Праздник.
Запись выполненных настроек в информационную базу производится по кнопке Записать или Записать и закрыть.
Изменения в производственный календарь имеет смысл вносить в том случае, если данные календаря нужны, но официально он еще не принят и в программе его еще нет, т.к. не все переносы правительство утвердило.
Можно заполнить переносы раньше, а потом, когда данные общегосударственного календаря будут утверждены и войдут в поставку программы, переносы автоматически корректируются.
Существует возможность сформировать печатную форму производственного календаря, нажав на кнопку Печать. В печатной форме выводятся данные о количестве рабочих, календарных, выходных и праздничных дней, а также количество часов при 40-часовой, 36-часовой и 24-часовой рабочей неделе и среднемесячное количество часов.
Добавление нового производственного календаря
Для добавления в справочник нового производственного календаря нажмите на кнопку Создать.
- В поле Наименованиевведите наименование производственного календаря.
- В поле Кодукажите произвольный код производственного календаря.
- В поле Годукажите год, на который осуществляется настройка производственного календаря (по умолчанию устанавливается текущий год).
- Нажмите на кнопку Заполнить по умолчанию, и календарь заполнится по пятидневке без учета общероссийских праздников.
- Далее с помощью кнопок Изменить день и Перенести день необходимо будет настроить производственный календарь: сделать перенос праздничных дней, приходящихся на субботу или воскресенье, пометить праздничные и предпраздничные дни.
Если необходимо ввести новый календарь, зависимый от федерального, установите флаг Является региональным календарем и выберите федеральный календарь из выпадающего списка. Далее нажмите на кнопку Заполнить по умолчанию.
Для того чтобы при расчете зарплаты использовался именно созданный региональный календарь, необходимо его указать при настройке графика работы сотрудников.
Читайте также: