Как сделать рассорку между сотрудника по имени и фото

Мешает токсичный коллега? Узнайте, как сделать рассорку по фото и имени, чтобы убрать конфликт с работы и вернуть себе спокойствие!

Рассортировка (или, как её часто называют в офисах, «рассорка») сотрудников по имени и фото — неотъемлемая часть внутреннего документооборота: от бейджей до внутренних каталогов, от списков доступа до «карт» новых сотрудников. Ниже — подробный гайд, как автоматизировать и упростить этот процесс, не потеряв ни одного имени и ни одной фотографии.

Подготовка исходных данных

Сбор фото

  • Требования к фото: формат JPG/PNG, размер 1:1 (квадрат), разрешение не менее 400×400 px, фон однотонный (желательно белый).
  • Именование файлов: Строго по маске Ivanov_Ivan.jpg (Фамилия_Имя.расширение). Это позволит избежать путаницы при автоматической обработке.
  • Контроль качества: убедитесь, что лица хорошо видны, нет теней и «красных глаз»; Для массовой обработки используйте пакетные редакторы (Adobe Lightroom, XnConvert).

Сбор имен

  1. Экспортируйте список сотрудников из корпоративной HR-системы (1С, SAP, Oracle HCM и т.д.).
  2. Приведите ФИО к единому формату: Фамилия Имя Отчество. Удалите лишние пробелы, двойные дефисы и специальные символы.
  3. Сверьте список с фото: каждому файлу должен соответствовать один человек и наоборот. Для сверки удобно использовать Excel/Google Sheets: колонка A, фамилия_имя, колонка B — статус «фото есть/нет».

Выбор инструмента для рассортировки

Инструмент Формат вывода Сильные стороны Минусы
Excel/Google Sheets Таблица + вставка фото Быстро, без кода, шаблоны печати Ручная вставка фото при больших объёмах
PowerPoint Слайд на человека Наглядно, можно добавить QR-код Сложно автоматизировать >500 человек
Python + Pillow/OpenCV PDF/PNG/JPG Полная автоматизация, миллионы записей Нужны базовые навыки программирования
Фото-каталоги SaaS
(Mugshot, Thalamus, etc.)
Веб-галерея, печатные листы Готовые шаблоны, без кода Подписка, ограничения по персональным данным

Пошаговые инструкции для каждого подхода

Excel/Google Sheets (без кода)

Шаг 1. Создайте таблицу:

| № | Фамилия Имя | Отдел | Фото (вставка) |
|---|-------------|-------|----------------|
| 1 | Иванов Иван | IT | [файл] |
| 2 | Петрова Анна| HR | [файл] |

Шаг 2. Вставьте фото через Вставка → Изображение → В ячейку.

Шаг 3. Отсортируйте данные по нужному критерию: Данные → Сортировка → по столбцу «Отдел» или «Фамилия».

Шаг 4. Повторите вставку фото для всех строк (при больших объёмах используйте надстройку Photo Loader for Sheets из Google Workspace Marketplace).

PowerPoint (каталог «по слайдам»)

  1. Создайте макет слайда: фото (квадрат 150×150 мм), ФИО крупным шрифтом, должность мелким.
  2. Используйте функцию Вставка → Альбом изображений, выберите папку с фото.
  3. Добавьте текстовые поля с помощью Почтовая рассылка → Этикетки для автозаполнения ФИО из Excel.
  4. Отсортируйте слайды вручную или через макрос SortSlidesByName.

Python-скрипт для полной автоматизации

Что делает скрипт:

  • Читает CSV со списком людей и путь к фото.
  • Генерирует PDF-файл «Каталог сотрудников» по алфавиту.
  • Добавляет QR-код с email-адресом.

Минимальный код:


import pandas as pd
from PIL import Image, ImageDraw, ImageFont
import qrcode
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

df = pd.read_csv('employees.csv') # колонки: name, photo_path, email

df = df.sort_values('name')

c = canvas.Canvas("employee_catalog.pdf", pagesize=A4)
w, h = A4
y_pos = h ⸺ 50
for _, row in df.iterrows:
 img = Image.open(row['photo_path']).resize((100, 100))
 c.drawImage(row['photo_path'], 50, y_pos-100, width=100, height=100)
 c.drawString(160, y_pos-30, row['name'])
 # добавляем QR
 qr = qrcode.make(row['email'])
 qr.save('tmp_qr.png')
 c.drawImage('tmp_qr.png', 400, y_pos-100, width=100, height=100)
 y_pos -= 120
c.save

Запуск:

pip install pandas pillow qrcode reportlab
python make_catalog.py

Советы по защите персональных данных

  • Шифрование: храните исходные фото в зашифрованной папке или облаке с двухфакторной авторизацией.
  • Маскирование: при публикации во внешнем каталоге можно скрыть фамилии или размыть фон (примените batch-скрипт ImageMagick: convert .jpg -background white -flatten -blur 0x2 output/%03d.jpg).
  • Удаление метаданных: перед загрузкой удалите GPS-координаты из EXIF (exiftool -gps:all= .jpg).
  • Ограничение доступа: каталоги в формате PDF можно защитить паролем через pdftk.

Автоматическая ежемесячная рассорка

Чтобы каталог всегда был актуален:

  1. Настройте экспорт из HR-системы по расписанию (cron-задача, раз в 2 недели).
  2. Сделайте Git-репозиторий с фото, где каждый файл именуется по маске. Принудительный Pull Request = проверка качества фото.
  3. CI/CD (GitHub Actions) запускает Python-скрипт → генерирует актуальный PDF → выкладывает в защищённый S3-бакет.
  4. Менеджеры получают ссылку «скачать актуальный каталог» без участия IT.

Чек-лист перед публикацией

  • ☐ Все ли фото соответствуют 1:1 и ≥400×400 px?
  • ☐ Имена отсортированы по алфавиту или отделам?
  • ☐ QR-коды/email при необходимости проверены?
  • ☐ Проверены права на использование фотографий (согласие подписано)?
  • ☐ Файл защищён паролем или размещён в корпоративном облаке?
  • ☐ Сделан тестовый печатный образец на принтере: читаемость мелкого шрифта и чёткость фото?

Краткий FAQ

Что делать, если фото пришли в разных пропорциях?

Используйте команду ImageMagick для центрированного кропа: magick mogrify -resize 400x400^ -gravity center -crop 400x400+0+0 *.jpg.

Как заменить фото у одного сотрудника без перегенерации всего каталога?

Замените файл по тому же пути и имени, запустите скрипт с флагом --single=name.

Можно ли делать каталог в виде интерактивной веб-страницы?

Да, используйте готовые шаблоны на Bubble.io или Retool и подключите Google Sheets как источник данных.