Как перенести номенклатуру с сохранением кодов между базовыми версиями 1С:УНФ и настроить дальнейшую синхронизацию?

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

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

Решение 1: Перенос номенклатуры с сохранением кодов

Основная сложность при переносе номенклатуры заключается в том, что 1С по умолчанию стремится создать новые уникальные коды для элементов, если не указано иное. Это особенно заметно, если в новой базе установлен префикс или активирована автоматическая нумерация без правильной настройки поиска по коду. Чтобы сохранить старые коды, нам потребуется выполнить несколько ключевых шагов.

  1. Подготовительные работы:

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

  2. Отключение префикса в целевой базе:

    Это критически важный шаг для сохранения кодов. Префикс информационной базы — это набор символов, который автоматически добавляется к номерам документов и кодам элементов справочников. Если в целевой базе установлен префикс (например, "НФ"), то при импорте 1С будет пытаться либо добавить его к вашим старым кодам, либо сгенерировать совершенно новые. Чтобы отключить префикс, выполните следующие действия:

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

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

  3. Выгрузка номенклатуры из исходной базы:

    Для выгрузки данных мы будем использовать стандартный механизм вывода списка справочника. Это позволит получить данные в удобном для дальнейшей обработки табличном формате.

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

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

    1. Откройте целевую базу 1С:УНФ.
    2. Перейдите в раздел «Администрирование».
    3. Найдите пункт «Поддержка и обслуживание» или «Загрузка данных». В базовых версиях обработка может быть доступна через «Все функции» (обычно находится в меню программы слева, если включено отображение) -> «Обработки» -> «Загрузка данных из табличного документа» или похожая по названию. Если вы не можете найти эту обработку, она может быть внешней и требовать подключения (в случае базовой версии это обычно означает, что ее нужно получить отдельно и открыть через «Файл» -> «Открыть»).
    4. В окне обработки загрузки укажите ваш файл, сохраненный ранее в формате MXL или XLS.
    5. Внимательно настройте сопоставление колонок файла полям справочника «Номенклатура». Это самый важный этап:
      1. Убедитесь, что колонка из вашего файла, содержащая старые коды номенклатуры, сопоставлена полю Код справочника Номенклатура.
      2. Аналогично сопоставьте колонки «Наименование», «Полное наименование», «Артикул» и другие.
      3. Важно: При настройке загрузки для поля Код убедитесь, что выбран режим поиска по этому полю. Обычно это опция «Искать по коду» или «Искать по совпадению полей». Это предотвратит создание дубликатов и поможет сохранить существующие коды. Если элемента с таким кодом нет, он будет создан с этим кодом.
    6. Запустите процесс загрузки.

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

Решение 2: Перенос групп номенклатуры

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

  1. Перенос групп через табличный документ (MXL/XLS):

    Этот метод подходит, если ваша иерархия групп не слишком сложна и вы готовы к ручной настройке сопоставления.

    1. При выгрузке списка номенклатуры из исходной базы (см. Шаг 3 выше), обязательно добавьте в выводимый список колонку «Группа» или «Родитель». Эта колонка будет содержать наименование группы, к которой относится каждая позиция номенклатуры.
    2. При загрузке данных в целевую базу с помощью обработки загрузки из табличного документа (см. Шаг 4 выше), сопоставьте колонку «Группа» из вашего файла полю Группа справочника Номенклатура.
    3. Ваша обработка загрузки должна иметь функционал для создания новых групп, если они еще не существуют в целевой базе. Если такого функционала нет, то группы придется создавать вручную до загрузки номенклатуры, либо использовать более мощный механизм (например, через XML).
    4. Убедитесь, что настройка загрузки позволяет устанавливать родителя для элемента номенклатуры.
  2. Перенос групп через универсальный обмен данными в формате XML:

    Этот способ является более надежным для переноса иерархических структур, так как формат XML позволяет сохранить полную структуру данных, включая подчиненность элементов.

    1. Отключите префикс в целевой базе (как и для переноса кодов).
    2. В исходной базе перейдите в «Администрирование» -> «Поддержка и обслуживание».
    3. Найдите пункт «Обмен данными» или «Универсальный обмен данными в формате XML». Если его нет в меню, попробуйте найти его через «Все функции» -> «Обработки».
    4. В обработке универсального обмена данными выберите режим «Выгрузка данных».
    5. Укажите файл, в который будут выгружены данные (например, nomenclature.xml).
    6. В настройках выгрузки выберите справочник «Номенклатура». Система автоматически выгрузит не только сами элементы, но и всю их иерархию (группы, подгруппы).
    7. Запустите выгрузку.
    8. После выгрузки, в целевой базе откройте ту же обработку «Универсальный обмен данными в формате XML», но выберите режим «Загрузка данных».
    9. Укажите ранее созданный XML-файл.
    10. Запустите загрузку. Этот метод должен корректно перенести иерархию групп вместе с элементами номенклатуры, сохранив их коды (при условии отключенного префикса).

    Использование XML-выгрузки/загрузки является предпочтительным, если вам необходимо сохранить сложную структуру групп без дополнительных ручных манипуляций.

