При переходе на новую базу данных или при обновлении учетных систем часто возникает необходимость массовой загрузки информации о клиентах и поставщиках из внешних файлов (например, в формате Excel или mxl). Однако пользователи конфигурации «1С:Управление торговлей 11» (УТ 11) часто сталкиваются со странной ситуацией: встроенная обработка Загрузка данных из файла сообщает об успешном завершении операции, но при открытии справочника «Контрагенты» список остается абсолютно пустым. Выясним причину этого поведения системы и разберем по шагам, как правильно выполнить импорт данных.
Для того чтобы разобраться в проблеме, проанализируем внутреннее устройство справочников в современных конфигурациях ERP-класса от компании 1С (УТ 11, КА 2, ERP 2). В отличие от старых версий (например, УТ 10.3), здесь реализована двухкомпонентная структура ведения нормативно-справочной информации о деловых партнерах:
Партнеры взаимодействуют пользователи при оформлении заказов, коммерческих предложений и при анализе управленческих отчетов.В чем заключается главная ошибка при загрузке? Когда мы загружаем данные напрямую в справочник Контрагенты, система действительно создает новые записи в базе данных. Но поскольку интерфейс УТ 11 спроектирован так, что все стандартные списки строятся «от партнера», загруженные юрлица без привязки к партнерам превращаются в «невидимок». Они физически существуют в SQL-таблицах базы данных, но не отображаются ни в одном стандартном списке программы.
Перед началом загрузки нам необходимо проверить ключевую опцию в настройках системы. Перейдем в раздел НСИ и администрирование — Настройка НСИ и разделов — CRM и маркетинг.
Найдем флаг «Независимо вести партнеров и контрагентов»:
В любом из этих режимов загружать данные напрямую в справочник Контрагенты через простую обработку не рекомендуется.
Рассмотрим подробнее корректную методику загрузки данных из файла mxl или Excel. Чтобы избежать появления «зависших» записей, мы должны загружать информацию через справочник Партнеры, используя заложенные разработчиками интеллектуальные алгоритмы сопоставления.
Выполним следующие шаги:
mxl в таблицу загрузки.Партнеры, автоматически сгенерирует для него связанную карточку в справочнике Контрагенты, заполнит ИНН/КПП и установит корректную связь между ними.Проанализируем еще один важный нюанс. Чтобы вновь загруженные контрагенты были доступны для выбора в документах закупки или продажи, недостаточно просто создать их в базе данных. В процессе импорта нам обязательно нужно передать системе информацию о роли этого партнера. За это отвечают три важных булевых реквизита (флага):
Да (или Истина в файле загрузки), если планируем продавать этому партнеру товары или услуги.Да, если это наш поставщик.Если эти колонки не будут заполнены при загрузке, партнеры запишутся как «прочие», и вы не сможете выбрать их в документах «Реализация товаров и услуг» или «Приобретение товаров и услуг» без ручного редактирования карточки.
Если стандартный функционал загрузки УТ 11 не позволяет гибко настроить связи в вашем конкретном файле, профессиональные разработчики и аналитики используют внешнюю обработку «Загрузка данных из табличного документа». Данный инструмент предоставляет гораздо больше возможностей:
Выясним, как поступить, если загрузка уже была выполнена напрямую в справочник Контрагенты, данные заняли место в базе, а в интерфейсе их не видно.
У нас есть два пути решения проблемы:
Вариант 1. Удаление и повторная загрузка (рекомендуемый)
Это самый простой и чистый способ. Перейдем в меню Функции для технического специалиста (или Все функции), найдем справочник Контрагенты. Здесь мы увидим список всех записей, включая те, у которых не заполнено поле Партнер. Пометим эти записи на удаление, запустим обработку Удаление помеченных объектов, очистим базу и произведем повторный импорт по правильной схеме через справочник Партнеры.
Вариант 2. Программное создание партнеров для существующих контрагентов
Если удаление невозможно (например, по этим контрагентам уже успели провести какие-то документы), нам придется связать их программно. Для этого можно написать небольшую внешнюю обработку или воспользоваться групповой обработкой данных. Примерный программный код для восстановления связей выглядит следующим образом:
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(Выборка.Партнер) Тогда
// Создаем нового партнера на основании данных контрагента
НовыйПартнер = Справочники.Partners.СоздатьЭлемент();
НовыйПартнер.Наименование = Выборка.Наименование;
НовыйПартнер.РабочееНаименование = Выборка.Наименование;
НовыйПартнер.Клиент = Истина; // или Поставщик = Истина в зависимости от бизнес-задачи
Попытка
НовыйПартнер.Записать();
// Связываем контрагента с созданным партнером
ОбъектКонтрагент = Выборка.ПолучитьОбъект();
ОбъектКонтрагент.Партнер = НовыйПартнер.Ссылка;
ОбъектКонтрагент.Записать();
Сообщить("Успешно создан партнер для контрагента: " + Выборка.Наименование);
Исключение
Сообщить("Ошибка при обработке контрагента: " + Выборка.Наименование + " - " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЦикла;
Таким образом, понимание архитектурного разделения управленческого и регламентированного учета в конфигурации «1С:Управление торговлей 11» позволяет избежать типичных ошибок при миграции данных и обеспечивает корректное отображение всей информации в интерфейсе программы.