Как загрузить штрихкоды из Excel в 1С:Управление торговлей 10.3 и решить проблему сопоставления данных

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

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

Анализ структуры регистра «Штрихкоды» в УТ 10.3

Прежде чем приступать к загрузке, проанализируем ситуацию и поймем, как устроено хранение данных в конфигурации «Управление торговлей 10.3». В отличие от многих других справочников, штрихкод в этой системе не является простым реквизитом карточки товара. Это запись в независимом регистре сведений Штрихкоды. Важно помнить, что штрихкод привязывается не только к объекту Номенклатура, но и к конкретной ЕдиницеИзмерения (например, штуки, коробки или паллеты).

Если при загрузке мы укажем только владельца, но не укажем единицу измерения, система может создать некорректную запись, которая не будет подтягиваться в документы реализации или чеки ККМ. Поэтому в файле Excel желательно иметь три основные колонки: «Штрихкод», «Номенклатура» (Наименование или Артикул) и «Единица измерения».

Проблема сопоставления номенклатуры и «невидимые» символы

Рассмотрим типичную ошибку: при настройке поиска по полю Наименование система выдает сообщение, что данные введены некорректно или объект не найден. Выясним причину этого явления. Чаще всего проблема кроется в различии строковых данных в Excel и в базе 1С.

Основные причины несовпадения:

  1. Лишние пробелы: В начале или в конце строки могут стоять пробелы, которые не видны глазу.
  2. Неразрывные пробелы: При копировании данных из веб-интерфейсов или специфического ПО в Excel часто попадает символ с кодом 160 (неразрывный пробел). 1С воспринимает его как отличный от обычного пробела (код 32) символ.
  3. Переносы строк: Внутри ячейки Excel могут быть скрытые символы возврата каретки.

В обсуждении на форуме пользователь нашел решение в добавлении пробела перед наименованиями в Excel, что позволило 1С «увидеть» связь. Однако более правильным методом будет очистка данных. Мы можем воспользоваться формулой в Excel для удаления лишних пробелов: =СЖПРОБЕЛЫ(A1). Но помните, что эта формула не удаляет неразрывные пробелы. Для них используйте замену: зажмите Alt и на цифровой клавиатуре наберите 0160 в поле «Найти», а в поле «Заменить на» введите обычный пробел.

Подготовка файла Excel: внимание к деталям

Проанализируем еще одну критическую ошибку — искажение самого штрихкода. Если ваш штрихкод начинается с нуля (например, формат EAN-13), Excel по умолчанию может воспринять его как число и отсечь ведущий ноль. В итоге штрихкод станет невалидным (12 символов вместо 13).

Чтобы этого избежать, выполним следующие действия:

  1. Выделим колонку со штрихкодами в Excel.
  2. Установим формат ячеек «Текстовый».
  3. Только после этого вставим или введем данные штрихкодов.
  4. Проверим длину штрихкода. Для EAN-13 она всегда должна быть строго 13 знаков.

Настройка обработки «Загрузка данных из табличного документа»

Теперь разберем, как правильно настроить саму обработку в 1С. Выберем режим загрузки в Регистр сведений и выберем Штрихкоды.

Настроим соответствие полей:

Борьба с дублями и очистка регистра штрихкодов

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

Метод 1: Групповая обработка (стандартная)

В типовой поставке 1С 8.2/8.3 для обычных форм (в которых работает УТ 10.3) есть встроенная обработка «Универсальный подбор и обработка объектов». В ней можно выбрать тип объекта «Регистр сведений: Штрихкоды», отобрать все записи (или по конкретному фильтру) и выполнить действие «Удалить».

Метод 2: Программная очистка (для программистов)

Если вам нужно быстро и полностью очистить регистр перед новой «чистой» загрузкой, воспользуемся консолью кода или создадим временную обработку. Рассмотрим пример кода, который полностью очищает набор записей регистра:


// Создаем пустой набор записей регистра Штрихкоды
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();

// Записываем его. Поскольку фильтры не установлены, а набор пустой, 
// система очистит все существующие записи в базе.
НаборЗаписей.Записать();

Внимание: Данный код удалит ВЕ СЕ штрихкоды из базы без возможности восстановления. Используйте его только после создания резервной копии!

Устранение дублей через выгрузку в Excel

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

Подведем итоги

Перенос штрихкодов требует аккуратности. Посмотрим еще раз на ключевые моменты: сопоставлять лучше по коду, а не по имени; всегда проверять текстовый формат ячеек в Excel; помнить о связи штрихкода с единицей измерения. Применяя эти правила, мы обеспечим корректную работу складского оборудования и высокую скорость обслуживания клиентов.

← На главную