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