Как исправить справочник «Номенклатура» и навести в нем порядок при работе в нескольких базах 1С?

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

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

В этой статье мы подробно разберем комплексный подход к решению этой проблемы. Мы объединим организационные меры и технические инструменты 1С, чтобы раз и навсегда навести порядок в нормативно-справочной информации (НСИ).

---

Шаг 1. Организационный этап и разработка Регламента НСИ

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

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

---

Шаг 2. Определение «Мастер-базы» и ограничение прав

Поскольку у нас есть три несвязанные базы (две бухгалтерии и склад), нам необходимо выбрать одну базу в качестве первоисточника (Мастер-базы). Логично, чтобы такой базой стала складская система, так как именно там происходит оперативный учет движения товаров.

Рассмотрим схему разграничения прав доступа:

---

Шаг 3. Решение проблемы с «датами» в наименованиях бухгалтеров

Бухгалтеры часто дописывают даты в названия товаров (например, «Бумага А4 (15.05.2024)»), пытаясь обойти ограничения программы для ведения ручного партионного учета. Это грубейшая методологическая ошибка, которая плодит тысячи дублей карточек одного и того же товара. Выясним, как решить эту проблему правильно:

В самой 1С:Бухгалтерия партионный учет должен вестись автоматически штатными средствами (по ФИФО) на субсчетах счетов учета (например, 10 или 41) с использованием субконто Документы поступления, а не путем пложения новых карточек товаров. После наведения порядка бухгалтерам нужно продемонстрировать, как программа сама списывает партии по датам поступления.

Если же складская база требует детального партионного учета (например, по срокам годности или сериям), необходимо задействовать штатный функционал платформы 1С — Характеристики или Серии номенклатуры. Карточка товара (например, Йогурт Клубничный) должна быть одна, а даты поступления или серии должны выбираться в документах как подчиненные разрезы учета.

---

Шаг 4. Слияние баз и техническое удаление дублей

Теперь перейдем к самой трудоемкой технической части — слиянию справочников и поиску дубликатов. Нам предстоит объединить данные из трех баз. Посмотрим на алгоритм выполнения этой задачи:

  1. Выгрузка данных в транзитную таблицу. Мы выгружаем списки номенклатуры из всех трех баз в Excel. С помощью формул сопоставляем позиции по ключевым уникальным полям: артикулам, штрихкодам или точным наименованиям. Создаем таблицу соответствий (мэппинг).
  2. Использование стандартной обработки. В современных конфигурациях 1С встроен отличный инструмент Поиск и удаление дублей (меню Администрирование -> Обслуживание -> Корректировка данных). Он позволяет искать похожие элементы по нечеткому поиску, сравнивать артикулы и штрихкоды.
  3. Слияние и замена ссылок. Главное преимущество встроенной обработки заключается в том, что она не просто помечает дубли на удаление, а находит все ссылки на дублирующиеся элементы в старых проведенных документах (даже в закрытых периодах) и перенаправляет их на один выбранный эталонный элемент.

Критически важно: Любые операции по программной замене ссылок номенклатуры напрямую влияют на партионный и финансовый учет прошлых периодов. Поэтому выполнять процедуру можно строго на копии базы данных с последующей сверкой оборотно-сальдовой ведомости (ОСВ) до и после автозамены!

Для понимания того, как работает механизм замены дублей «под капотом» платформы 1С, рассмотрим упрощенный пример кода, который выполняет поиск и замену дублирующихся ссылок программным путем:


// Пример программной замены дублей номенклатуры
Процедура ЗаменитьДубли Номенклатуры(СсылкаОригинал, СсылкаДубль) Экспорт
    
    ТаблицаСсылок = Новый ТаблицаЗначений;
    ТаблицаСсылок.Колонки.Добавить("Ссылка");
    ТаблицаСсылок.Колонки.Добавить("Данные");
    ТаблицаСсылок.Колонки.Добавить("Метаданные");
    
    // Ищем все места использования дублирующегося элемента в базе данных
    МассивСсылок = Новый Массив;
    МассивСсылок.Добавить(СсылкаДубль);
    
    ТаблицаНахождений = НайтиСсылки(МассивСсылок);
    
    Для Каждого СтрокаНахождения Из ТаблицаНахождений Цикл
        // Производим замену ссылки дубля на оригинал в найденных объектах
        ОбъектМетаданных = СтрокаНахождения.Данные.Метаданные();
        Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
            ДокументОбъект = СтрокаНахождения.Данные.ПолучитьОбъект();
            // Здесь должна быть логика обхода табличных частей документа и замены значений
            // ...
            ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
        КонецЕсли;
    	КонецЦикла;
    
    // Помечаем дубликат на удаление после успешной замены
    ДубльОбъект = СсылкаДубль.ПолучитьОбъект();
    ДубльОбъект.УстановитьПометкуУдаления(Истина);
    ДубльОбъект.Записать();
    
КонецПроцедуры

---

Шаг 5. Предотвращение «слетания» счетов учета в бухгалтерии

Частая проблема при замене дубликатов в базах 1С:Бухгалтерия — это потеря корректных проводок. Например, товар после объединения может неожиданно начать списываться как материал (вместо счета 41 пойти на счет 10). Чтобы избежать этой ситуации, настроим систему правильно:

При таком подходе, даже если мы заменим одну карточку товара на другую внутри одной папки, программа автоматически подставит правильный счет учета при проведении документов.

---

Шаг 6. Работа с историческими данными (Архивация)

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

В этом случае мы используем следующий алгоритм работы с историческими данными:

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

---

Резюме

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

← На главную