Как загрузить номенклатуру в 1С:УНФ, если названия товаров совпадают, а артикулы разные?

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

В процессе автоматизации торгового предприятия на базе 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с ситуацией, когда прайс-лист поставщика содержит множество позиций с одинаковыми наименованиями, но уникальными артикулами. Типичный пример — справочник метизов, где под общим названием «Болт» могут скрываться десятки товаров с разными техническими характеристиками и кодами производителя. При попытке стандартной загрузки через помощник Загрузка данных из файла программа нередко «схлопывает» все эти позиции в одну, оставляя только первый найденный артикул. Проанализируем, почему это происходит и как настроить систему для корректного импорта данных.

Почему штатный загрузчик игнорирует артикул?

Разберем причину такого поведения системы. Большинство встроенных инструментов импорта в типовых конфигурациях на платформе 1С:Предприятие 8.3 по умолчанию настроены на поиск существующих элементов справочника Номенклатура по полю Наименование. Если программа находит в базе или в обрабатываемом файле несколько строк с одинаковым названием, она считает их дублями одной и той же карточки.

Проблема усугубляется тем, что упрощенный мастер загрузки, доступный непосредственно из списка номенклатуры, не всегда выводит расширенные настройки сопоставления на первый план. Рассмотрим подробнее способы, которые позволяют обойти это ограничение.

Метод 1. Настройка ключевых полей идентификации

Самый правильный с точки зрения архитектуры 1С способ — указать программе, что уникальность товара определяется совокупностью полей или исключительно артикулом. Рассмотрим, как это сделать в актуальных релизах УНФ:

  1. Откроем помощник Загрузка данных из файла (раздел Компания — Начальные остатки или через кнопку «Загрузка» в справочнике Номенклатура).
  2. На этапе сопоставления колонок, когда вы уже выбрали файл и назначили соответствие столбцов Excel полям 1С, обратите внимание на настройки идентификации.
  3. В правой части окна или в меню под иконкой «шестеренки» (Настройки) необходимо найти параметр «Поиск по».
  4. Вместо значения «Наименованию» выберем «Артикулу» или комбинированный вариант «Наименованию и артикулу».

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

Метод 2. Уникализация наименований через Excel (прием «Сцепить»)

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

Выясним, как быстро подготовить данные:

  1. В Excel создадим вспомогательную колонку «Рабочее наименование».
  2. Используем формулу объединения: =A2 & " " & B2 (где A — название, B — артикул).
  3. В результате вместо десяти «Болтов» мы получим «Болт 123», «Болт 124» и так далее.

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

Метод 3. Использование разных инструментов загрузки в УНФ

Давайте проанализируем инструменты, которые предлагает конфигурация. В УНФ их как минимум три, и работают они по-разному:

  1. Загрузка из списка справочника: Самая простая, часто имеет жесткие алгоритмы проверки.
  2. Обработка «Загрузка данных из Excel» (Администрирование — Печатные формы, отчеты и обработки): Более мощный инструмент. Рассмотрим его возможности: здесь можно вручную отметить флажками те поля, которые будут являться «поисковыми». Если мы отметим и Артикул, и Наименование, система применит логику «И», создавая новую запись только при несовпадении обоих параметров.
  3. Заполнение табличных частей документов: Если вам нужно загрузить номенклатуру в рамках Приходной накладной, используйте кнопку «Изменить» — «Добавить из внешнего источника». Этот механизм часто оказывается более гибким, так как позволяет сопоставлять данные прямо в окне предварительного просмотра.

Технический аспект: Программный поиск дублей

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


// Пример логики поиска существующей номенклатуры по двум полям
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |	Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |	Номенклатура.Наименование = &Наименование
    |	И Номенклатура.Артикул = &Артикул";

Запрос.УстановитьПараметр("Наименование", СтрокаИзФайла.Наименование);
Запрос.УстановитьПараметр("Артикул", СтрокаИзФайла.Артикул);

Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
    // Создаем новую карточку, так как комбинация Название + Артикул уникальна
    НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
    // ... заполнение реквизитов
КонецЕсли;

Именно отсутствие такой «связки» в стандартных настройках некоторых версий загрузчика и приводит к проблеме автора темы. Программа видит, что Наименование уже существует, и прекращает поиск, не доходя до проверки артикула.

Рекомендации по ведению базы данных

Важно отметить, что наличие множества товаров с абсолютно одинаковыми рабочими наименованиями может затруднить работу пользователей в дальнейшем (например, при подборе товара в документы вручную). Рассмотрим альтернативные варианты организации данных в 1С:УНФ:

Таким образом, для решения проблемы загрузки необходимо либо переключить режим поиска в настройках помощника на «Артикул», либо предварительно подготовить данные в Excel, объединив название и код в одной колонке для обеспечения технической уникальности записей.

← На главную