Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!
Сегодня я расскажу вам историю о том, как я провёл полгода в тесных объятиях «1С: Кабинет сотрудника» на новой технологии 1С:Элемент — системы, которая обещала сделать кадровый документооборот простым, как бутерброд с колбасой. Но, как выяснилось, бутерброд этот оказался с сюрпризом… то ли огурцом, то ли гвоздём.

Впрочем, не будем забегать вперёд. Пристегните ремни, мы взлетаем!
P.S. В этой статье будет разобрана лишь сторона WEB приложения разработанная на 1С:Элемент: её клиентские процессы и серверные, стороны 1С:Предприятия не будет, ей я не занимался.
Что за фрукт этот «Кабинет сотрудника»?
Официально:
«1С:Кабинет сотрудника – это решение для организации кадрового электронного документооборота (КЭДО), которое ускоряет обмен документами, сокращает трудозатраты и делает сотрудников чуть счастливее».
Неофициально (Моё объяснение):
Это веб-приложение, где сотрудники могут подавать заявления на отпуск, больничные и прочие радости жизни и подписывать их электронной подписью прямо с мобилки или с ПК, а кадровики — подписывать их электронной подписью, не вставая с кресла (в идеале).
Звучит здорово, правда? Но, как говорится, «дьявол в деталях», а точнее — в коде, дизайне и логике работы.

Предыстория: как я стал «кабинетным» разработчиком
Мой путь начался с проекта по доработке Личного кабинета сотрудника на новой технологии для разработки 1С:Элемент (об этом можно почитать в этой статье) для крупной компании (3000+ пользователей). Задача — сделать так, чтобы всё работало не только в вебе, но и в мобильном приложении, которое уже вовсю использовалось у заказчика.
Вклейка продукта из коробки прошла гладко (спасибо iframe), но дальше началось самое интересное.
Что было «из коробки»:
Главное — типа «новостная лента», но без мемов.
Зарплата — цифры, от которых либо радуешься, либо плачешь.
Документы — тут кадровики шлют вам бумажки.
Отпуск — можно запросить отпуск и помечтать о море.
Отсутствия — можно посмотреть, кто сегодня «заболел» (спойлер: не все болеют).
Справки — заказываем, ждём, получаем.

Визуально — ничего так, но функционально… Есть свои приколы.
Реализовано за полгода многое, я бы сказал, что от изначального продукта осталось совсем немного. Цели ставились такие:
Реализовать новые процессы (Кадровый перевод, Целевой отпуск, Справка об окладе, Командировки, Продление/перенос отпуска в связи с больничным, Перенос отпуска (график отпусков), Отсутствие с сохранением оплаты: диспансеризация, донору крови, гос.обязанности, единовременная выплата по отпуску)
Доработка интерфейса
Исправление ошибок, подаренных продуктом, и недодуманных решений
А теперь переходим к самому интересному — к страданиям…
Создание новых процессов
При необходимости создания новых процессов в системе мне, можно сказать, повезло, что можно клонировать существующий процесс и затем адаптировать его под новые задачи. Однако на этом пути встретилось несколько серьезных проблем.
Проблема №1:
В моей версии системы глобальный поиск работал так же эффективно, как попытка найти смысл в "Игре престолов" после 6 сезона. Приходилось вручную открывать все файлы, которые хоть как-то могли относиться к процессу, и искать нужное, как археолог с кисточкой.
Результат? Мой компьютер начал взлетать, как ракета Илона Маска, а оперативка в браузере спокойно съедала 12 ГБ. Для сравнения:
Chrome с одной вкладкой — 500 МБ.
Chrome с моей системой — достаточно, чтобы запустить виртуальную машину с Windows 98.
Проблема №2:
Интеграция с 1С:ЗУП, согласования заявлений и ещё многое-многое другое сделана по принципу:
«Давайте напишем одинаковую логику пять раз, но чуть‑чуть по‑разному, чтобы потом никто не смог это поддерживать!»
Хочешь добавить новый тип заявления? Поздравляю, ты только что получил десять часов копипаста с риском что-то случайно сломать. Видимо, разработчикам платили за количество строк кода, и они решили, что DRY (Don’t Repeat Yourself - Не Повторяйся) — это просто совет, а не правило. Вот скажите мне, может я чего-то не понимаю, переиспользование функций стало не модным?
Доработка интерфейса

Конечно, я понимаю, что дизайнеры старались. Рисовали, вклеивали логотип 1С:Кабинет сотрудника с душой. Но вот вопрос: а какое отношение этот логотип имеет к продукту, который используется внутри других предприятий, где пользователи в лучшем случае думают: «1С — это та штука, из-за которой бухгалтерия ругается»?
Представьте:
Слесарь Толян заходит в приложение, чтобы прикрепить заявление на отпуск (мечтает о Геленджике, море и шашлыках). А вместо понятного интерфейса его встречает загадочный логотип, который не вызывает у него никаких ассоциаций, кроме: «Туда ли я вошёл? Может, это вирус?»
Круто, конечно, что место под логотип есть. Но вот, как его вклеить в коробочный продукт без помощи разработчика, который постиг весь дзен разработки на 1С:Элементе? Ответ прост: никак.
И в этом весь прикол 1С: купить и использовать «из коробки» без допиливания — невозможно. Да, это даёт нам, разработчикам, работу и востребованность. Но если вдуматься… за что вы так с пользователями?
Шаг влево, шаг вправо — расстрел.
Как я уже писал в прошлой статье про 1С:Элемент, здесь отклонение от дизайна, как прогулка по минному полю. Но заказчик хочет, чтобы его Кабинет сотрудника был в фирменных цветах, по брендбуку, с золотыми нитями и вышиванкой.
Что делать? Костылить!



