При выполнении переноса пользователей, их групп и структуры предприятия из 1С:Управление производственным предприятием (УПП 1.3) в 1С:Документооборот (ДО 2.0) с использованием правил обмена Конвертации Данных 2.1 технические специалисты часто сталкиваются с нестандартным поведением формы подбора. Элементы справочников переносятся корректно, однако в окне «Подбор исполнителей» (при выборе рабочей группы документа, исполнителей процессов или групп доступа) пользователи отображаются как пустые строки, а группы пользователей отсутствуют в дереве выбора вовсе.
Разберем подробно причины такого поведения конфигурации и проанализируем последовательность шагов, необходимых для восстановления полной работоспособности подбора исполнителей.
Проанализируем архитектуру подсистемы адресации и управления доступом в 1С:Документооборот. Окно подбора исполнителей в этой конфигурации опирается не на прямое динамическое чтение справочника Пользователи, а на специализированные оптимизированные регистры и кэширующие объекты. Основные причины проблемы скрываются в следующих аспектах:
ОбменДанными.Загрузка = Истина): Стандартные обработки обмена (например, V8Exch82.epf) записывают элементы в режиме загрузки данных. В этом режиме платформа отключает выполнение обработчиков событий ПриЗаписи, ПередЗаписью и подписок на события. Типовые механизмы 1С:ДО, которые при создании пользователя должны автоматически вносить записи в служебные таблицы, просто не срабатывают.СоставыГруппПользователей: Иерархия и членство пользователей в группах отображаются в интерфейсах подбора на основании данных этого регистра. Если регистр пуст, система не может построить дерево групп и сопоставить пользователей.АдреснаяКнига: Форма подбора исполнителей работает с данными справочника АдреснаяКнига. Если кэш адресной книги не заполнен, список выбора элементов возвращает пустые строки. При этом подсказки и детализация по выделенной пустой строке могут работать правильно, так как они обращаются напрямую к объекту СправочникСсылка.Пользователи.Перед тем как запускать пересчет служебных таблиц в 1С:Документооборот, проанализируем исходные данные в базе 1С:УПП 1.3. Если в группе пользователей один и тот же пользователь привязан дважды или переносятся группы без участников, типовые алгоритмы пересчета 1С:ДО могут выдавать ошибки.
Проверим и откорректируем правила выгрузки в Конвертации Данных 2.1:
Пользователи;СведенияОПользователяхДокументооборот;ГруппыПользователей;СтруктураПредприятия;Должности;ФизическиеЛица.Если данные уже загружены в 1С:Документооборот, восстановить их отображение можно прямо из режима 1С:Предприятие от имени пользователя с административными правами.
Откроем форму списка регистра сведений СоставыГруппПользователей (через меню «Все функции» / «Функции для администратора»). В меню Еще найдем и выполним команду перезаполнения состава групп. Процесс выполняется достаточно быстро.
Откроем форму списка справочника АдреснаяКнига или откроем контекстное меню прямо в окне подбора пользователей (нажав правой кнопкой мыши на корень дерева «Группы пользователей»). Выполним команду перепостроения/перезаполнения адресной книги.
Важно: Заполнение справочника АдреснаяКнига может занять длительное время из-за рекурсивного расчета связей пользователей, ролей и подразделений.
Чтобы исключить ручные действия администратора после каждого обмена, добавим программный вызов процедур пересчета в обработчик правила выгрузки/загрузки или запустим их через внешнюю обработку.
Рассмотрим пример кода для автозаполнения регистра составов групп и адресной книги:
// 1. Обновляем составы групп пользователей
Пользователи.ОбновитьСоставыГруппПользователей();
// 2. Запускаем обновление данных адресной книги
ОбновитьАдреснуюКнигу();
// Пример вызова процедур пересчета прав и дескрипторов (при необходимости)
УправлениеДоступом.ОбновитьДанныеДоступа();
Для программного заполнения адресной книги в 1С:Документооборот используется вызов специализированного метода подсистемы:
Процедура ОбновитьАдреснуюКнигу()
// Вызов типовой процедуры обновления кэша адресной книги
РегламентныеЗаданияСервер.ЗапуститьВыполнениеРегламентногоЗадания(
Метаданные.РегламентныеЗадания.ЗаполнениеАдреснойКниги
);
КонецПроцедуры
Если после выполнения всех шагов записи по-прежнему скрыты для обычных пользователей, проанализируем права доступа. В 1С:Документооборот расчет прав выполняется на основе дескрипторов доступа (регистры ДескрипторыДоступаОбъектов и ПраваПоДескрипторамДоступаОбъектов).
При загрузке с флагом ОбменДанными.Загрузка = Истина дескрипторы не формируются автоматически. Для решения этой проблемы выполним следующие действия:
Пользователи реквизит Недействителен имеет значение Ложь, а реквизит Служебный не установлен в значение Истина.Перенос пользователей из 1С:УПП 1.3 в 1С:Документооборот 2.0 с помощью КД 2.1 требует обязательной пост-обработки. Схема успешного переноса состоит из двух ключевых этапов:
СоставыГруппПользователей, справочника АдреснаяКнига и дескрипторов доступа в целевой базе.