Решение 3: Групповое изменение реквизитов (например, наименований)

Если вам необходимо массово изменить какое-либо слово или часть текста в полных наименованиях номенклатуры (например, "кач-во" на "качество"), ручная правка 2500 позиций займет огромное количество времени и чревата ошибками. Для таких задач в 1С предусмотрена стандартная обработка «Групповое изменение реквизитов».

  1. Доступ к обработке:

    Перейдите в раздел «Администрирование» -> «Поддержка и обслуживание» (или «Сервис»). Там вы найдете пункт «Корректировка данных» -> «Групповое изменение реквизитов».

  2. Выбор объекта для изменения:

    В открывшемся окне обработки выберите тип объектов, которые вы хотите изменить. В нашем случае это будет «Справочники» -> «Номенклатура».

  3. Отбор элементов (при необходимости):

    Если вам нужно изменить наименование не у всей номенклатуры, а только у определенной части, вы можете настроить отбор. Например, выбрать номенклатуру из определенной группы или по какому-либо другому признаку.

  4. Выбор реквизита для изменения:

    В списке доступных реквизитов найдите «Полное наименование» (или другой реквизит, который вы хотите изменить). Установите флажок напротив него.

  5. Настройка изменения:

    Рядом с выбранным реквизитом появится поле, где вы можете указать новое значение или правило изменения. Для замены части текста:

    1. Нажмите на кнопку с тремя точками (...) или кнопку с карандашом рядом с полем значения.
    2. В открывшемся окне выберите тип операции «Заменить строку» или «Подставить выражение» (в зависимости от сложности замены).
    3. Для простой замены "кач-во" на "качество", выберите «Заменить строку» и укажите:
      • Что заменять: кач-во
      • На что заменять: качество
    4. Подтвердите настройку.
  6. Выполнение изменения:

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

Эта обработка является мощным инструментом для поддержания актуальности данных и экономии времени, избегая рутинных операций.

Решение 4: Настройка дальнейшей синхронизации новой номенклатуры

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

  1. Ненадежность ручной синхронизации:

    Даже если ваши сотрудницы очень внимательны, человеческий фактор всегда присутствует. Ошибки в ручном вводе, пропуски позиций или создание их в разном порядке неизбежно приведут к рассинхронизации кодов. Например, если в главной базе создали "Наперсток 1" (код 00002501) и "Наперсток 2" (код 00002502), а в РКМ-базе сначала создали "Наперсток 2", а потом "Наперсток 1", то их коды могут оказаться разными, если автоматическая нумерация идет по порядку создания.

  2. Использование префиксов для синхронизации:

    Как правило, для синхронизации данных между разными базами рекомендуется использовать разные префиксы для каждой базы. Например, "ГБ-" для главной базы и "РКМ-" для базы РКМ. Это гарантирует уникальность кодов, даже если элементы создаются одновременно в разных базах. Однако, в вашем случае, если вы стремитесь к идентичности кодов для подбора товаров, этот подход не подойдет. Если вы хотите, чтобы коды были одинако для подбора, лучше не использовать префиксы вообще, как было рекомендовано ранее, и следовать принципу "одна база-мастер".

  3. Принцип "одной базы-мастера" для номенклатуры:

    Наиболее надежный подход для базовых версий, стремящихся к идентичности кодов, это назначить одну из баз (вашу, как руководителя) "базой-мастером" для создания и изменения номенклатуры. Все новые позиции номенклатуры должны создаваться только в главной базе. После создания, эти новые позиции должны быть перенесены в РКМ-базу.

  4. Регулярный перенос новой номенклатуры:

    Вместо ручного ввода, мы рекомендуем настроить регулярный обмен для переноса только новой или измененной номенклатуры.

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

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

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

← На главную