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

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

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

Примечание

Работает только c XLSX!

Описание опций:

--format - всегда должен должно быть 10;
--strict - для более строгой проверки исходного документа, рекомдуется использовать хотя бы при первом запуске (также останавливает работу, если очередного пользователя нет в базе: Account.full_name);
--data-offset - способ принудительно указать, где находятся данные (номер листа указать нельзя, всегда используется №2), например, можно указать номер строки (2) или ячейку (A2);
--ignore-worktime-codes - позволяет избежать (актуально при --strict) завершения с ошибкой, если в таблице встретится неизвестное обозначение (буквенный код) времени работы;
--errors-limit - позволяет задать количество ошибок (сейчас справедливо только для случая с неизвестными ФИО), после которого импорт аварийно завершится (при --strict это не спасает);
--just-inserts - не позволяет обновлять или удалять записи из календаря, рекомендается использовать, если с календарём (в заданный период и по ФИО из табеля) велась какая-то ручная работа, так как есть риск её потерять. Вместо изменений и удалений будет вывод в логи. Добавление новых записей в календарь сохранится;
--no-dry-run - без указания этого параметра изменения в БД производиться не будут;

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

  • С первого листа берётся только диапазон дат отчётного периода, даты указываются включительно, формат дат ожидается только такой: dd.mm.yyyy, при этом день и месяц не обязательно дополняются нулями слева, т.е. могут быть как одно- так и двух-циферными, год должен быть полным. Даты ищутся по ключевой фразе «Отчетный период» в первых строках (20-ти на данный момент) документа.

  • Со второго листа берутся сами данные. При строгом (–strict) режиме, проверяются заголовки столбцов и находиться они должны в первой строке, а начинаться с первого столбца, без вариантов (A1). Если опустить этот параметр, то заголовки не проверяются и могут отсутствовать, они больше ни на что не влияют. Заголовки ожидаются такие: № | Сотрудник | Итого | 01 | 02 | …

Формат строгий (strict):

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

  • в первом столбце первой строки – номера (поряд не не учитывается);

  • во втором столбце первой строки – ФИО;

  • третий столбец первой строки игнорируется;

  • последующие столбцы во второй строке (!) содержат данные, это вещественное число (игнорируется) или буквенный код рабочего времени, на один день – один столбец.

Допустимы такие коды, другие приведут к ошибке или будут проигнорированы (см. —ignore-worktime-codes): Б, ОТ, ОД, ОЖ, Р, КД, ДО, НВ.

Следующие коды допустимы, но никак не отражаются в БД (игнорируются): В, К, НН.