При переносе данных между конфигурациями КА (Комплексная автоматизация) и ЗУП (Зарплата и управление персоналом) редакции 3.1 часто возникает ситуация, когда элементы справочника Сотрудники вроде бы загружены (их видно в XML-файле), но в самой программе в списке они не отображаются. Давайте разберем, почему так происходит и как заставить систему их увидеть.
В современных редакциях конфигураций на платформе 1С, использующих БСП (Библиотеку стандартных подсистем), справочник Сотрудники является не просто списком объектов, а лишь «фасадом». Вся актуальная информация, по которой строится список в интерфейсе пользователя, хранится в специализированных регистрах сведений.
Если вы открываете форму списка сотрудников и не видите там записей, это почти всегда означает, что записи в регистрах сведений, отвечающих за кадровый учет, отсутствуют или не соответствуют текущей дате. Система просто «не считает» этих людей работающими или активными.
Рассмотрим, на что опирается динамический список формы Сотрудники. При поиске причин отсутствия данных в первую очередь обратите внимание на следующие регистры сведений:
ТекущиеКадровыеДанныеСотрудников — это самый важный регистр. Именно из него система берет информацию о подразделении, должности и текущем статусе для отображения в списке.ДанныеСостоянийСотрудников — здесь фиксируется информация о том, находится ли человек в отпуске, командировке или работает.КадроваяИсторияСотрудников — содержит всю хронологию изменений кадрового статуса.Если после загрузки данных из КА в ЗУП эти регистры остаются пустыми, форма списка будет пустой. Для решения проблемы необходимо убедиться, что при выгрузке правил конвертации данных вы либо заполняете эти регистры корректно, либо загружаете документы-регистраторы, которые при проведении сами сформируют нужные записи.
В ходе попыток исправить перенос часто возникает ошибка Значение не является значением объектного типа (Отбор). Рассмотрим, почему это происходит и как с этим работать:
Данная ошибка в обработке Универсальный обмен данными в формате XML чаще всего свидетельствует о нарушении логики записи в регистры. Когда вы пытаетесь принудительно перенести записи регистра сведений, система пытается выполнить поиск существующей записи по ключевым полям. Если правила конвертации настроены неверно — например, не указаны поля поиска или нарушен порядок загрузки — метод Отбор возвращает пустое значение, что приводит к критической ошибке.
Разберем по шагам, как подойти к решению данной проблемы:
ВЫБРАТЬ
Сотрудники.Ссылка,
Сотрудники.Код,
Сотрудники.Наименование
ИЗ
Справочник.Сотрудники КАК Сотрудники
ТекущиеКадровыеДанныеСотрудников для этих сотрудников. Если регистр пуст, значит, механизм переноса не создает движения, необходимые для «видимости» сотрудника.ПриемНаРаботу, КадровыйПеревод). В ЗУП 3.1 логика «Сотрудников» вторична. После загрузки документа и его проведения подписки на события 1С автоматически заполнят все необходимые регистры сведений, включая ТекущиеКадровыеДанныеСотрудников.GUID) в обеих базах. Несоответствие идентификаторов приведет к тому, что регистры не смогут корректно сопоставить данные.Если вы занимаетесь переносом между типовыми конфигурациями, настоятельно рекомендуем рассмотреть использование механизма Синхронизация данных через планы обмена. Встроенные правила обмена уже учитывают всю сложную структуру регистров ЗУП и порядок их заполнения.
Использование Универсального обмена данными является крайне трудоемким методом, так как требует глубокого понимания внутренних механизмов движения документов в конфигурации ЗУП. Если вы решили идти по пути правки Правил конвертации, обязательно убедитесь, что для регистра сведений правильно заданы Ключевые поля, иначе любая попытка записи приведет к ошибке, с которой вы столкнулись.
Рассмотрите возможность использования обработки Проведение документов после загрузки, если вы переносите данные документами — часто после массовой загрузки данные становятся видны только после принудительного перепроведения кадровых приказов.