При работе с несколькими базами 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с ситуацией, когда при переносе документов (например, Отчетов о розничных продажах или Чеков ККМ) справочник Номенклатура начинает «размножаться». Несмотря на то, что коды и наименования товаров в обеих базах абсолютно идентичны, программа создает дубликаты. Разберем подробно, почему это происходит и как решить проблему несколькими способами.
Прежде всего, проанализируем техническую сторону вопроса. В системе 1С каждый объект (карточка товара, контрагент, документ) обладает уникальным внутренним номером — GUID (Globally Unique Identifier). Это скрытая строка из 36 символов, которая является «настоящим именем» объекта для базы данных.
Когда мы используем стандартную обработку Выгрузка и загрузка данных XML, программа ищет объект в целевой базе именно по этому идентификатору. Если базы создавались независимо друг от друга, то даже у товара с кодом «00001» и названием «Болт» в разных базах будут разные GUID. При загрузке 1С не находит нужный GUID, считает товар новым и создает дубль. Если же мы отключаем выгрузку сопутствующих данных, программа выдает ошибку Объект не найден, так как документ ссылается на пустоту. Если такие ошибки уже засорили базу, поможет удаление движений с пустой ссылкой во всех регистрах накопления.
Если данные за несколько лет уже загружены и справочник «раздут», нам поможет встроенный механизм очистки. Рассмотрим, как правильно им воспользоваться, чтобы не повредить документы.
Номенклатура.Этот метод идеально подходит для тех, кто не хочет погружаться в программирование. Вместо выгрузки через XML, мы будем использовать механизм загрузки из таблиц.
Проанализируем алгоритм действий:
Универсальный отчет или отчет Продажи, содержащий все необходимые поля документов.Код или Артикул.Если перенос данных требуется выполнять регулярно, стоит один раз настроить правила обмена. Для этого используется конфигурация Конвертация данных 2.0. Разберем по шагам, что нужно изменить в логике обмена:
В правилах выгрузки для справочника Номенклатура необходимо зайти в настройки ПКС (Правила конвертации свойств) и ПКО (Правила конвертации объектов).
Найдем параметр «Поиск». Нам нужно:
Код) установить галочку «Поиск».После этого при каждой загрузке XML-файла система будет сначала «спрашивать» базу: «Есть ли у тебя товар с таким кодом?». И только при отрицательном ответе будет создаваться новая запись.
Рассмотрим более продвинутый метод, который позволит использовать стандартную выгрузку XML без дублей в будущем. Мы можем программно «подтянуть» идентификаторы из одной базы в другую или настроить прямой обмен.
Для этого существуют внешние обработки (например, «Установка ссылок» или «Смена ГУИД»). Логика работы такова:
GUID на тот, что в основной базе.Альтернативным вариантом является синхронизация номенклатуры по протоколу HTTP, которая позволяет поддерживать актуальность реквизитов (строк, чисел, перечислений) между двумя базами УНФ в автоматическом режиме.
Поскольку планируется переход на версию 1С:УНФ ПРОФ, наиболее правильным стратегическим решением будет настройка РИБ (Распределенной информационной базы). Проанализируем преимущества этого подхода:
После того как мы перенесли данные и устранили дубли, критически важно восстановить правильность учета остатков и себестоимости. При массовой загрузке документов хронология может нарушиться.
Обязательно выполним групповое перепроведение документов:
// В интерфейсе УНФ это делается через:
// Настройки - Обслуживание - Корректировка данных - Перепроведение документов
Рекомендуем проводить документы помесячно, начиная с самой ранней даты загрузки. Это позволит системе корректно рассчитать остатки на складах и финансовый результат за все 3 года, которые не вносились в базу. Если после объединения дублей и перепроведения в остатках появились «минусы», значит, по некоторым позициям в магазинной базе продажи были оформлены на товар, которого фактически не было на остатке в основной базе. В этом случае потребуется универсальная корректировка остатков регистра накопления на дату начала учета.
Помните: всегда делайте резервную копию базы перед любыми манипуляциями со справочниками и массовой загрузкой данных!