Импорт табеля 1С по отсутствию сотрудников в события календаря Staffcop

Теперь можно импортировать данные о больничных, отпусках и отгулах сотрудников из табеля 1С в календарь Staffcop.

Шаги

  1. Экспортируете данные из 1С в Excel в формате XLSX.

  2. Оформите данные в правильном формате.

  3. Запустите команду импорта.

В результате скрипт проверит файл и по коду рабочего времени добавит больничные, отпуска и другие календарные события в Staffcop.

Команда импорта

staffcop update_calendar_from_file --format=10 --strict --no-dry-run /path/to/file.xlsx

Примечание

Работает только c файлами в формате XLSX.

По итогам выполнения скрипта терминал выведет список операций:

../_images/1C_import_5.png

При успешном переносе данных поле Updates изменится на количество календарных событий.

Описание флагов

Флаг

Описание

--format

Должен быть равен 10

--strict

Позволяет убедиться, что все пользователи есть в базе.
Если пользователя нет, импорт остановится.
Пользователь проверяется по полному имени из поля Account.full_name

--data-offset

Позволяет принудительно указывать нахождение данных.
Номер листа указать нельзя: всегда используется второй лист, но можно задать
номер строки (2) или ячейку (A2)

--ignore-worktime-codes

Игнорирует неизвестные коды рабочего времени в режиме --strict.
Позволяет избежать завершения с ошибкой

--errors-limit

Устанавливает лимит на количество ошибок с неизвестными ФИО.
При достижении лимита импорт остановится.

При использовании --strict параметр не работает

--just-inserts

Не позволяет обновлять или удалять данные в календаре.

Используйте, если вручную изменили ФИО в заданный период,
чтобы не потерять изменения. Вместо изменений будет вывод в логи.
Новые записи в календаре будут сохраняться

--no-dry-run

Без этого флага изменения не будут внесены в базу данных

Формат данных файла импорта

Примечание

Получить готовый шаблон файла импорта можно у Технической поддержки.

Используются только первые два листа.

Первый лист

Укажите на Листе 1 диапазон дат отчетного периода:

../_images/1C_import_1.png
  • даты должны быть в формате dd.mm.yyyy: например, 12.05.2025;

  • день и месяц могут быть одно- или двухзначными, но год всегда полный;

  • формат даты должен быть Текстовый, а перед датой должна стоять кавычка ` ;

    • чтобы установить формат, перейдите в ГлавнаяЧисловой формат и выберите Текстовый.

  • даты ищутся по ключевой фразе Отчётный период, на данный момент проверяются первые 20 строк.

    Примечание

    Во фразе Отчётный период должна быть буква Ё, иначе скрипт выведет ошибку парсинга и остановится.

Второй лист

На Листе 2 укажите данные сотрудников.

../_images/1C_import_2.png

Заголовки:

  • заголовки должны располагаться в первой строке, начиная с первого столбца (ячейка A1);

  • формат корректного заголовка: № | Сотрудник | Итого | 01 | 02 | ….

../_images/1C_import_4.png

Данные сотрудника:

  • в первом столбце первой строки указывается номера, при этом порядок не имеет значения;

  • ячейки в первых трёх столбцах могут быть объединены по вертикали;

  • данные сотрудника должны занимать две строки:

  • в столбце Сотрудник в первой строке введите Полное Имя пользователя, которое указано в базе данных Staffcop:

../_images/1C_import_3.png
  • во второй строке столбца Сотрудник и в столбце Итого должен стоять игнор;

  • в остальных столбцах второй строки должны быть данные: вещественные числа (игнорируются) или код рабочего времени. Каждый столбец соответствует одному дню.

Допустимые коды рабочего времени

  • Б — больничный,

  • ОТ — отпуск,

  • ОД — отгул,

  • ОЖ — ожидание,

  • Р — работа,

  • КД — командировка,

  • ДО — день отдыха,

  • НВ — неявка.

Другие коды приведут к ошибке или, при использовании флага --ignore-worktime-codes, будут проигнорированы.

Игнорируемые коды

Допустимы, но не отражаются в базе данных:

  • В — выходной,

  • К — командировка,

  • НН — неявка.