← На главную
Рассмотрим частую проблему пользователей 1С:Розница: при загрузке поступлений из Excel от разных поставщиков создаются дубли одной и той же номенклатуры из-за незначительных отличий в наименованиях. Со временем база данных "засоряется" десятками позиций с нулевыми остатками, которые невозможно удалить стандартными средствами, так как по ним были продажи. Проанализируем причины этой ситуации и разберем комплексный подход к ее решению.
Шаг 1: Анализ причин проблемы
Прежде чем приступать к решению, важно понять, почему возникают дубли и почему их нельзя просто так удалить. Выясним основные причины.
- Алгоритм работы обработки загрузки. Внешняя обработка для загрузки данных из Excel, скорее всего, ищет номенклатуру в базе по точному совпадению наименования. Если поставщик в своем файле написал "Сок Яблочный 1л", а в вашей базе он заведен как "Сок яблочный 1 л." (разница в регистре и точке в конце), обработка не найдет совпадения и создаст новую карточку товара.
- Невозможность удаления объектов с движениями. Система 1С построена на принципах ссылочной целостности. Если по карточке номенклатуры была хотя бы одна операция (поступление, продажа через чек ККМ, перемещение), на нее создается ссылка в соответствующих документах и регистрах. Даже если текущий остаток товара равен нулю, история движений сохраняется. Стандартный механизм "Удаление помеченных объектов" не сможет удалить такой элемент, чтобы не нарушить целостность данных за прошлые периоды.
Таким образом, проблема требует комплексного подхода: сначала нужно "почистить" уже созданные дубли, а затем — исправить причину их появления.
Шаг 2: Устранение существующих дублей
Рассмотрим несколько методов, от самых простых и безопасных до более сложных, для наведения порядка в справочнике номенклатуры.
Решение 1: Использование стандартной обработки "Поиск и замена дублей"
Это самый правильный и рекомендуемый способ. Эта обработка не просто удаляет дубли, а заменяет все ссылки на них в документах ссылкой на один "правильный" элемент, который вы выберете. Это позволяет сохранить целостность данных.
Разберем по шагам, как ей пользоваться:
- Откройте обработку через меню "НСИ" -> "Сервис" -> "Поиск и замена дублей".
- В поле "Искать в" выберите "Номенклатура".
- Настройте правила поиска. Это ключевой момент! Не используйте поиск по наименованию, так как оно у вас разное. Вместо этого настройте поиск по полям, которые у дублей совпадают. Судя по описанию проблемы, это "Артикул" или "Штрихкод". Установите правило "Совпадает по Штрихкоду" или "Совпадает по Артикулу".
- Нажмите кнопку "Найти дубли". Система покажет группы элементов, которые она считает дублями по заданному правилу.
- В каждой группе выберите один элемент как "оригинал" (основной). Обычно это тот, у которого есть остаток, или тот, чье наименование вам больше нравится. Все остальные элементы будут помечены как дубли.
- Нажмите кнопку "Заменить дубли". Обработка выполнит замену всех вхождений дублирующих элементов в документах на выбранный оригинал, после чего пометит дубли на удаление.
- После завершения работы обработки запустите стандартное удаление помеченных объектов ("Администрирование" -> "Обслуживание" -> "Удаление помеченных объектов"). Теперь дубли удалятся без проблем, так как ссылок на них в системе не осталось.
Решение 2: "Архивация" ненужной номенклатуры
Если по каким-то причинам полное удаление невозможно или кажется слишком сложным, можно просто скрыть ненужные позиции от пользователей, чтобы они не мешали в повседневной работе.
- Создайте в справочнике номенклатуры новую группу (папку) с названием, например, "Архив", "Дубли" или "Не использовать".
- Выделите все ненужные номенклатурные позиции с нулевыми остатками и переместите их в эту папку.
- В настройках списков номенклатуры и форм подбора товаров можно настроить отбор, исключающий эту группу. Таким образом, пользователи не будут видеть "мусор" при продажах и в отчетах.
Для переноса остатков (если они вдруг есть на дубле) с дублирующей позиции на основную можно использовать документ Пересортица товаров.
Шаг 3: Предотвращение появления новых дублей
Очистка базы — это только половина дела. Важно устранить первопричину, чтобы не повторять эту процедуру каждый месяц. Основное решение — доработка логики вашей обработки загрузки из Excel.
Решение 1: Модификация обработки загрузки из Excel
Необходимо изменить алгоритм поиска номенклатуры в базе. Вместо поиска по точному наименованию, обработка должна искать товар в следующем порядке приоритета:
- Поиск по штрихкоду. Это самый надежный идентификатор товара. Попросите поставщиков включать штрихкоды в файлы Excel. Обработка должна сначала искать в базе товар с таким же штрихкодом. Если находит — использует эту карточку, игнорируя расхождения в наименовании.
- Поиск по артикулу. Если штрихкода нет, следующим по надежности является артикул поставщика.
- Поиск по частичному совпадению. В крайнем случае, если нет ни штрихкода, ни артикула, можно реализовать поиск по нечеткому совпадению наименования, используя оператор языка запросов
ПОДОБНО. Это позволит найти похожие позиции и предложить пользователю выбрать правильную вручную.
Создание новой номенклатуры должно происходить только в том случае, если товар не был найден ни по одному из этих критериев. Такой подход на 99% решит проблему появления дублей.
Решение 2: Использование механизма "Номенклатура контрагентов"
В конфигурациях 1С существует специальный механизм для решения именно этой задачи. Он позволяет сопоставить наименования, артикулы и коды товаров от конкретного поставщика с вашей внутренней номенклатурой.
В "1С:Розница" этот функционал реализован через регистр сведений, который можно найти как Номенклатура контрагентов или "Поставляемая номенклатура".
Как это работает:
- При первой загрузке товара от поставщика вы один раз вручную сопоставляете его позицию "Сок Яблочный 1л" с вашей карточкой "Сок яблочный 1 л.". Эта связь сохраняется в системе.
- Ваша доработанная обработка загрузки при последующих поступлениях от этого же поставщика должна будет сначала проверять наличие сопоставления в этом регистре. Если связь найдена, она сразу будет использовать вашу "правильную" номенклатуру.
Этот метод требует более серьезной доработки обработки, но является наиболее системным и правильным с точки зрения методологии учета в 1С.
Вывод: для решения проблемы необходим двойной подход. Сначала приведите в порядок текущую базу с помощью обработки "Поиск и замена дублей", настроив поиск по штрихкоду. Затем обязательно доработайте вашу обработку загрузки из Excel, изменив логику поиска номенклатуры на более надежную: по штрихкоду или артикулу, а не по наименованию.