Перенос данных между идентичными конфигурациями 1С:Бухгалтерия предприятия 3.0 (БП 3.0) часто кажется тривиальной задачей, пока специалист не сталкивается с особенностями архитектуры Библиотеки стандартных подсистем (БСП). Основные сложности возникают при попытке перенести справочники Контрагенты, Сотрудники и ФизическиеЛица. Проблемы проявляются в "пустых" карточках, отсутствии записей в списках (хотя данные в базе есть) или критических ошибках при открытии форм. Рассмотрим детально, почему это происходит и как правильно настроить перенос в "Конвертации данных 2.0" (КД 2.0).
Проанализируем ситуацию с контактной информацией (адреса, телефоны, email). В старых версиях конфигураций все данные хранились исключительно в регистре сведений КонтактнаяИнформация. В современных редакциях БП 3.0 (начиная с 3.0.70+) архитектура изменилась. Теперь основным местом хранения является табличная часть КонтактнаяИнформация внутри самих объектов (справочников).
Разберем по шагам, на что обратить внимание при настройке правил обмена (ПКО):
Контрагенты и ФизическиеЛица включена выгрузка табличной части КонтактнаяИнформация.ВидыКонтактнойИнформации. Если в целевой базе идентификаторы (GUID) этих видов отличаются, 1С не "поймет", какой адрес к чему относится, и карточка будет выглядеть пустой. При переносе обязательно настроим поиск для ВидыКонтактнойИнформации по внутреннему идентификатору.ЗначенияПолей. Там хранится XML-строка с разобранным адресом (индекс, город, улица). Если перенести только Представление, адрес будет виден в списке, но вы не сможете его отредактировать через стандартный диалог 1С, так как поля не будут заполнены.Выясним причину ситуации, когда справочник Сотрудники кажется пустым в интерфейсе, хотя Универсальный отчет показывает наличие записей. Дело в том, что динамический список в форме справочника использует сложное соединение (JOIN) с вспомогательным регистром сведений ТекущиеКадровыеДанныеСотрудников.
Рассмотрим алгоритм решения этой проблемы:
Если этот регистр пуст, система считает, что данных для отображения в списке нет. В типовой конфигурации этот регистр заполняется автоматически при проведении документов ПриемНаРаботу. Однако при программной загрузке через КД 2.0 механизмы проведения могут не отработать полностью. Чтобы "проявить" сотрудников в списке, необходимо принудительно обновить этот регистр в целевой базе.
Выполним следующий код через консоль кода или внешнюю обработку:
КадровыйУчет.РассчитатьТекущиеКадровыеДанныеСотрудников();
Этот метод пересчитает данные для всех сотрудников и заполнит регистр, после чего они появятся в стандартных списках. Также не забудем проверить регистр ОсновныеСотрудникиФизическихЛиц, который отвечает за связь физлица и его "основного" места работы.
Эта ошибка часто возникает при попытке открыть карточку загруженного сотрудника. Проанализируем ситуацию: форма ожидает получить значение Истина или Ложь, а получает Null или неопределенное значение. Чаще всего виновником является реквизит ВАрхиве.
Разберем, как этого избежать:
Сотрудники убедимся, что реквизит ВАрхиве (или ПометкаУдаления) заполняется корректно.ФизическиеЛица. Карточка сотрудника — это, по сути, "оболочка" над физлицом. Если связь нарушена или физлицо не загрузилось, форма выдаст ошибку инициализации.ФИОФизическихЛиц. Если он не заполнен, то даже при наличии заполненного реквизита Наименование в справочнике, форма может вести себя некорректно, так как многие механизмы БСП берут ФИО именно из регистра на текущую дату.Посмотрим на практические советы, которые помогут избежать дублей и потерь данных при обмене между одинаковыми конфигурациями:
Поиск по идентификатору: Всегда устанавливайте флаг "Продолжить поиск по полям поиска, если по идентификатору объект не найден" только в крайнем случае. Для Контрагентов, Сотрудников и особенно ФизическихЛиц первичным должен быть GUID (внутренний идентификатор). Это гарантирует, что связи между объектами (например, Сотрудник -> Физлицо) сохранятся в первозданном виде.
Перенос движений документов: Если вы переносите кадровые документы, рекомендуется выгружать и их движения (регистры сведений и накопления). В КД 2.0 это настраивается через правила выгрузки данных для соответствующих наборов записей. Это избавит вас от необходимости перепроводить документы вручную в целевой базе, что особенно важно, если периоды уже закрыты для редактирования.
Синхронизация предопределенных данных: Убедитесь, что предопределенные элементы (например, группы справочников или специфические виды КИ) сопоставляются корректно. В КД 2.0 для этого используется настройка "Поиск по имени предопределенного элемента".
Таким образом, мы выяснили, что ключ к успешному переносу данных в БП 3.0 лежит не только в переносе самих справочников, но и в корректном заполнении сопутствующих регистров сведений и правильной настройке поиска ссылочных типов (Виды КИ, Физлица).