Документооборот, любить его в рот!
![топ 100 блогов](/media/images/default.jpg)
В июне я хорошо прошарился в 1С8: Документооборот, работая у клиента, который активно использует эту конфигурацию (30 пользователей в базе).
Ну и, конечно же, столкнулся с говённой реализацией системы прав доступа в Документообороте.
Суть её такова - каждый объект относится к дескриптору видов доступа, а на каждый дескриптор прописывается право доступа конкретному пользователю.
Дескрипторы используются, чтобы не прописывать право на каждый объект, т.е. однотипные объекты относятся к одному дескриптору.
Но все равно дескрипторов много (полмиллиона), при добавлении пользователя или изменении прав пересчет длится до суток. При этом чем больше у пользователя прав добавляется, тем дольше пересчет (больше объектов).
Объекты для пересчета записываются системой в очередь. При пересчете очередного объекта могут возникнуть новые объекты, которые должны быть пересчитаны, очередь достигает 200-300 тысяч объектов базы.
Меня попросили помочь.
Я написал обработку, которая расчитывает элементы очереди параллельно. В тесте запустили 8 потоков, больше нельзя - сервер задыхается. Но расчет прошел быстрее, как раз в 8 раз примерно.
Однако я все же порекомендовал написать свои права доступа, потому что в Документообороте - права доступа больного человека!
|
</> |