Документ «Сбор графиков отпусков»
Организует ежегодную кампанию по сбору сведений о планируемых отпусках сотрудников и формирует основу графика отпусков организации — обязательного документа по трудовому законодательству РК.
🎯 Что это и зачем
Статья 95 Трудового кодекса РК обязывает работодателя составлять и утверждать график отпусков не позднее чем за месяц до начала каждого года. Документ «Сбор графиков отпусков» — инструмент этой подготовки: он запускает кампанию сбора, фиксирует её жизненный цикл (запущена → заполнена → завершена / аннулирована) и накапливает результат в табличной части Сотрудники с периодами планируемых отпусков (даты начала, окончания, количество дней) для каждого работника.
Казахстанской расчётной специфики (ИПН, ОПВ, ОПВР, СО, ВОСМС/ООСМС, единый платёж) этот документ не содержит — он не делает движений по регистрам и не начисляет никаких сумм. Его роль — носитель состояния процесса и собранных кадровых данных. Механизм унаследован из российской типовой ЗУП 3.1, но применяется в РК без изменений, поскольку обязательность графика отпусков закреплена казахстанским ТК.
Кто работает: инспектор по кадрам / HR-специалист, как правило один раз в год — в октябре–ноябре при подготовке графика на следующий год.
🧭 Где найти в программе
Раздел «Кадры» → пункт «Сбор графиков отпусков». Откроется журнал документов; новый создаём кнопкой «Создать».
👤 Часть 1. Для пользователя
Проходим по шагам: от пустой кампании до завершённого графика отпусков.
Урок 1. Запуск кампании сбора графиков на год
Когда: конец текущего года; HR-служба начинает готовить график отпусков на следующий год. Это корневой документ кампании.
- Создаём новый документ «Сбор графиков отпусков» кнопкой «Создать».
- Указываем Год — год, на который собираются отпуска (например,
2027). Это ключевое поле кампании; без него документ лишён смысла. - Если сбор ведётся по всей организации сразу (без разбивки по подразделениям) — поле Подразделение оставляем пустым; если по конкретному подразделению — выбираем его.
- Заполняем ИнициаторСбора — физлицо, запустившее кампанию (обычно сотрудник кадровой службы).
- Заполняем ОтветственныйЗаСбор — физлицо, отвечающее за сбор данных.
- Записываем документ; далее командой формы (точный вид команды зависит от UI) запускаем сбор — флаг
СборЗапущендолжен принять значениеИстина,Состояниеперейдёт в начальную стадию.
xs:decimal (число), не дату — вводите просто цифры года. Поле КорневойСборГрафиков у корневого документа остаётся пустым: именно пустое значение является признаком корневой кампании.DontCheck), однако документ без заполненного Года не несёт смысловой нагрузки. Статусные флаги (СборЗапущен, СборЗавершен, СборАннулирован) и поле Состояние управляются механизмом процесса — не выставляйте их вручную, используйте команды формы.Урок 2. Каскадный сбор по подразделениям
Когда: крупная организация; корневая кампания разбивается на отдельные сборы для каждого подразделения, где за каждый отвечает свой ответственный.
- Создаём корневой документ по инструкции Урока 1; поле Подразделение оставляем пустым, КорневойСборГрафиков — тоже пустым.
- Запускаем корневой сбор командой формы.
- Для каждого подразделения создаём дочерний документ: указываем Год (тот же), заполняем Подразделение, а в поле КорневойСборГрафиков ссылаемся на корневой документ — это и есть признак дочернего сбора.
- Назначаем ОтветственныйЗаСбор — руководителя или кадровика подразделения.
- Запускаем дочерний сбор; ответственный за подразделение наполняет ТЧ
Сотрудники. - После завершения всех дочерних сборов корневой документ агрегирует итог (точная механика агрегации в карте не определена).
ПодразделенияОрганизаций, так и СтруктураПредприятия. Используйте тот справочник, который соответствует вашей настройке структуры.Урок 3. Внесение планируемых отпусков сотрудников
Когда: кампания запущена (СборЗапущен = Истина, СборЗавершен = Ложь); ответственный за подразделение заполняет периоды отпусков.
- Открываем документ сбора своего подразделения.
- Переходим на вкладку / в табличную часть «Сотрудники».
- Для каждого работника добавляем строку: заполняем ФизическоеЛицо (актуальная колонка идентификации), ДатаНачала, ДатаОкончания и КоличествоДней.
- Если у сотрудника несколько частей отпуска (по ст. 95 ТК РК отпуск может делиться) — добавляем несколько строк с одним и тем же ФизическоеЛицо.
- Записываем документ; поле КоличествоСотрудников в шапке отражает охват (порядок его пересчёта в карте не определён).
Урок 4. Завершение и аннулирование сбора
Сценарий А — Завершение: все подразделения внесли данные, кампания закрывается.
- Ответственный за сбор проверяет полноту ТЧ
Сотрудники— охвачены ли все работники. - Командой формы завершает кампанию; флаг
СборЗавершенстановитсяИстина,Состояниепереходит в финальную стадию (конкретные значения перечисления в карте не приведены). - Собранные данные используются кадровой службой для формирования и утверждения графика отпусков организации.
Сценарий Б — Аннулирование: кампания запущена ошибочно или отменена решением руководства.
- Уполномоченный пользователь аннулирует сбор командой формы.
- Автоматически устанавливаются:
СборАннулирован= Истина,ДатаАннулирования(момент отмены) иОтветственныйЗаАннулирование(пользователь ИБ). - История кампании сохраняется — документ не удаляется.
Истина — платформенных взаимоисключений нет. На практике это недопустимо; следите за корректностью через Состояние (перечисление СостоянияСбораГрафиковОтпусков), которое должно отражать текущую стадию однозначно.🛠 Часть 2. Для программиста
Состав объекта и логика работы. Конфигурация ЗУП для Казахстана 3.1, релиз 3.1.2.24.
Структура объекта
Тип объекта — документ. Нумерация: тип номера String, длина 11, периодичность Nonperiodical (сквозная, не сбрасывается по году). В шапке 16 реквизитов, 2 табличные части; BSL-модули и формы в выгрузке отсутствуют (bsl_static=[], forms=[]).
Реквизиты шапки
| Имя | Тип | Обяз. | Назначение |
|---|---|---|---|
Год | xs:decimal | DontCheck | Год кампании сбора; логически обязательно — без него кампания не имеет смысла |
СборЗапущен | xs:boolean | DontCheck | Флаг: кампания стартовала |
СборЗавершен | xs:boolean | DontCheck | Флаг: данные собраны, кампания закрыта |
СборАннулирован | xs:boolean | DontCheck | Флаг: кампания отменена |
Подразделение | CatalogRef.ПодразделенияОрганизаций / CatalogRef.СтруктураПредприятия (составной) | DontCheck | Область охвата сбора; в дочерних документах каскада обязательно заполнен |
Состояние | EnumRef.СостоянияСбораГрафиковОтпусков | DontCheck | Текущая стадия процесса; управляется механизмом сбора, не вручную |
КорневойСборГрафиков | DocumentRef.СборГрафиковОтпусков | DontCheck | Ссылка на корневую кампанию; пустое значение = документ сам корневой |
ИнициаторСбора | CatalogRef.ФизическиеЛица | DontCheck | Физлицо, запустившее кампанию |
ОтветственныйЗаСбор | CatalogRef.ФизическиеЛица | DontCheck | Физлицо, отвечающее за сбор данных по подразделению |
КоличествоСотрудников | xs:decimal | DontCheck | Число сотрудников, охваченных сбором; источник значения (ручной/расчётный) не определён |
ДатаАннулирования | xs:dateTime | DontCheck | Дата/время аннулирования; заполняется вместе с СборАннулирован |
ОтветственныйЗаАннулирование | CatalogRef.Пользователи | DontCheck | Пользователь ИБ, выполнивший аннулирование; аудиторский след |
Внешний | xs:boolean | DontCheck | Данные пришли из внешней системы (самообслуживание/обмен) |
ИдентификаторДокумента | xs:string | DontCheck | Строковый ключ для сопоставления с внешней системой; используется в паре с Внешний |
Ответственный | CatalogRef.Пользователи | DontCheck | Стандартный реквизит «кто ведёт документ в ИБ» |
Комментарий | xs:string | DontCheck | Произвольный комментарий |
Табличные части
ТЧ Сотрудники — основной результат сбора: список работников и планируемые периоды отпусков.
| Имя | Тип | Назначение |
|---|---|---|
УдалитьСотрудник | CatalogRef.Сотрудники | Устаревшая колонка (синоним «Сотрудник»); префикс «Удалить» = пометка к удалению в типовой; не использовать для идентификации |
ФизическоеЛицо | CatalogRef.ФизическиеЛица | Актуальная идентификация работника в строке — заполнять именно эту колонку |
ДатаНачала | xs:dateTime | Начало планируемого отпуска |
ДатаОкончания | xs:dateTime | Окончание планируемого отпуска |
КоличествоДней | xs:decimal | Количество дней отпуска в периоде; согласованность с интервалом дат не контролируется |
ТЧ ДополнительныеРеквизиты — стандартный механизм доп. реквизитов (подсистема «Свойства» БСП).
| Имя | Тип | Назначение |
|---|---|---|
Свойство | ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения | Вид дополнительного реквизита |
Значение | (Характеристика) | Значение свойства |
ТекстоваяСтрока | xs:string | Текстовое представление значения |
Движения по регистрам
По данным карты (metadata.register_records пуст) документ не делает движений ни по одному регистру. Проведение меняет только флаги и поле Состояние в самом документе — никаких записей в регистры расчёта, накопления или сведений не создаётся.
Как формируется проведение — реальный код (3.1.2.24)
bsl_static / bsl_summaries пусты), поэтому дословный текст процедур привести невозможно. Ниже — реконструкция по метаданным: это не цитата исходного кода, а корректная по структуре схема работы документа.На уровне метаданных ни у одного реквизита нет fill_value_required: ShowError — платформенная проверка заполнения не назначена ни для одного поля. Все проверки — исключительно прикладные (в модуле объекта, который в выгрузке отсутствует).
// Реконструкция по metadata. НЕ цитата кода.
// Документ не является регистратором ни одного регистра (register_records=[]).
// Проведение управляет только состоянием самого документа.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// 1. Управление флагами жизненного цикла:
// СборЗапущен / СборЗавершен / СборАннулирован
// и перечислением Состояние (EnumRef.СостоянияСбораГрафиковОтпусков).
// Конкретные переходы состояний — в модуле объекта (в выгрузке нет).
// 2. При аннулировании:
// СборАннулирован = Истина;
// ДатаАннулирования = ТекущаяДатаВремя();
// ОтветственныйЗаАннулирование = ТекущийПользователь();
// 3. Движений по регистрам НЕТ — Движения.Записать() не вызывается
// (register_records пуст).
КонецПроцедуры
Зависимости
BSL-зависимости в выгрузке не определены. Структурно объект связан:
| Зависимость | Что используется |
|---|---|
| Справочники | ФизическиеЛица, Пользователи, Сотрудники (в ТЧ), ПодразделенияОрганизаций, СтруктураПредприятия |
| Перечисление | СостоянияСбораГрафиковОтпусков — стадии процесса (значения в карте не приведены) |
| Документ (самоссылка) | СборГрафиковОтпусков — поле КорневойСборГрафиков образует иерархию кампаний |
| ПВХ (БСП) | ДополнительныеРеквизитыИСведения — подсистема доп. реквизитов |
| Документы-основания | Нет (metadata.based_on пуст) |
| Создаётся на основании | Нет (metadata.inverse_based_on пуст) |
🔗 Связанные разделы
- График отпусков — хаб раздела «Отсутствия»; утверждённый график, который строится на основе собранных данных.
- Отпуск — документ фактического предоставления отпуска с начислением оплаты, ОПВ, ИПН, ВОСМС и пр.