Написал JS-код (спасибо 1С:Элемент, что подарил мне такую возможность), который в реальном времени перекрашивает интерфейс, нарисовал свои кнопки, прикрутил стили… и вуаля — красота (ну, или хотя бы что-то, что не вызывает у Толяна желания бежать к айтишникам с криком «У меня всё сломалось!»).
Исправление ошибок, подаренных продуктом и недодуманных решений
Кейс 1: «Быстро — не значит грамотно»
Кабинет сотрудника, судя по всему, разрабатывался с девизом «Главное — выпустить, а там разберёмся». Орфографические ошибки плодились как грибы после дождя — и в админке, и в интерфейсе. Видимо, проверка орфографии считалась «премиум‑функцией». У меня и у самого проблемы с орфографией проскакивают, но, когда ты делаешь такой продукт, ну проверь, пожалуйста.
Кейс 2: «Большой брат следит за тобой (и шлёт SMS)»
«Вася в отпуске из-за утраты близкого? О, грустно… А Петя в Таиланде? Вот везунчик!»
Вот мы столкнулись с такой проблемой, о каждом заявлении на отпуск или на отсутствие коллеги узнают по SMS.
Мы подумали: «А может, не стоит светить личные данные перед всеми?» И оставили просмотр отпусков и отсутствий только руководителям. Хотя, конечно, лишили коллектив поводов для сплетен — простите.
Кейс 3: «Квест: получи ЭЦП или потеряй рассудок»
Новый сотрудник заходит в систему. Может ли он сразу подать заявление? Конечно, нет! Сначала нужно:
Найти раздел «Документы».
Распечатать бумажку о переходе на ЭДО.
Отнести её в кадры (желательно бегом).
Вернуться, пролистать профиль до упора.
Нажать кнопку создания ЭЦП.
И вуаля — через пару часов можно работать!
Мы решили: «А давайте просто попросим пользователя придумать ЭЦП при первом входе?» Остальное сделается само. Гениально? Да. Почему так не сделали сразу? Видимо, хотели добавить сотрудникам экшена.
Кейс 4: «Согласование заявлений: игра в рулетку»
Разработчики 1С:Кабинета сотрудника постарались на славу хочу отдать им должное: механика согласований получилась сложной и интересной, как квест в Dark Souls. Но не без проблем…
Проблема 1: Если ваш руководитель не захотел переходить на КЭДО (а у нас в стране это дело добровольное), то и вы не сможете ничего согласовать, так как всё привязано к нему, конечно, есть свои варианты в админке поиграться, но на гигантскую организацию невозможно настраивать и следить за кадровыми перестановками постоянно.
Проблема 2: Руководитель уехал в отпуск, заместителя не назначил, а ваша срочная командировка зависла в цифровом чистилище.
Решение после суммарного месяца доработок получилось таким: Теперь сотрудник сам выбирает, кто будет согласовывать его заявление. Риски — на нём. Спорно? Возможно. Зато теперь не нужно молиться, чтобы начальник внезапно не улетел на Бали без интернета.
На самом деле в согласования было супер много всего переделано, здесь не было настройки по видам отсутствий и по видам отпусков, то есть таким согласующим заявление уходит при Отпуске вне графика, а таким согласующим уходит при Целевом, из коробки эта технология позволяла разделять лишь на отпуск, отсутствия и документы.
Так же добавлен новый тип для ситуаций непредсказуемого согласующего это Позиция — то есть мы выбираем позицию и тот, кто указан в ней тот и согласует заявление.
Кейс 5: «Майские праздники: серверы тоже хотят отдыхать»
На майских заявления стали отправляться по 40 секунд, а то и по две минуты. Смотрим в код — а там... массив ссылок на сервисы проверки ЭЦП, причём первый в списке лежит, а система терпеливо ждёт ответа, как преданный пёс. Интересная задумка у разработчиков. Ооо… ТЕХНОЛОДЖИЯ!
Кстати с данной проблемой столкнулись не только мы, но и вообще все компании которые купили себе ЛК.
Мы добавили тайминг: теперь система ищет самый быстрый сервис. А ещё сделали фоновую обработку заявлений, чтобы пользователи не пялились в экран, гадая, «Это оно грузится или я опять нажал не туда?»
В очередной раз задумываюсь… для людей ли разрабатывался данный продукт…
Кейс 6: «Логин: когда ФИО — это не уникально»
Логин в системе — это фамилия и инициалы (например, ИвановИИ), он генерируется автоматически после заведения пользователя в 1С:ЗУП на стороне 1С:Элемент. Должен ли он быть уникальным? Ну, в теории — да.
Но в организации на 3000+ человек нашлись два полных тёзки. Кто бы мог подумать?
Вроде такая вещь, которая должна продумываться в самом начале, но что-то все на неё забили.


