Как исправить отсутствие данных в личной карточке сотрудника (Т-2) после переноса из 1С:КА 1.1 в 2.4?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

Переход с устаревших версий 1С:Комплексная автоматизация на современные редакции часто сопряжен с трудностями при переносе кадровой истории. Одной из наиболее частых проблем является ситуация, когда данные в регистрах фактически присутствуют (загружены документом Перенос данных), но отчет Личная карточка (Т-2) их «не видит» или отображает неполную информацию. Давайте разберем, почему это происходит и как исправить ситуацию массово, не прибегая к ручному перевыбору каждого сотрудника.

Причина проблемы: почему данные есть, а в отчете их нет?

При использовании Помощника перехода или универсальной выгрузки данных через XML, информация попадает в базу напрямую через объекты Перенос данных. Однако система 1С:КА 2.4 устроена сложнее: для корректного формирования кадровой отчетности недостаточно просто создать запись в регистре сведений.

Когда вы открываете документ Перенос данных и вручную перевыбираете сотрудника, происходит системное событие записи, которое инициирует:

  1. Пересчет итогов по регистрам накопления.
  2. Актуализацию данных в кэширующих таблицах, используемых формой Т-2.
  3. Регистрацию изменений для подсистемы кадрового учета.

Если данные загружены программно «в обход» этих событий, отчеты не могут корректно считать информацию, так как внутренние связи в регистрах не были проиндексированы или пересчитаны при записи.

Решение проблемы: автоматизация актуализации записей

Так как перевыбирать вручную более тысячи сотрудников нецелесообразно, нам потребуется автоматизировать процесс «перезаписи» строк в документах Перенос данных. Рассмотрим пошагово, как это реализовать.

Шаг 1: Подготовка обработки для автоматической обработки документов

Нам необходимо написать скрипт, который переберет все документы Перенос данных, содержащие кадровые сведения, и программно выполнит перезапись движений. Мы будем использовать объект ДокументОбъект.ПереносДанных.

Для начала создадим внешнюю обработку, которая будет искать нужные нам документы. Посмотрим пример логики обхода табличной части:


// Пример логики для массовой актуализации
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ПереносДанных ГДЕ Проведен = ИСТИНА";
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
    ОбъектДок = Результат.Ссылка.ПолучитьОбъект();
    // Проходим по табличным частям, где хранятся данные регистров
    Для Каждого ТЧ Из ОбъектДок.ДанныеРегистров Цикл
        // Принудительная имитация активности записи
        // Для некоторых регистров может потребоваться перевыбор сотрудника
        // через установку значения в колонке
    КонецЦикла;
    ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

Шаг 2: Использование групповой обработки

Если написание собственного кода кажется избыточным, можно воспользоваться штатной Групповой обработкой справочников и документов. Для этого:

  1. Откройте обработку из раздела НСИ и администрирование.
  2. Выберите тип объекта Документ.ПереносДанных.
  3. В условиях отбора укажите период или специфические признаки (например, комментарий или номера документов), относящиеся к кадровым данным.
  4. В настройках действий выберите Изменить реквизит.
  5. Выберите поле, содержащее Сотрудник, и установите его значение в Выражение, которое просто присваивает текущее значение (например, Объект.Сотрудник).

Важно помнить, что выполнение такой операции приведет к массовой записи документов, поэтому перед началом процесса обязательно создайте резервную копию базы данных.

Шаг 3: Пересчет итогов и проверка актуальности

После выполнения массовой записи данных через обработку, рекомендуется запустить процедуру Пересчет итогов в конфигураторе (раздел Администрирование -> Тестирование и исправление). Это гарантирует, что регистры накопления, на которых строится отчет Т-2, будут приведены в соответствие с актуальными записями.

Также проанализируйте регистры сведений, такие как Состояние сотрудников. Иногда отчет Т-2 опирается на «актуальное состояние» работника. Если при переносе были пропущены записи в этом регистре, никакие манипуляции с документом Перенос данных не помогут. Убедитесь, что для каждого сотрудника есть актуальная запись, определяющая его текущий статус в организации.

Рекомендации по безопасности

Всегда тестируйте любые автоматизированные правки сначала на тестовой копии базы. Массовая перезапись документов вызывает активное формирование движений по регистрам, что создает высокую нагрузку на SQL-сервер и может заблокировать работу пользователей на время выполнения обработки.

Следуя этим шагам, вы сможете успешно актуализировать данные в личных карточках Т-2, обеспечив соответствие между историческими данными, перенесенными из 1С:КА 1.1, и требованиями современной системы 1С:КА 2.4.

← На главную