Как загрузить бренды для существующей номенклатуры из Excel в 1С 8.3 без создания дублей?

Пользователь 1С v8.3 (Управляемые формы) Управленческий учет
← На главную

При работе с большими справочниками в 1С часто возникает необходимость массово обновить данные, например, присвоить бренды уже существующим товарам. Для этой задачи идеально подходит стандартная обработка «Загрузка данных из табличного документа». Однако пользователи часто сталкиваются с тем, что вместо обновления существующих позиций программа создает новые «пустые» карточки или выдает ошибки о неоднозначности данных. В этой статье мы подробно разберем, как правильно настроить сопоставление данных, чтобы обновление прошло корректно.

Анализ проблемы: почему создаются дубли?

Рассмотрим типичную ситуацию: у нас есть файл Excel, в котором указан Код номенклатуры и Наименование бренда. Справочник брендов в базе уже заполнен. Наша цель — найти в базе номенклатуру по коду и записать в ее карточку ссылку на бренд.

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

Шаг 1. Подготовка данных и запуск обработки

Перед началом загрузки проанализируем структуру нашего файла Excel. Убедимся, что коды номенклатуры в файле в точности соответствуют кодам в базе 1С. Помните, что в 1С коды часто имеют ведущие нули (например, 000000001). Если Excel при открытии файла преобразовал их в числа (просто 1), поиск может не сработать.

Откроем обработку «Загрузка данных из табличного документа». В современных конфигурациях (например, УТ 11, ERP, БП 3.0) аналогичный функционал встроен в сами списки справочников (кнопка «Загрузить из файла»), но логика «ключей поиска» остается идентичной.

Шаг 2. Настройка полей и ключей поиска

Разберем настройки на вкладке соответствия полей. Это самый ответственный этап. Проанализируем колонки в таблице настроек:

  1. Пометка: указывает, будет ли данное поле вообще загружаться/обрабатываться.
  2. Поле поиска (или Ключ поиска): этот флаг сообщает системе, что именно по этому полю нужно искать существующий объект в базе.
  3. Представление: имя поля в 1С (например, Код, Бренд, Номенклатура).

В нашем случае, чтобы обновить Бренд у существующей номенклатуры, необходимо:

1. Для поля Код установить галочку в колонке «Поле поиска» (Ключ поиска). Это критически важно! Теперь система будет брать код из Excel, искать его в справочнике Номенклатура и, если найдет совпадение, работать именно с этим найденным объектом.

2. Для поля Бренд галочку поиска ставить не нужно, так как это поле мы хотим перезаписать (или заполнить), а не искать по нему товар.

Шаг 3. Решение ошибки «Неоднозначное представление»

Иногда при попытке поиска по полю Родитель (папка номенклатуры) или по наименованию система выдает ошибку: «Не однозначное представление. Вариантов: 2». Выясним причину этой ситуации. Это означает, что в базе найдено два или более элемента, подходящих под ваше условие поиска.

Например, если вы ищете папку по наименованию «Обувь», а в справочнике есть две папки «Обувь» в разных ветках (например, в «Мужской одежде» и в «Женской одежде»), система не сможет сделать выбор самостоятельно.

Рекомендация: Всегда старайтесь использовать для поиска уникальные идентификаторы — Код или Артикул. Если вы все же вынуждены использовать Наименование, убедитесь, что в справочнике нет дублей названий. Если поиск идет по Родителю, лучше также настроить поиск по его коду, а не по названию.

Шаг 4. Использование вычисляемых выражений

Если данные в Excel требуют трансформации перед загрузкой (например, те самые ведущие нули), мы можем воспользоваться встроенным механизмом вычислений. В настройках конкретного поля можно прописать код на языке 1С.

Рассмотрим пример, когда код в файле — это число, а в базе 1С — строка из 9 символов с нулями:


// В обработчике «Выражение» для поля Код
Результат = Прав("000000000" + СокрЛП(ТекстЯчейки), 9);

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

Шаг 5. Тонкая настройка режима загрузки

Проанализируем дополнительные настройки в окне обработки. Часто там присутствует выбор режима:

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

Итоги и рекомендации

Подведем итог нашей совместной работы по настройке загрузки. Чтобы успешно обновить реквизиты номенклатуры (в данном случае — бренды) и избежать ошибок, придерживайтесь следующего алгоритма:

  1. Используйте Код или Артикул в качестве единственного ключа поиска.
  2. Убедитесь, что типы данных совпадают (строка с нулями в 1С должна сопоставляться со строкой в Excel).
  3. Для загружаемого реквизита (Бренд) галочку «Поле поиска» ставить не нужно.
  4. Если система ругается на «Неоднозначное представление», проверьте справочник на наличие дублей в названиях или иерархии.
  5. Перед основной загрузкой всегда делайте имитацию загрузки или пробный запуск на 2–3 строках файла.

Соблюдение этих правил гарантирует чистоту вашего справочника Номенклатура и корректное заполнение всех необходимых аналитик.

← На главную