Закрытие обособленного подразделения в 1С:ЗУП без ручных операций
Ситуация
Компания работает по всей стране, имеет основную организацию и филиалы в регионах. При закрытии обособленного подразделения сотрудники не увольнялись, а переводились в основную организацию или другой филиал. В 1С:ЗУП все делалось вручную: специалисты копировали подразделения и территории из текущей организации в основную, меняли им организацию, закрывали старые позиции штатного расписания, открывали новые и оформляли перемещения сотрудников.
Автоматизации не было, а процесс занимал много времени и требовал постоянной проверки.
Заказчик приобрел готовую обработку по реорганизации на Инфостарте, но она работала медленно, занимала 6–8 часов, блокировала базу и требовала серьезной доработки.
Задача
Компания обратилась в implecs, чтобы доработать купленную обработку. Требовалось автоматически выполнять закрытие подразделений в 1С:ЗУП: перенос территорий, подразделений с сохранением иерархии, позиций штатного расписания, сотрудников и записей регистров.
Главное — нужно было ускорить процесс и перевести его в фоновый режим, чтобы не мешать работе пользователей.
Решение
Мы взяли за основу купленную заказчиком обработку и поэтапно доработали ее, добавив недостающий функционал и устранив серьезные проблемы с производительностью.
Настроили перенос территорий и подразделений
В обработку добавили автоматическое копирование справочника «Территории» из присоединяемой организации в основную. Теперь нужные территории создаются одним шагом — без ручного ввода и копирования элементов по отдельности.
Подразделения перенесли по тому же принципу. Обработка копирует их из текущей организации в основную, полностью сохраняя иерархию. Добавили удобный отбор: пользователь выбирает только те подразделения, которые действительно нужно перенести. Остальные остаются нетронутыми.
Благодаря этому структура компании после закрытия филиала остается прежней — сотрудники видят привычные подразделения и территории, только уже в рамках основной организации.
Автоматизировали закрытие и открытие позиций штатного расписания
Мы добавили в обработку автоматическое закрытие всех позиций в присоединяемой организации. Обработка сама формирует документы закрытия — отдельно для свободных и занятых позиций, чтобы ничего не пропустить.
Сразу после этого она автоматически создает документы открытия этих же позиций в основной организации. Благодаря такой последовательной автоматизации все проходит без ручного вмешательства.
В штатном расписании не возникает разрывов: позиции просто переходят в другую организацию. Сотрудникам больше не приходится вручную закрывать старые записи и создавать новые — обработка делает это быстро и без ошибок.
Настроили перемещение сотрудников с полной заменой данных в регистрах
Мы реализовали автоматическое создание документов перемещения сотрудников. Обработка формирует их с удобными отборами — по подразделениям и спискам сотрудников, чтобы перевод проходил точно по нужным людям.
Теперь сотрудники переходят из старой организации в новую полностью автоматически, без лишних ручных действий.
Особое внимание уделили регистрам. Изначально обработка только отбирала записи по регистрам с головной организацией, но ничего не меняла. Мы исправили эту ошибку: теперь текущая организация корректно заменяется на основную во всех регистрах. Данные остаются целостными, а кадровая история сотрудников — непрерывной.
Оптимизировали скорость работы
Больше всего усилий ушло на ускорение обработки. Мы перевели ее в фоновый режим — теперь она не блокирует базу и не мешает другим пользователям работать в системе.
Добавили многопоточность: до 6 потоков. Обработка по-прежнему проходит по регистрам последовательно, но внутри каждого регистра записи, которых могут быть десятки тысяч, отбираются и обрабатываются параллельно в нескольких потоках. Это позволило значительно ускорить замену организации.
В итоге обработка перестала выполняться 6–8 часов. Теперь сотрудники запускают ее и продолжают обычную работу — без долгого ожидания и блокировки базы.
Непредвиденные трудности
Самой серьезной сложностью стала работа с доработанным справочником позиций штатного расписания.
Заказчик использует собственную версию справочника «Позиции штатного расписания», которая расширяет типовой. При программном создании и открытии позиций табличные части — оклады, премии и другие данные — заполнялись в объекте, но после записи исчезали.
Две недели списывали проблему на неверные тестовые данные заказчика. В итоге обнаружили настоящую причину: данные табличной части не сохраняются в самом объекте справочника. Они существуют там только временно, а потом удаляются. На самом деле информация записывается в регистры сведений. Возможно, это связано с промежуточным состоянием типового функционала в одном из релизов 1С.
После понимания механизма удалось настроить правильную запись в регистры, и создание позиций заработало корректно.
Результат
Раньше при закрытии обособленного подразделения сотрудники часами выполняли рутинные операции вручную: копировали справочники, закрывали и открывали позиции, оформляли переводы.
Теперь все изменилось. Достаточно выбрать присоединяемую организацию, запустить обработку и нажать кнопку дальнейшего выполнения. Данные переносятся автоматически, позиции закрываются и открываются, сотрудники переводятся, регистры обновляются.
Обработка работает в фоне, не мешает другим пользователям и выполняется значительно быстрее благодаря многопоточности. Ручная работа свелась к минимуму.
Длительность. На выполнение задачи ушло 2, 5 месяца.
Команда. Со стороны implecs над проектом работал один разработчик 1С. Со стороны заказчика ставил задачу и принимал результат техлид.