В итоге был переделан алгоритм формирования логина и теперь логин — это СНИЛС. Теперь уникально и безопасно.
Вывод: стоит ли игра свеч?
Несмотря на все костыли, результат того стоил:
Упростили процессы для сотрудников.
Сделали интерфейс удобнее.
Исправили критические косяки.
1С: Кабинет сотрудника — как IKEA-мебель: вроде всё есть, но без отвертки и мата не собрать.
Но если допилить, то получается реально удобный инструмент. Главное — не бояться костылей и помнить, что идеальных систем не бывает.
Отдельное спасибо Компании 1С за то, что она не побоялась всё-таки зайти на новое поприще приложений для обычных смертных пользователей.
Подробнее почитать про 1С:Элемент можно по ссылке.
А если у вас тоже был опыт «дружбы» с 1С и вообще в целом, что вы думаете о 1С — делитесь в комментариях! Будет весело. ?
Комментарии (14)
Isiirk
28.05.2025 05:43Хотелось бы примеров, а так написать о любом продукте можно, всё таки технический портал, а не поплакать яжмамке
MrSotnik Автор
28.05.2025 05:43Предоставлять куски кода в рамках проекта не могу по понятным причинам) А это лишь информирование тех кто может связаться с данным продуктом о косяках
Isiirk
28.05.2025 05:43Почему тогда этот продукт а не hrlink например? Суля по объёму доработок дешевле выбрать другой продукт было
IsyanovDV
28.05.2025 05:43Не знаю как в 2025-м, когда в предыдущей компании выбирали КЭДО (в 2022-м) в HR-Link вообще не было автоматических маршрутов, маршрут должен был выбирать вручную сотрудник, что нас совершенно не устраивало. Ну и в целом были свои приколы, хотя в целом решение было интересное.
В описанном топспикером кейсе возможно HR-Link бы и зашел с ручными маршрутами, но это не точно.
reallord
28.05.2025 05:43Все достаточно просто к сожалению. Если в компании уже стоит уже 1С ЗУП то запуск КЭДО с кабинетом сотрудника стоит 330 рублей на человека в год.
Все другие решения дороже. Плюс обычно под 1С ЗУП так или иначе уже есть разработчик или подрядчик и некоторые изменения достаточно просто сделать.
А вот если большая компания, много сложных процессов, то стоит подумать еще раз.
У нас основные задачи по КЭДО были для удаленных сотрудников с которыми сложно вовремя подписать бумажные документы.
Водители и торговые представители в регионах РФ, айтишники и т.д.
Кейс был тоже простой:
1. Заявление на отпуск + сколько дней отпуска + предварительная заявка на отпуск (чтобы одновременно не уходили два сотрудника отвечающих за одно направление)
2. Акт выдачи/сдачи техники для тех кто получал ИТ оборудование через транспортную компанию
3. Расчетный листок по ЗП
4. Заявление на увольнение
Alex65rus
28.05.2025 05:43Hr link тоже не серебряная пуля. Он был хорош в 22 году. Сейчас это один из многих, не самый дешевый и функциональный
dissable
28.05.2025 05:43Вот бы ещё помимо всего этого, кто-то там о безопасности подумал приложения, да остального сервиса что за ним стоит конечно..
BBush
28.05.2025 05:43Когда работал в компании, что пилит свой "аналог" 1С: КС, проблему с сложными согласованиями решили интеграцией с 1С: ДО. Как правило, в больших компаниях ДО и так есть.
А аутентификация по СНИЛС... Почему не SSO? 1С: КС не поддерживает SSO?
DonAlPAtino
28.05.2025 05:43Может ламерский вопрос - оно для подписания требует полноценный ЭЦП физлица с ГосУслуг/госключ или есть простые варианты типа ПЭП?
MrSotnik Автор
28.05.2025 05:43Тут всё проще, работодатель получает УКЭП с помощью 1С:Подпись или других сторонних сервисов, а на основе него бесплатно генерируется усиленная неквалифицированная электронная подпись для сотрудника. Я думаю кто-то сможет ещё лучше объяснить)
reallord
Очень похоже на наш кейс. Только у нас чуть меньше изменений и кое-где удалось недостатки решить через ручной труд и инструкции.
Но с согласованием тоже беда.
MrSotnik Автор
Так что вы меня надеюсь понимаете)))
IsyanovDV
С согласованием много где беда в КЭДО, особенно если процессы сложные. Я внедрял EasyDOCS в казино (в официальном, в игорной зоне) там пришлось и разработчику и нам переписать почти полностью блок согласований и на стороне Web кабинета и на стороне расширения 1С.